/** * This program checks if the compiler doesn't have a certain bug * that we encountered when testing C++11 features */ #include "test_config.h" namespace A { namespace C { class AbstractBase; template class abstractbase_reference; template struct abstractbase_traits { using ref_type = abstractbase_reference; static ref_type narrow(abstractbase_reference); static ref_type narrow2(abstractbase_reference); }; }; }; namespace A { namespace C { class AbstractBase { protected: template friend typename C::abstractbase_traits::ref_type C::abstractbase_traits::narrow( C::abstractbase_reference); template friend auto C::abstractbase_traits::narrow2( C::abstractbase_reference) -> ref_type; AbstractBase() = default; }; }; }; int run_main (int, ACE_TCHAR *[]) { ACE_START_TEST (ACE_TEXT("Compiler_Features_31_Test")); ACE_DEBUG ((LM_INFO, ACE_TEXT ("C++11 support ok\n"))); ACE_END_TEST; return 0; }