If I make a typedef such as
typedef int const cint;
cint
will refer to an int that can't be modified. I can use cint
in any context that takes a type (template parameter, function definition, etc).
However, typedefs don't work with templates. My hope is to be able to declare a template like Constant<SomeType>
and have this refer to a const SomeType
, the way I can do with cint
above. Is it possible?
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
相同。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.