【发布时间】:2017-09-13 05:48:15
【问题描述】:
请注意,我使用 std::thread 只是为了在错误中获取可读类型:
int main() {
const int * first;
using deref = decltype(*first);
std::thread s = std::remove_const<deref>::type{}; // const int ???
std::thread s2 = deref{}; // const int
std::thread s3 = std::remove_const<const int>::type{}; // int
}
似乎remove_const<deref>::type 是const int,而不是像我预期的那样可变的int。
【问题讨论】:
-
你的标题是
remove_reference,但你并没有在你的身体中使用它。 -
tnx,已修复,在原始代码中同时使用了这两种方法,所以我把它混合了 :)
-
我建议您使用this 来显示类型而不是您的
std::thread方法,因为它显示的是const int &的实际类型,而您的方法对您来说是谎言并显示const int。 -
mutable是存储类说明符,不是类型的一部分。
标签: c++ c++11 constants typetraits decltype