前提・実現したいこと
arrayのコンパイル時定数を関数テンプレートの仮引数に渡して,関数内でarrayを使いたいのですがうまくいきません。ご教示いただける方教えていただけませんでしょうか。お願いいたします。
発生している問題・エラーメッセージ
A non-type template parameter cannot have type 'std::__1::array<int, 4>'
該当のソースコード
C++
1#include<array> 2#include<type_traits> 3using namespace std; 4 5template<int N, integral_constant<array<int,N>, arg>> 6void func( integral_constant<array<int,N>, arg> ){ 7 // for( auto i: arg) 8 // cout << i << '\n'; 9 10} 11 12int main (){ 13 constexpr array<int,4> ar1 = {0, 1, 3, 6}; 14 func(integral_constant<array<int,4>,ar1>()); 15}
試したこと
えいっ,と以下のように雑にやってみましたが同じでした。
C++
1template<int N, typename F> 2void func( F a){ 3}
補足情報(FW/ツールのバージョンなど)
clang
c++17
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/23 08:48
2021/02/23 09:02
2021/02/23 10:14