// (C) Copyright Edward Diener 2013 // Use, modification and distribution are subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt). #include "test_has_mem_fun.hpp" #include int main() { // You can always instantiate without compiler errors even if the member function does not exist BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(someFunctionMember),boost::function_types::const_qualified> aVar1; // Use const enclosing type BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(AnotherConstFunction) >)); BOOST_MPL_ASSERT((AskIfConst >)); // Use const_qualified BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(AConstFunction),boost::function_types::const_qualified>)); BOOST_MPL_ASSERT((StillTest,boost::function_types::const_qualified>)); // Use volatile enclosing type BOOST_MPL_ASSERT((AnVol >)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(AVolatileFunction) >)); // Use volatile_qualified BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(StillVolatile),boost::function_types::volatile_qualified>)); BOOST_MPL_ASSERT((Volly,boost::function_types::volatile_qualified>)); // Use const volatile enclosing type BOOST_MPL_ASSERT((CVAnother >)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(StillCV) >)); // Use cv_qualified BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(ConstVolFunction),boost::function_types::cv_qualified>)); BOOST_MPL_ASSERT((CVBoth,boost::function_types::cv_qualified>)); return 0; }