6
私は不思議です。私は問題にぶつかりました、そして、ここでは小さな再改造です。本質的に私はすべてを転送したい。問題は、最初に< <を使用するとエラーが発生し、o<<1
(またはo<<SomeUserStruct()
)です。2番目のコードを含めると、あいまいなエラーが表示されます。このコードを書くことができるので、T&
T
を使用しています?オペレータでクラス全体を転送する
#include <iostream>
struct FowardIt{
template<typename T> FowardIt& operator<<(T&t) { std::cout<<t; return *this; }
//template<typename T> FowardIt& operator<<(T t) { std::cout<<t; return *this; }
};
struct SomeUserStruct{};
int main() {
FowardIt o;
o << "Hello";
int i=1;
o << i;
o << 1;
o << SomeUserStruct();
}
優れた答え。しかし、私はメソッドのconstを作る場合は、同様にリターンconstを作る必要があります。それは非論理的なものです(通常のストリームの場合)。 –
@ acidzombie24:はい。私もこれを追加しました! – Nawaz
あなたはこれに関する問題が何であるか考えていますか? http://www.ideone.com/fWVG4 16進数が機能するので、機能が進んでいることが分かります。しかし、endl isnt。 –