{"action":"created","issue":{"url":"https://api.github.com/repos/ericniebler/range-v3/issues/432","repository_url":"https://api.github.com/repos/ericniebler/range-v3","labels_url":"https://api.github.com/repos/ericniebler/range-v3/issues/432/labels{/name}","comments_url":"https://api.github.com/repos/ericniebler/range-v3/issues/432/comments","events_url":"https://api.github.com/repos/ericniebler/range-v3/issues/432/events","html_url":"https://github.com/ericniebler/range-v3/issues/432","id":165649462,"number":432,"title":"SFINAE friendly views","user":{"login":"gnzlbg","id":904614,"avatar_url":"https://avatars.githubusercontent.com/u/904614?v=3","gravatar_id":"","url":"https://api.github.com/users/gnzlbg","html_url":"https://github.com/gnzlbg","followers_url":"https://api.github.com/users/gnzlbg/followers","following_url":"https://api.github.com/users/gnzlbg/following{/other_user}","gists_url":"https://api.github.com/users/gnzlbg/gists{/gist_id}","starred_url":"https://api.github.com/users/gnzlbg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gnzlbg/subscriptions","organizations_url":"https://api.github.com/users/gnzlbg/orgs","repos_url":"https://api.github.com/users/gnzlbg/repos","events_url":"https://api.github.com/users/gnzlbg/events{/privacy}","received_events_url":"https://api.github.com/users/gnzlbg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-07-14T20:19:44Z","updated_at":"2016-09-23T06:14:38Z","closed_at":null,"body":"Is there an easy way to constrain a function on whether a range composition is a valid expression?\r\n\r\nSome views like `view::transform` eagerly trigger an `static_assert` that breaks SFINAE on them. I have to add a layer of indirection to try to SFINAE out before arriving at expression containing views that use `static_assert`."},"comment":{"url":"https://api.github.com/repos/ericniebler/range-v3/issues/comments/249111502","html_url":"https://github.com/ericniebler/range-v3/issues/432#issuecomment-249111502","issue_url":"https://api.github.com/repos/ericniebler/range-v3/issues/432","id":249111502,"user":{"login":"badair","id":2570307,"avatar_url":"https://avatars.githubusercontent.com/u/2570307?v=3","gravatar_id":"","url":"https://api.github.com/users/badair","html_url":"https://github.com/badair","followers_url":"https://api.github.com/users/badair/followers","following_url":"https://api.github.com/users/badair/following{/other_user}","gists_url":"https://api.github.com/users/badair/gists{/gist_id}","starred_url":"https://api.github.com/users/badair/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/badair/subscriptions","organizations_url":"https://api.github.com/users/badair/orgs","repos_url":"https://api.github.com/users/badair/repos","events_url":"https://api.github.com/users/badair/events{/privacy}","received_events_url":"https://api.github.com/users/badair/received_events","type":"User","site_admin":false},"created_at":"2016-09-23T06:14:38Z","updated_at":"2016-09-23T06:14:38Z","body":"I took [great pains](https://github.com/badair/callable_traits/blob/master/include/callable_traits/remove_args.hpp) to achieve SFINAE-able errors in my library. The main downside is that your error messages have to be types (and thus underscored and namespaced).\r\n\r\nIf you can apply the checks early, users will be spared the rest of the template stack in the error message -- although there is some template overhead to make these errors work. [Here](http://melpon.org/wandbox/permlink/xqOGtj4kaG6ljTJI) is an example error message (I probably should've used shorter namespaces for errors). Obviously it's not ideal, but it might be a nice middle ground for users. \r\n\r\nAt some point I refactored the error code into it's own little library [here](https://github.com/badair/sfinae_errors), although I believe the CallableTraits version received some unrequited upstream love.\r\n\r\nMy implementation is SFINAE-able even for template aliases, which (IIRC) required some extra work that wouldn't really be necessary here."}}
{"actor":{"display_login":"badair"}}