Kia*_*ian 3 c++ templates const
如果我做一个typedef如
typedef int const cint;
Run Code Online (Sandbox Code Playgroud)
cint将引用一个无法修改的int.我可以cint在任何采用类型(模板参数,函数定义等)的上下文中使用.
但是,typedef不适用于模板.我的希望是能够声明一个类似的模板,Constant<SomeType>并将其引用到a 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'
Run Code Online (Sandbox Code Playgroud)
C++ 03:
template <typename T>
struct Constant
{
typedef const T type;
};
Constant<int>::type i = 1;
Run Code Online (Sandbox Code Playgroud)