静态模板成员的嵌套静态模板成员
Nested static template member of static template member
假设我有一个 class,其中包含嵌套模板的静态成员 class:
class Host
{
public:
template<char X>
class Child {
};
static Child<'A'> childA;
};
好吧,也许有点不合常规,但很简单。我可以在 CPP 文件中定义我的静态成员的实例,因此:
Host::Child<'A'> Host::memberA;
现在;假设 "Child" class 也 包含其自己的嵌套模板的静态成员 class:
class Host
{
public:
template<char X>
class Child
{
public:
template<int Y>
class Subchild {
};
static Subchild<1> submember01;
};
static Child<'A'> memberA;
};
我将如何着手定义 静态模板成员的静态模板成员?我试过:
Host::Child<'A'>::Subchild<1> Host::Child<'A'>::submember01;
但我收到编译器错误:
"specializing member "Host::Child<X>::submember01 [with X=(char)'A']" requires "template<>" syntax"
这发生在使用 ARM 编译器时,但我在 Visual Studio 中没有收到此错误。
怎么样:(使用 template<>
语法)
template<>
Host::Child<'A'>::Subchild<1> Host::Child<'A'>::submember01;
假设我有一个 class,其中包含嵌套模板的静态成员 class:
class Host
{
public:
template<char X>
class Child {
};
static Child<'A'> childA;
};
好吧,也许有点不合常规,但很简单。我可以在 CPP 文件中定义我的静态成员的实例,因此:
Host::Child<'A'> Host::memberA;
现在;假设 "Child" class 也 包含其自己的嵌套模板的静态成员 class:
class Host
{
public:
template<char X>
class Child
{
public:
template<int Y>
class Subchild {
};
static Subchild<1> submember01;
};
static Child<'A'> memberA;
};
我将如何着手定义 静态模板成员的静态模板成员?我试过:
Host::Child<'A'>::Subchild<1> Host::Child<'A'>::submember01;
但我收到编译器错误:
"specializing member "Host::Child<X>::submember01 [with X=(char)'A']" requires "template<>" syntax"
这发生在使用 ARM 编译器时,但我在 Visual Studio 中没有收到此错误。
怎么样:(使用 template<>
语法)
template<>
Host::Child<'A'>::Subchild<1> Host::Child<'A'>::submember01;