回答編集履歴
6
余計なSFINAEに対する言及を削除
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
`N/2`であれば、任意の`N: usize`でコンパイルエラーにならないことが(少なくとも人間には)わかりますが、例えば`[0; N-1]`の場合、`N = 0`とするとコンパイルできませんよね.
|
2
2
|
|
3
|
-
Rustは
|
3
|
+
RustではC++(17以前としておきます)のtemplateとは異なり、ジェネリック境界を適切に定義する必要があります.
|
4
4
|
|
5
|
-
関数本体のブロックの中は境界にならない
|
5
|
+
関数本体のブロックの中は境界にならないので、代わりに`where [(); N/2]`と書くことで、`[(); N/2]`、ひいては`[i32; N/2]`等が有効な型であることを境界条件としているのでしょう.
|
6
6
|
|
7
7
|
|
8
8
|
|
5
fix typo
test
CHANGED
@@ -7,7 +7,3 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
参考:[Const well-formedness and const equality](https://hackmd.io/OZG_XiLFRs2Xmw5s39jRzA?view)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
nightly
|
4
Nの型を明示
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
`N/2`であれば、任意の`N`でコンパイルエラーにならないことが(少なくとも人間には)わかりますが、例えば`[0; N-1]`の場合、`N=0`とするとコンパイルできませんよね.
|
1
|
+
`N/2`であれば、任意の`N: usize`でコンパイルエラーにならないことが(少なくとも人間には)わかりますが、例えば`[0; N-1]`の場合、`N = 0`とするとコンパイルできませんよね.
|
2
2
|
|
3
3
|
Rustは、C++にはあるSFINAE(参考:[https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html](https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html))がなく、ジェネリック境界を適切に定義する必要があります.
|
4
4
|
|
@@ -7,3 +7,7 @@
|
|
7
7
|
|
8
8
|
|
9
9
|
参考:[Const well-formedness and const equality](https://hackmd.io/OZG_XiLFRs2Xmw5s39jRzA?view)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
nightly
|
3
URLをリンクにした
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
`N/2`であれば、任意の`N`でコンパイルエラーにならないことが(少なくとも人間には)わかりますが、例えば`[0; N-1]`の場合、`N=0`とするとコンパイルできませんよね.
|
2
2
|
|
3
|
-
RustはC++
|
3
|
+
Rustは、C++にはあるSFINAE(参考:[https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html](https://cpprefjp.github.io/lang/cpp11/sfinae_expressions.html))がなく、ジェネリック境界を適切に定義する必要があります.
|
4
4
|
|
5
|
-
関数本体のブロックは境界にならない(それはもはやSFINAEです)ので、代わりに`where [(); N/2]`と書くことで、`[(); N/2]`、ひいては`[i32; N/2]`等が有効な型であることを境界条件としているのでしょう.
|
5
|
+
関数本体のブロックの中は境界にならない(それはもはやSFINAEです)ので、代わりに`where [(); N/2]`と書くことで、`[(); N/2]`、ひいては`[i32; N/2]`等が有効な型であることを境界条件としているのでしょう.
|
6
6
|
|
7
7
|
|
8
8
|
|
2
URLをリンクにした
test
CHANGED
File without changes
|
1
URLをリンクにした
test
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
参考:https://hackmd.io/OZG_XiLFRs2Xmw5s39jRzA?view
|
9
|
+
参考:[Const well-formedness and const equality](https://hackmd.io/OZG_XiLFRs2Xmw5s39jRzA?view)
|