g++ concept.cpp -o concept /usr/include/boost/concept_check.hpp: In instantiation of 'boost::CopyConstructible<::MyVisitorAnon>': /usr/include/boost/concept/detail/has_constraints.hpp:40: instantiated from 'const bool boost::concept::not_satisfied::MyVisitorAnon> >::value' /usr/include/boost/concept/detail/has_constraints.hpp:43: instantiated from 'boost::concept::not_satisfied::MyVisitorAnon> >' /usr/include/boost/mpl/if.hpp:67: instantiated from 'boost::mpl::if_::MyVisitorAnon> >, boost::concept::constraint::MyVisitorAnon> >, boost::concept::requirement::MyVisitorAnon> > >' /usr/include/boost/concept/detail/general.hpp:19: instantiated from 'boost::concept::requirement_::MyVisitorAnon>)>' /usr/include/boost/concept_check.hpp:43: instantiated from 'void boost::function_requires(Model*) [with Model = boost::CopyConstructible<::MyVisitorAnon>]' concept.cpp:11: instantiated from here /usr/include/boost/concept_check.hpp:156: error: 'boost::concept::requirement::failed [with Model = boost::concept::usage_requirements::MyVisitorAnon> >]' is not a valid template argument for type 'void (*)()' because function 'static void boost::concept::requirement::failed() [with Model = boost::concept::usage_requirements::MyVisitorAnon> >]' has not external linkage /usr/include/boost/concept_check.hpp: In function 'void boost::function_requires(Model*) [with Model = boost::CopyConstructible<::MyVisitorAnon>]': concept.cpp:11: instantiated from here /usr/include/boost/concept_check.hpp:43: error: 'boost::concept::requirement::failed [with Model = boost::CopyConstructible<::MyVisitorAnon>]' is not a valid template argument for type 'void (*)()' because function 'static void boost::concept::requirement::failed() [with Model = boost::CopyConstructible<::MyVisitorAnon>]' has not external linkage make: *** [concept] Error 1