2016-05-26 4 views
-1

クラスのテンプレートコンストラクタデフォルト引数

Pair(const Type1& t1 = Type1(), const Type2& t2 = Type2()) : 
first(t1), second(t2) 
{} 

私は、各タイプのデフォルトコンストラクタへの呼び出しを使用します。 すべては私がのparamsを持つコンストラクタを呼び出す場合に行く:

Pair<float, double> pair_fd(1, 1); 

しかし、私はプログラムがリンカエラーを与えるのparamsせずに電話をかけるとき。

私は何をしようとしていますか?もしそうなら、私は何を忘れていますか?

ありがとうございます。

+0

@クリス

Pair<float, double> pair_fd(); 

代わりの

Pair<float, double> pair_fd; 

おかげのような変数を作成しようとしていた "私がしようとしています何を達成することは可能ですか?" _はい。 _もしそうなら、私は何を忘れていますか?_これが失敗する多くの方法があります。[MCVE]を見せてください。 –

+1

[再生できません](http://coliru.stacked-crooked.com/a/936667f11b5b06a0)。私のリンクはMCVEの一例です。 – chris

+0

'Pair'のデフォルトのコンストラクタを作成し、' std :: enable_if_t :: value> '(' Type2'と同様)を使うのはなぜですか?あるいは、カスタムペアタイプを作るのではなく 'std :: pair'を使うだけです。 – ArchbishopOfBanterbury

答えて

0

解決済み。

私は_

関連する問題