質問編集履歴
3
試したことを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,6 +40,9 @@
|
|
40
40
|
```
|
41
41
|
### 試したこと
|
42
42
|
以下のようにfooの引数arの参照を外してみた。bar( T ar )でもコンパイルできませんでした。
|
43
|
+
エラー内容
|
44
|
+
constexpr std::size_t D = foo(ar);の行において
|
45
|
+
function parameter 'ar' with unknown value cannot be used in a constant expression
|
43
46
|
|
44
47
|
```c++
|
45
48
|
|
2
試したことを追加した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,7 +38,18 @@
|
|
38
38
|
bar(ar);
|
39
39
|
}
|
40
40
|
```
|
41
|
+
### 試したこと
|
42
|
+
以下のようにfooの引数arの参照を外してみた。bar( T ar )でもコンパイルできませんでした。
|
41
43
|
|
44
|
+
```c++
|
45
|
+
|
46
|
+
template<typename T>
|
47
|
+
constexpr
|
48
|
+
std::size_t
|
49
|
+
foo( T ar ) {///参照を外した
|
50
|
+
return ar.size();
|
51
|
+
}
|
52
|
+
```
|
42
53
|
|
43
54
|
### 補足情報(FW/ツールのバージョンなど)
|
44
55
|
|
1
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
template<typename T>
|
29
29
|
void bar(T ar){ //#1
|
30
30
|
//void bar(const T& ar){ //#2 エラーとなる
|
31
|
-
//void
|
31
|
+
//void bar( T&& ar ){ //#2 エラーとなる
|
32
32
|
constexpr std::size_t D = foo(ar);
|
33
33
|
std::cout << D <<'\n';
|
34
34
|
}
|