#include <cstdio> #include <array> int main(void) { constexpr std::array a{1, 2, 3}; for (const auto& e: a) { printf("%d\n", e); } return 0; }
こういうものを書いたとして、いかにもな箇所が std::array<int, 3> a{1, 2, 3};
であれば clang++ -std=c++11
くらいでコンパイルできる。が、上記までくると clang++ -std=c++17
以上でないとコンパイルできない。というか・・・これどういう感じなの?推論が拡張されているのか?
クラステンプレートのテンプレート引数推論 - cpprefjp C++日本語リファレンス を見るとなるほどね。クラステンプレートのテンプレート引数推論と・・・。