相关疑难解决方法(0)

is_convertible is_assignable之间有什么区别?

is_convertible和之间有什么区别is_assignable

为什么,

在vs2012

is_convertible<int, int&> is false

is_assignable<int, int&> is true
Run Code Online (Sandbox Code Playgroud)

在gcc4.7.2中

is_convertible<int, int&> is false

is_assignable<int, int&> is false
Run Code Online (Sandbox Code Playgroud)

c++ type-traits

23
推荐指数
1
解决办法
1776
查看次数

为什么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++ ×2

type-traits ×2

c++11 ×1