次のコードはVisualStudio2008ではコンパイルされません。Foo1がBarの前に定義されている場合、Foo1クラスの単項演算子がBarに変換できるようにするにはどうすればよいですか?
class Foo1
{
public:
int val;
operator struct Bar() const;
};
struct Bar
{
int val;
};
// This does not compile
Foo1::operator Bar() const
{
Bar x;
x.val = val;
return x;
}