{"action":"created","issue":{"url":"https://api.github.com/repos/ericniebler/stl2/issues/149","labels_url":"https://api.github.com/repos/ericniebler/stl2/issues/149/labels{/name}","comments_url":"https://api.github.com/repos/ericniebler/stl2/issues/149/comments","events_url":"https://api.github.com/repos/ericniebler/stl2/issues/149/events","html_url":"https://github.com/ericniebler/stl2/pull/149","id":116842267,"number":149,"title":"Function becomes Callable:","user":{"login":"CaseyCarter","id":456873,"avatar_url":"https://avatars.githubusercontent.com/u/456873?v=3","gravatar_id":"","url":"https://api.github.com/users/CaseyCarter","html_url":"https://github.com/CaseyCarter","followers_url":"https://api.github.com/users/CaseyCarter/followers","following_url":"https://api.github.com/users/CaseyCarter/following{/other_user}","gists_url":"https://api.github.com/users/CaseyCarter/gists{/gist_id}","starred_url":"https://api.github.com/users/CaseyCarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CaseyCarter/subscriptions","organizations_url":"https://api.github.com/users/CaseyCarter/orgs","repos_url":"https://api.github.com/users/CaseyCarter/repos","events_url":"https://api.github.com/users/CaseyCarter/events{/privacy}","received_events_url":"https://api.github.com/users/CaseyCarter/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-11-13T20:06:28Z","updated_at":"2015-11-14T04:50:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ericniebler/stl2/pulls/149","html_url":"https://github.com/ericniebler/stl2/pull/149","diff_url":"https://github.com/ericniebler/stl2/pull/149.diff","patch_url":"https://github.com/ericniebler/stl2/pull/149.patch"},"body":"* Import `invoke` from the WP. I've numbered its section 20.9.3 as in the WP, which could cause confusion since 20.9.3 is [refwrap] in C++14.\r\n* Despite that they are equivalent, replace occurrences of *`INVOKE`* with `invoke` because *`INVOKE`* is hard on the eyes.\r\n* Rename all sections in concepts.lib.functions to concepts.lib.callables. Retitle the section \"Callable concepts\".\r\n* Rename concept `Function` to `Callable`, change its required expression to `invoke(f, args...)`.\r\n* Rename concept `RegularFunction` to `RegularCallable`.\r\n* Remove section indirectcallables.as_function_t, specify the `IndirectCallableFoo<F, ...Is>` concepts to require `Foo<F, value_type_t<Is>...>`.\r\n* Update `indirect_result_of` and `projected` appropriately.\r\n* Require the type of a customization point object to satisfy `Callable` instead of `Function`. This is awkward in that it seems to imply that CP objects need to be passed to `invoke`, although the individual specifications make it clear that is not the case.\r\n* Cleanup the specification of the `generate` algorithm family. (I had to touch it because of the `invoke` change, and thought it was overcomplicated. `fill` could use a similar treatment.)\r\n\r\nDrive-by fixes:\r\n* Fix occurrence of type/reference confusion in the specification of `indirect_result_of`. (We don't want to constrain e.g. `less<>&` to satisfy `IndirectCallable`, we want to constrain `less<>`.)\r\n* Simplify concept `UniformRandomNumberGenerator`, reorder requirements for `shuffle` properly."},"comment":{"url":"https://api.github.com/repos/ericniebler/stl2/issues/comments/156628233","html_url":"https://github.com/ericniebler/stl2/pull/149#issuecomment-156628233","issue_url":"https://api.github.com/repos/ericniebler/stl2/issues/149","id":156628233,"user":{"login":"CaseyCarter","id":456873,"avatar_url":"https://avatars.githubusercontent.com/u/456873?v=3","gravatar_id":"","url":"https://api.github.com/users/CaseyCarter","html_url":"https://github.com/CaseyCarter","followers_url":"https://api.github.com/users/CaseyCarter/followers","following_url":"https://api.github.com/users/CaseyCarter/following{/other_user}","gists_url":"https://api.github.com/users/CaseyCarter/gists{/gist_id}","starred_url":"https://api.github.com/users/CaseyCarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CaseyCarter/subscriptions","organizations_url":"https://api.github.com/users/CaseyCarter/orgs","repos_url":"https://api.github.com/users/CaseyCarter/repos","events_url":"https://api.github.com/users/CaseyCarter/events{/privacy}","received_events_url":"https://api.github.com/users/CaseyCarter/received_events","type":"User","site_admin":false},"created_at":"2015-11-14T04:50:58Z","updated_at":"2015-11-14T04:50:58Z","body":"Corrected review issues, and hopefully cleared up any customization point object confusion by explicitly specifying that a customization point object is a function object."}}