std::extentを使うことで、for文の条件式を以下のように書くことができます。
#include <iostream>
#include <type_traits>
int main(void)
{
int a[3] = {1, 2, 3};
// std::enxtentを使用
for (size_t i = 0; i < std::extent<decltype(a)>::value; i++) {
std::cout << a[i] << " "; // => "1 2 3 "
}
// C言語以来のクラシカルなやり方
for (size_t i = 0; i < (sizeof(a) / sizeof(a[0])); i++) {
std::cout << a[i] << " "; // => "1 2 3 "
}
return 0;
}
好みにもよりますが、C言語以来のクラシカルなやり方よりも、std::extent を使用する方が、スマートであるように思います。
0 件のコメント:
コメントを投稿