BOOST_DEDUCED_TYPENAME

[SVN r16138]
This commit is contained in:
Dave Abrahams
2002-11-07 01:11:13 +00:00
parent 48b23b5064
commit f217166b21
2 changed files with 18 additions and 0 deletions

View File

@ -46,6 +46,7 @@
# define BOOST_NO_USING_TEMPLATE # define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_SWPRINTF # define BOOST_NO_SWPRINTF
# define BOOST_NO_TEMPLATE_TEMPLATES # define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_DEDUCED_TYPENAME
# if (_MSC_VER > 1200) # if (_MSC_VER > 1200)
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# endif # endif

View File

@ -313,6 +313,23 @@ namespace std {
# define BOOST_NESTED_TEMPLATE # define BOOST_NESTED_TEMPLATE
#endif #endif
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
//
// Some compilers don't support the use of `typename' for dependent
// types in deduced contexts, e.g.
//
// template <class T> void f(T, typename T::type);
// ^^^^^^^^
// Replace these declarations with:
//
// template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
#ifndef BOOST_NO_DEDUCED_TYPENAME
# define BOOST_DEDUCED_TYPENAME typename
#else
# define BOOST_DEDUCED_TYPENAME
#endif
// ---------------------------------------------------------------------------// // ---------------------------------------------------------------------------//
// //