繁体   English   中英

如何声明模板常量类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM