// (C) Copyright John Maddock 2002. Permission to copy, use, modify, sell and // distribute this software is granted provided this copyright notice appears // in all copies. This software is provided "as is" without express or implied // warranty, and with no claim as to its suitability for any purpose. // MACRO: BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS // TITLE: Specialisation of individual member functions. // DESCRIPTION: Verify that specializations of individual members // of template classes work OK. namespace boost_no_member_function_specializations{ template class foo { public: foo(); foo(const T&); ~foo(); int bar(); }; // declare specialisations: template<> foo::foo(); template<> foo::foo(const int&); template<> foo::~foo(); template<> int foo::bar(); // provide defaults: template foo::foo(){}; template foo::foo(const T&){}; template foo::~foo(){}; template int foo::bar(){ return 0; }; // provide defs: template<> foo::foo(){}; template<> foo::foo(const int&){}; template<> foo::~foo(){}; template<> int foo::bar(){ return 1; }; int test() { foo f1; foo f2; f1.bar(); f2.bar(); return 0; } }