我在 blog 上找到了以下模板:
template <typename T, size_t N>
struct array_info<T[N]>
{
typedef T type;
enum { size = N };
};
它是 sizeof(a)/sizeof(a[0])
的优雅替代品。
获取数组大小的常用构造肯定应该在库中的某个位置。我不知道一个。谁能告诉我这个功能在某个地方的标准库和/或 Boost 中?最好是易于使用且轻便的形式。
最佳答案
我最终自己找到了答案——boost::size()
:
#include <boost/range.hpp>
int array[10];
boost::size(array); // returns 10
不过,现在您可能应该使用 std::size()
代替(C++17 起)
关于c++ - 数组大小元函数 - 它在某处 boost 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257858/