Tal*_*ion 3 c++ templates namespaces c++11
我想知道是否有可能做到以下几点:
template <typename T>
namespace basic_foo {
struct str {
T value;
};
}
basic_foo<char>::str s1;
namespace foo = basic_foo<char>;
foo::str s2;
Run Code Online (Sandbox Code Playgroud)
是否可以在任何c ++编译器中执行此操作?
是否有工作要做到这一点?
我认为这对语言来说是一个很好的补充.
提前致谢.
Jam*_*lis 10
不,您无法定义命名空间模板.但是,通过创建basic_foo类模板,您可以实现几乎完全符合您的要求(语法略有不同):
template <typename T>
struct basic_foo {
struct str {
T value;
};
};
basic_foo<char>::str s1;
typedef basic_foo<char> foo;
foo::str s2;
Run Code Online (Sandbox Code Playgroud)
不,但你可以使用模板化结构:
template<typename T>
struct basic_foo
{
struct str
{
T value;
};
};
typedef basic_foo<char> foo;
foo::str s1;
Run Code Online (Sandbox Code Playgroud)
您也可以使用class而不是struct,但public:在这种情况下您必须记住.
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |