-1
少数の種類の型キャスト演算子をオーバーロードしました。今私は、他のすべてのタイプキャストに対して特定の関数を呼びたいと思います。どうしたらいいですか?C++で既定の型キャスト演算子を定義する方法
少数の種類の型キャスト演算子をオーバーロードしました。今私は、他のすべてのタイプキャストに対して特定の関数を呼びたいと思います。どうしたらいいですか?C++で既定の型キャスト演算子を定義する方法
明らかに厄介な問題です。
typename
がoperator T()
にありません。
template <T>
operator T();
は template <typename T>
operator T();
アクセスの問題である必要があります。
class Foo
からstruct Foo
に変更するか、または機能をpublic
に変更してください。
クラス定義の末尾に;
がありません。
主な問題は、メンバー関数テンプレートを特化できないことです。しかし、同じ効果でそれらをオーバーロードすることができます。
struct Foo {
template <typename T>
operator T();
operator int();
operator char();
};
テンプレート –
CoryKramer
質問を閉じる理由を知りましたか? – neckTwi
はい、タイプミス( 'テンプレート'は 'テンプレート'だったはずです)が原因です。また、質問への回答を編集しないでください –