09/05/17 22:28:14
g++にてテンプレートに暗黙の型変換を絡めたら分からなくなったので教えてください。
C++ code - 60 lines - codepad
URLリンク(codepad.org)
このソースコードでは50行目hoge < short(1)の部分で
error: no match for 'operator<' in 'hoge < 1'
と言われてしまいます。どうやら暗黙の型変換がうまくいかないようです。
これを改変してForward declarationを無くして代わりにクラステンプレートの内部で friend 関数を定義することで回避できます。
C++ code - 49 lines - codepad
URLリンク(codepad.org)
しかし、どうして前者のソースコードでは暗黙の型変換がうまくいかないのでしょうか?