I think Tick should be considered too https://github.com/pfultz2/Tick El mié., 20 de abril de 2016 14:05, Juan Pedro Bolivar Puente < raskolnikov@gnu.org> escribió:
Hi!
With concepts lite not getting into C++17, the need for library-based alternatives becomes more apparent. With this regard, the current Boost.ConceptCheck library is outdated, as it emulates an too old proposal for concepts, and it does not leverage more modern techniques (e.g. expression sfinae).
Eric Niebler proposed in his Range-V3 library a technique to simulate concept checking using C++11 [1]. I myself implemented a variation of such technique in the Atria library [2].
Atria's implementation differs in two ways with Range-V3 concepts:
- It is simpler, because it has no special support for refinements. A concept refines another just by checking the refined concept in the normal `requires` definition. The downside is that refinement information can not be used for dispatch.
- It wants to be future-proof. Concepts defined with the `ABL_CONCEPT_SPEC` macro can be automatically upgraded to a Concepts Lite concept by redefining `ABL_CONCEPT` as `constexpr concept`.
There are few reasons though why Atria's implementation could not be directly included in Boost. I would like to work on a more formal proposal, but first I'd like to know if there is interest in it, and if there are any obvious concerns or questionmarks.
Thanks!
JP
[1] http://ericniebler.com/2013/11/23/concept-checking-in-c11/
[2] https://github.com/Ableton/atria/blob/master/src/atria/meta/concept.hpp
https://github.com/Ableton/atria/blob/master/src/atria/meta/tst_concepts.cpp
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost