テンプレートをキャストする方法が少し失われています。私はParamVector<double>*
型のパラメータをとる関数fooを持っています。私はParamVector<float>*
を渡したいと思います。私はParamVector
クラスのキャスト演算子をどのようにオーバーロードするのか分かりません。誰かがこれを行う方法の例を持っていますか?ありがとう。C++テンプレートキャスト
編集:いくつかのコードを追加して、申し訳ありません、私はばかだと言い、元の質問はまったくうまくいきませんでした。
template<class T> class ParamVector
{
public:
vector <T> gnome;
vector <T> data_params;
}
template<class T> class ParamVectorConsumer
{
public:
ParamVector<T> test;
}
ParamVector<float> tester;
ParamVectorConsumer<double> cons;
cons.ParamVector = tester
はコンパイルに失敗します。私はそれを書く方法を知りたいので、フロートバージョンのテスターをParamVector doubleにキャストすることができます。ありがとう
EDIT2:鋳造は間違った言葉でした。私は余分なコードを書いても構いません。コンパイラがこれを受け入れて、何らかの変換コードを書くことができるようにする必要があります。
はい、正確にParamVectorは何ですか?あなたが呼び出そうとしている機能は何ですか? –
あなたの投稿に何か不足していますか?おそらくfooはParamVectorを望んでおり、ParamVector があります。ここでT2はT1にキャスト可能ですか? –
マークアップが少し明確になるように修正されました。それは疑問だったが、マークダウンはOPのテキストを食べた。 – unwind