Viewing file: externmangle2.cpp (1.74 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
struct Test32NS1 { template<class X> struct Foo { X *v; };
template<class X> struct Bar { X *v; };
};
struct Test32NS2 { template<class X> struct Foo { X *v; }; };
template <template <class X> class Y, template <class X> class Z> struct Test32 { Y<int>* field; };
void test32a(Test32<Test32NS1::Foo, Test32NS1::Foo> arg) { }
void test32b(Test32<Test32NS1::Foo, Test32NS1::Bar> arg) { }
void test32c(Test32<Test32NS1::Foo, Test32NS2::Foo> arg) { }
void test32d(Test32<Test32NS1::Foo, Test32NS2::Foo> arg1, Test32<Test32NS2::Foo, Test32NS1::Foo> arg2) { }
class XXX { }; template <void (&Goo)(XXX*, XXX**), void (&Xoo)(XXX*, XXX**)> struct Test33 { };
void test33a(XXX*, XXX**){}
void test33(XXX*, Test33<test33a, test33a> arg, XXX*) { }
template <void (&Goo)(int)> struct Test34 { };
struct Test34A { static void foo(int); };
void Test34A::foo(int) {} void test34(Test34<Test34A::foo> arg) { }
int test36= 36;
template <int& XREF> struct Test37 { };
struct Test37A { static int t38; };
int Test37A::t38 = 42;
void test37(Test37<test36> arg) { }
void test38(Test37<Test37A::t38> arg) { }
struct Test39 { template <class X> struct T39A { }; };
struct T39A { };
void test39(Test39::T39A< ::T39A >) { }
#if 0 //only for g++ with -std=c++0x and Visual C++ >= 2013 #if defined(__GNUG__) || (defined(_MSC_VER) && _MSC_VER >= 1200) template<class... VarArg> struct Test40 { };
void test40(Test40<int, double, void> arg) { } #endif
#endif
extern XXX const * const test41 = 0;
namespace Test42 { extern XXX const * const test42 = 0; }
int test43[4] = {1, 2, 3, 4};
XXX const* const test44() { return new XXX; }
|