以下のようにテンプレートクラス内のあるメソッドだけ,メソッド呼び出し時に決定する(可変)2つ目のテンプレートを持たせたいのですが,可能でしょうか?是非行いたいのでよろしくお願いします.
テンプレートクラス内のメソッド
Re: テンプレートクラス内のメソッド
可能です
C言語を使うと自分の足を誤って撃ち抜いてしまうことがある。 C++を使えばそのような間違いを犯しにくくなる。しかし、やってしまったときには足全体が無くなる。
Re: テンプレートクラス内のメソッド
どの型のメソッドが使われる(生成される?)かは,あくまでも
>メソッド呼び出し時
ではなくコンパイル時に決定されることになりますが.
#聞くよりもコンパイルしてみれば早いのに
>メソッド呼び出し時
ではなくコンパイル時に決定されることになりますが.
#聞くよりもコンパイルしてみれば早いのに
Re: テンプレートクラス内のメソッド
回答有難う御座います.
warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。
1> .\main.cpp(100) : コンパイルされたクラスの テンプレート のインスタンス化 'void classA<T>::mehodA<int>(classA<int> *,int)' の参照を確認してください
1> with
1> [
1> T=double
1> ]
処理内容としては,値のコピーをしているだけでして,
実はコンパイルも通り実行可能ですが,
TがintやcharでSがdoubleならいいのですが,逆の場合に,コンパイル時に警告が出るんです.
これは無視しても問題無いということですかね・・・.
ただおそらくインスタンス作成時にTもSも同じになってしまっているんじゃないかと思うのですが,どうなのでしょうか?
warning C4244: '引数' : 'double' から 'int' への変換です。データが失われる可能性があります。
1> .\main.cpp(100) : コンパイルされたクラスの テンプレート のインスタンス化 'void classA<T>::mehodA<int>(classA<int> *,int)' の参照を確認してください
1> with
1> [
1> T=double
1> ]
処理内容としては,値のコピーをしているだけでして,
実はコンパイルも通り実行可能ですが,
TがintやcharでSがdoubleならいいのですが,逆の場合に,コンパイル時に警告が出るんです.
これは無視しても問題無いということですかね・・・.
ただおそらくインスタンス作成時にTもSも同じになってしまっているんじゃないかと思うのですが,どうなのでしょうか?