// (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; } }