質問編集履歴

2

最終的にやりたかったことはこれらの関数をクラスのメンバ関数にして実装することでした。クラスの形に修正しました。

2021/01/02 21:51

投稿

jbe00214
jbe00214

スコア63

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- どなたかご教示いただける方よろしくお願いします。(当初のコードを修正しています。)
15
+ どなたかご教示いただける方よろしくお願いします。(当初のコードをクラスメンバ関数に修正しています。)
16
16
 
17
17
 
18
18
 
@@ -48,39 +48,47 @@
48
48
 
49
49
 
50
50
 
51
- ///再帰 最後の関数
51
+ struct Foo{
52
52
 
53
- bool constexpr arg_check(){return true;}
53
+ bool res=false;
54
54
 
55
- ///再帰関数
55
+ ///再帰 最後の関数
56
56
 
57
- template < int head, int... Tail>
57
+ bool constexpr arg_check(){return true;}
58
58
 
59
- bool constexpr arg_check (head, int ...tail){///error
59
+ ///再帰関数
60
60
 
61
- static_assert(head < N);
61
+ template < int head, int... Tail>
62
62
 
63
- return arg_check(tail...);///error
63
+ bool constexpr arg_check (head, int ...tail){///error
64
64
 
65
+ static_assert(head < N);
66
+
67
+ return arg_check(tail...);///error
68
+
65
- }
69
+ }
66
70
 
67
71
 
68
72
 
69
- template<int ... args>
73
+ template<int ... args>
70
74
 
71
- auto constexpr func(){
75
+ auto constexpr func(){
72
76
 
73
- static_assert(arg_check(args));///error
77
+ static_assert(arg_check(args));///error
74
78
 
75
- }
79
+ res=true;
76
80
 
81
+ }
77
82
 
83
+ };
78
84
 
79
85
 
80
86
 
81
87
  int main(){
82
88
 
89
+ Foo f;
90
+
83
- func<200,10>();///200でエラーを検出したい
91
+ f.func<200,10>();///200でエラーを検出したい
84
92
 
85
93
  }
86
94
 

1

当初のコードでfunc関数とarg_check関数を上下入れ替えました。

2021/01/02 21:51

投稿

jbe00214
jbe00214

スコア63

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- どなたかご教示いただける方よろしくお願いします。
15
+ どなたかご教示いただける方よろしくお願いします。(当初のコードを修正しています。)
16
16
 
17
17
 
18
18
 
@@ -46,14 +46,6 @@
46
46
 
47
47
  constexpr int N=100;
48
48
 
49
- template<int ... args>
50
-
51
- auto constexpr func(){
52
-
53
- static_assert(arg_check(args));///error
54
-
55
- }
56
-
57
49
 
58
50
 
59
51
  ///再帰 最後の関数
@@ -72,7 +64,19 @@
72
64
 
73
65
  }
74
66
 
67
+
68
+
75
-
69
+ template<int ... args>
70
+
71
+ auto constexpr func(){
72
+
73
+ static_assert(arg_check(args));///error
74
+
75
+ }
76
+
77
+
78
+
79
+
76
80
 
77
81
  int main(){
78
82