相关疑难解决方法(0)

为什么std :: is_assignable反直觉?

std::is_assignable<int, int>::value == false 在一致的实现中(例如clang/libc ++,gcc/libstdc ++,但不是VS2012).

直觉上,这意味着诸如int x = 3;无效的表达.但是is_assignable赋值的双方都被转换为的状态的规范std::add_rvalue_reference<T>::type,因此std::is_assignable<int, int>::value必须求值false(因为int+ &&- > int&&,这是一个无法分配的右值).

为什么std::is_assignable这样设计,或者我误解了什么是is_assignable<int, int>::value真正的意思?

相关讨论:

c++ type-traits c++11

12
推荐指数
2
解决办法
1325
查看次数

标签 统计

c++ ×1

c++11 ×1

type-traits ×1