{"action":"created","issue":{"url":"https://api.github.com/repos/ericniebler/stl2/issues/23","labels_url":"https://api.github.com/repos/ericniebler/stl2/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/ericniebler/stl2/issues/23/comments","events_url":"https://api.github.com/repos/ericniebler/stl2/issues/23/events","html_url":"https://github.com/ericniebler/stl2/issues/23","id":73722700,"number":23,"title":"algorithm return types should maybe drop pair and tuple in favor of structs with more meaningful field names","user":{"login":"ericniebler","id":225757,"avatar_url":"https://avatars.githubusercontent.com/u/225757?v=3","gravatar_id":"","url":"https://api.github.com/users/ericniebler","html_url":"https://github.com/ericniebler","followers_url":"https://api.github.com/users/ericniebler/followers","following_url":"https://api.github.com/users/ericniebler/following{/other_user}","gists_url":"https://api.github.com/users/ericniebler/gists{/gist_id}","starred_url":"https://api.github.com/users/ericniebler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ericniebler/subscriptions","organizations_url":"https://api.github.com/users/ericniebler/orgs","repos_url":"https://api.github.com/users/ericniebler/repos","events_url":"https://api.github.com/users/ericniebler/events{/privacy}","received_events_url":"https://api.github.com/users/ericniebler/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-05-06T20:10:37Z","updated_at":"2015-05-27T21:17:26Z","closed_at":null,"body":""},"comment":{"url":"https://api.github.com/repos/ericniebler/stl2/issues/comments/106081766","html_url":"https://github.com/ericniebler/stl2/issues/23#issuecomment-106081766","issue_url":"https://api.github.com/repos/ericniebler/stl2/issues/23","id":106081766,"user":{"login":"tomaszkam","id":4975640,"avatar_url":"https://avatars.githubusercontent.com/u/4975640?v=3","gravatar_id":"","url":"https://api.github.com/users/tomaszkam","html_url":"https://github.com/tomaszkam","followers_url":"https://api.github.com/users/tomaszkam/followers","following_url":"https://api.github.com/users/tomaszkam/following{/other_user}","gists_url":"https://api.github.com/users/tomaszkam/gists{/gist_id}","starred_url":"https://api.github.com/users/tomaszkam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomaszkam/subscriptions","organizations_url":"https://api.github.com/users/tomaszkam/orgs","repos_url":"https://api.github.com/users/tomaszkam/repos","events_url":"https://api.github.com/users/tomaszkam/events{/privacy}","received_events_url":"https://api.github.com/users/tomaszkam/received_events","type":"User","site_admin":false},"created_at":"2015-05-27T21:17:26Z","updated_at":"2015-05-27T21:17:26Z","body":"I must admit that your solution will not make use of the algorithms less user-friendly that just naked tuple and will rather improve it.\r\n\r\nWouldn't use of tagged tuple resolve the problem with differentiating situation when returned pair of iterators is range (like `lower_bound`) or points to different ranges (`mismatch`). In the first case something like `tagged_tuple<range(It, It)>` (would require some magic to support multi element accessors, but should be doable) would be returned and models range. While for the second `tagged_tuple<input1(It1), input2(It2)>` would be returned."}}