2015-10-01 18 views

cevap

25

Bunun nedeni, sizin durumunuzda bir rengin olur. Bir rengin yerine atayamazsınız. ifadesi std::declval<T>() = std::declval<U>() unevaluated bağlamda

iyi oluşturulmuş ise

Ama bir rvalue için atanamıyor:

std::is_assignable<X*&, Y*>::value 
//     ~^~ 
25

std::is_assignable çekleri: yerine lvalue değiştirin (declval<X*>() ne olurdu) hiç. Sen atamanın sol tarafında bir lvalue gerekir:

std::is_assignable<X*&, Y*>::value 

doğru olacağını. Clang doğru dönerse, kesinlikle bir Clang hatası.

İlgili konular