5959d6bce2
[SVN r20372]
70 lines
1.1 KiB
C++
70 lines
1.1 KiB
C++
// (C) Copyright John Maddock 2001.
|
|
// 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)
|
|
|
|
// See http://www.boost.org/libs/config for most recent version.
|
|
|
|
// MACRO: BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
|
// TITLE: member templates keyword
|
|
// DESCRIPTION: Member template keyword not supported.
|
|
|
|
namespace boost_no_member_template_keyword{
|
|
|
|
#ifndef BOOST_NO_MEMBER_TEMPLATES
|
|
|
|
template <class T>
|
|
struct foo
|
|
{
|
|
template <class U>
|
|
struct nested
|
|
{
|
|
typedef foo<U> other;
|
|
};
|
|
template <class U>
|
|
void mfoo(const U&);
|
|
};
|
|
|
|
template <class T>
|
|
template <class U>
|
|
void foo<T>::mfoo(const U&)
|
|
{
|
|
}
|
|
|
|
template <class T>
|
|
void test_proc(T i)
|
|
{
|
|
foo<double> f1;
|
|
typedef foo<T> ifoo;
|
|
f1.mfoo(i);
|
|
f1.template mfoo<T>(i);
|
|
typedef typename ifoo::template nested<double> bound_t;
|
|
typedef typename bound_t::other other;
|
|
other o;
|
|
(void) &o; // avoid "unused variable" warning
|
|
}
|
|
|
|
#else
|
|
template <class T>
|
|
void test_proc(T)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
int test()
|
|
{
|
|
test_proc(0);
|
|
return 0;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|