[bccl] how to use predefined concepts to restrict a template argument via sfinae
The use case is from Boost Graph, but my question is a general one about Boost Concept Check Library: How to "restrict" a template class/function argument based on concepts. For instance, I want to overload functions based on Graph or VertexListGraph or similar refinement. template<class VertexListGraph, XXX > void foo( VertexListGraph& g ) {...} where XXX is somekind of SFINAE that leverages boost::VertexListGraphConcept. Thanks, Nick
AMDG On 05/13/2015 04:28 PM, Nick Stokes wrote:
The use case is from Boost Graph, but my question is a general one about Boost Concept Check Library: How to "restrict" a template class/function argument based on concepts.
For instance, I want to overload functions based on Graph or VertexListGraph or similar refinement.
template<class VertexListGraph, XXX > void foo( VertexListGraph& g ) {...}
where XXX is somekind of SFINAE that leverages boost::VertexListGraphConcept.
You can't. Boost.ConceptCheck isn't designed for this. In Christ, Steven Watanabe
participants (2)
-
Nick Stokes
-
Steven Watanabe