我聲明瞭全局移位運算符,但由於某種原因,編譯器無法扣除類型。扣除失敗
template<class T, size_t N>
std::istream& operator >>(std::istream& stream, std::array<T, N>& array);
相反,它嘗試使用std::istream&&
作爲第一個參數的重載。
編輯:我經由
void myns::subns::Object::Func(std::istream& stream) {
stream >> array;
}
其中陣列是std::array<size_t, 2>
調用。 事實上,當我嘗試它孤立它編譯 - 但在我的代碼的gcc(4.7)抱怨error: cannot bind ‘std::istream {aka std::basic_istream<char>}’ lvalue to ‘std::basic_istream<char>&&’
有人能向我解釋爲什麼扣不工作或我怎麼能強迫調用函數重載?
你是如何調用它的? –
適用於我:http://ideone.com/n2D5o – mfontanini
@mfontanini謝謝。我不明白它爲什麼孤立。 – abergmeier