我有一个简单的 const 方法想要生成一个随机数
int Object::const_method() const {
std::tr1::uniform_int<int> uni(0,100);
// do some calculation
return result;
}
这会导致您的标准(如果已模板化)const 违规错误
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../include/c++/4.5.1/tr1/random.tcc:910:4:错误: 传递 'const std::tr1::mersenne_twister' 作为 'result_type std::tr1::mersenne_twister<_UIntType, __w, __n, __m, __r, __a, __u, __s, __b, __t, __c, __l>::operator()() [with _UIntType = long unsigned int, int __w = 32, int __n = 624, int __m = 397, int __r = 31, _UIntType __a = 2567483615ul, int __u = 11, int __s = 7, _UIntType __b = 2636928640ul, int __t = 15, _UIntType __c = 4022730752ul, int __l = 18, result_type = long unsigned int]' 丢弃限定符
这在没有const_cast
on的情况下可行this
吗?