前提・実現したいこと
テンプレトート引数が単純であれば通常のユニバーサル参照を引数にする関数は作れるのですが,テンプレートテンプレート仮引数の場合にうまく作れません。以下のコードでは,func1では,arrayをまるごと推論しており,右辺値も左辺値も受け取れますが,func2では右辺値しか受け取れません。fanc2をどのように修正すればよいのでしょうか。お知恵をください。
該当のソースコード
C++
1template<typename T> 2void func1(T&& x){ 3 ///do something 4} 5template<typename T,size_t N,template<typename,size_t>class M> 6void func2(M<T,N>&& x){ 7 ///do something 8} 9int main(){ 10 array<int,3> m{1,2,3}; 11 func1(m); 12 func2(m);//No matching function for call to 'func2' 13}
補足情報(FW/ツールのバージョンなど)
clang
c++17
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/20 05:00
2021/06/20 05:48
2021/06/24 05:13 編集