[英]How can I declare a template constant type?
如果我做一个typedef如
typedef int const cint;
cint
将引用一个无法修改的int。 我可以在任何带有类型(模板参数,函数定义等)的上下文中使用cint
。
但是,typedef不适用于模板。 我希望能够声明一个像Constant<SomeType>
这样的模板,并Constant<SomeType>
引用一个const SomeType
,就像我上面用cint
做的那样。 可能吗?
C ++ 11:
template <typename T>
using Constant = const T;
Constant<int> i = 1;
//! i = 2; // error: assignment of read-only variable 'i'
C ++ 03:
template <typename T>
struct Constant
{
typedef const T type;
};
Constant<int>::type i = 1;
std::add_const_t<SomeType>
与const SomeType
相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.