teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/04/12 14:30

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -10,4 +10,10 @@
10
10
  code 2は、単に`template<typename T, typename> void foo(T) {}`を2つ並べたものですので、同じものを2つ定義したことになります。(デフォルト・パラメータより先に型が評価されるようです。)
11
11
  [ここ](http://cpplover.blogspot.jp/2011/04/c0xenableif.html)が参考になります。(この江添氏のサイトは本当に有用です。ありがたや、ありがたや。)
12
12
 
13
- なお、clangの場合、同じものの宣言にデフォルト引数を2回以上書くと、`template parameter redefines default argument`の[エラー](http://stackoverflow.com/questions/14197436/c11-template-parameter-redefines-default-argument)になるそうなので、そこでエラーになっているようです。
13
+ なお、clangの場合、同じものの宣言にデフォルト引数を2回以上書くと、`template parameter redefines default argument`の[エラー](http://stackoverflow.com/questions/14197436/c11-template-parameter-redefines-default-argument)になるそうなので、そこでエラーになっているようです。
14
+
15
+ ---
16
+ 【追記】
17
+ そうそう、enablerについては、[std::enable_ifを使ってオーバーロードする時、enablerを使う?](http://qiita.com/kazatsuyu/items/203584ef4cb8b9e52462)も面白いです。
18
+
19
+ なんと、yumetodoさんがコメントされてますね。彼が江添氏へ確認したところ「いいのではないか。しかし、そろそろこういうことはコンセプトでやりたい。」って返事が返っているようですが、conceptの採用は延期されてしまいました。orz