????いつもありがとうございます
前回(関連する)の質問
https://teratail.com/questions/331361#reply-457823
url先で、次のコードは「エラーがでてコンパイルが通らない」と言っていたのですが、実行してみるとコンパイルが通り期待通りの動作をしてくれました
画面でエラーが出ていただけでした(IntelliSenseの問題)
cpp
1//concept 2template<typename T> 3concept Integer = std::integral<T>; 4 5 6template<Integer T> 7struct Int { 8 9 //コンストラクタ 10 Int(T i) :i(i) {} 11 12 T i;//メンバ変数 13}; 14 15template<Integer T> 16using Int2 = Int<T>; 17 18 19int main() { 20 Int i(0); 21 22 /*ここ*/ 23 Int2 i2(0);//error 24}
????そこで関連して質問があるのですが、上のコードがコンパイルOKで↓のコードがNGな理由がわかりません
質問: alias template
とやらを間にかませたときに、型推論できる場合とできない場合の分別方法が知りたいです
cpp
1#include <vector> 2 3template<typename T> 4using v = std::vector<T>; 5 6 7int main() { 8 std::vector<int> a = { 1 };//ok 9 std::vector a2 = { 1 };//ok 10 11 v<int> a3 = { 1 };//ok 12 v a4 = {1};//error 13 14 std::vector a5(1, 1);//ok 15 v a6(1, 1);//error 16}
環境
????visual studio2019 version16.9
????C++20(VC++ latest)
????windows10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/12 04:20