回答編集履歴

3

悲しい typo

2018/04/30 03:45

投稿

Eki
Eki

スコア429

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  この記法を使って修正したコードが次です。
18
18
 
19
- なお、 `if constexpr` は `tail` の数が 0 でないときはそもそも `Turing<tail...>` を展開しないようにするために利用しています。これにより `template <int head = 0, ...>` のような無意味なデフォルト引数が必要なくなります。 (無意味でなかったならごめんなさい) 。
19
+ なお、 `if constexpr` は `tail` の数が 0 でないときはそもそも `Turing<tail...>` を展開しないようにするために利用しています。これにより `template <int head = 0, ...>` のような無意味なデフォルト引数が必要なくなります。 (無意味でなかったならごめんなさい) 。
20
20
 
21
21
 
22
22
 

2

的を得てない参考を削除

2018/04/30 03:45

投稿

Eki
Eki

スコア429

test CHANGED
@@ -17,10 +17,6 @@
17
17
  この記法を使って修正したコードが次です。
18
18
 
19
19
  なお、 `if constexpr` 式は `tail` の数が 0 でないときはそもそも `Turing<tail...>` を展開しないようにするために利用しています。これにより `template <int head = 0, ...>` のような無意味なデフォルト引数が必要なくなります。 (無意味でなかったならごめんなさい) 。
20
-
21
-
22
-
23
- `template` キーワードのこの使い方については [依存名に対するtypenameとtemplateの制限緩和 - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/lang/cpp11/dependent_name_specifier_outside_of_templates.html) で知りました。もっと直接的にこれに触れているサイトもあると思いますが、参考までに。
24
20
 
25
21
 
26
22
 

1

少し丁寧に

2018/04/30 03:15

投稿

Eki
Eki

スコア429

test CHANGED
@@ -1,14 +1,26 @@
1
- `expected expression` の直接的な原因は、テンプレート引数のパスに失敗していことす。スされていのかでは分からないのでが、不等号か何かかと勘違いしているのか?
1
+ `expected expression` の直接的な原因は、メンバ関数呼び出しの部分のテンプレート引数が正しくテンプレト引数として扱われてないことにあります。いう場合、メンバ関数テンプレト名の前に `template` をつけ必要があります
2
2
 
3
3
 
4
4
 
5
- 次のように、呼び出そうとしているものがメンバ関数テンプレートであることを明示してあげると元コードでもうまく呼び出せます。
5
+ ```cpp
6
6
 
7
- なお、 if constexpr 式は tail の数が 0 でないときはそもそも Turing<tail...> を展開しないようにするために利用しています。これにより template <int head = 0, ...> のような無意味なデフォルト引数が必要なくなります。 (無意味でなければごめんなさい)
7
+ map_double().template cons<head*2>();
8
+
9
+ ```
8
10
 
9
11
 
10
12
 
11
- `template` キワードこの使い方いては [依存名に対すtypenameとtemplate制限緩和 - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/lang/cpp11/dependent_name_specifier_outside_of_templates.html) も参考になります。
13
+ どうパスされているかまでは私は分からなのですが、不等号か何かかと思っるのでしょうね?
14
+
15
+
16
+
17
+ この記法を使って修正したコードが次です。
18
+
19
+ なお、 `if constexpr` 式は `tail` の数が 0 でないときはそもそも `Turing<tail...>` を展開しないようにするために利用しています。これにより `template <int head = 0, ...>` のような無意味なデフォルト引数が必要なくなります。 (無意味でなかったならごめんなさい) 。
20
+
21
+
22
+
23
+ `template` キーワードのこの使い方については [依存名に対するtypenameとtemplateの制限緩和 - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/lang/cpp11/dependent_name_specifier_outside_of_templates.html) で知りました。もっと直接的にこれに触れているサイトもあると思いますが、参考までに。
12
24
 
13
25
 
14
26
 
@@ -76,6 +88,4 @@
76
88
 
77
89
  }
78
90
 
79
-
80
-
81
91
  ```