给定两个非常简单的类:
class X
{
};
class Y : public X
{
};
为什么会这样,使用 Clang 和 GCC targeting C++14 , std::is_assignable<X*, Y*>::value
是 false
?是true
当我以 C++11 为目标时,在我的设置中使用 Clang。
最佳答案
这是因为在您的情况下 X*
成为右值。您不能分配给右值。改为左值:
std::is_assignable<X*&, Y*>::value
// ~^~
关于c++ - 为什么 std::is_assignable 使用相关的指针类型返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893374/