|
|
|
template <typename T>
|
|
class X
|
|
{
|
|
};
|
|
template <typename T>
|
|
void f(T t)
|
|
{
|
|
}
|
|
struct
|
|
{
|
|
} unnamed_obj;
|
|
void f()
|
|
{
|
|
struct A
|
|
{
|
|
};
|
|
enum
|
|
{
|
|
e1
|
|
};
|
|
typedef struct
|
|
{
|
|
} B;
|
|
B b;
|
|
X<A> x1;
|
|
X<A*> x2;
|
|
X<B> x3;
|
|
f(e1);
|
|
f(unnamed_obj);
|
|
f(b);
|
|
(void)x1;
|
|
(void)x2;
|
|
(void)x3;
|
|
}
|