有一種我不能阻止編譯的不受歡迎的C風格演員。不受歡迎的轉換從某個類的對象執行C類型轉換爲其他類的非const引用。這些課程無關。在同一時間,我喜歡支持從相同類的對象到const引用的C風格轉換。我正在提供一個公共轉換運算符來支持理想的演員。在這種情況下,似乎不可能防止不受歡迎的演員。 澆鑄到非const引用構建失敗(「沙盒:: B ::運算沙盒::甲&()」(在第30行聲明的)是不可訪問*),不幸
我不太明白爲什麼這裏的代碼不能編譯。 應該可以調用DIST()像這樣: dist(GenericVec2<T>,GenericVec3<T>)
(然而可怕的,這可能是)。這個想法是GenericVec3參數被轉換運算符隱式轉換爲GenericVec2。 我這裏 C++ implicit type conversion with template 發現了這個問題,但我不太確定是否可以應用到我的問
struct A {
int i;
};
struct B {
A a;
operator A*() { return &a; }
};
int main(int argc, char *argv[])
{
B b;
return b->i;
}
g++報告error: base operand of ‘->’ has no