c++ - 数组大小元函数 - 它在某处 boost 吗?

标签 c++ arrays templates boost sizeof

我在 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/

相关文章:

c++ - 试图为类编译一个简单的代码

c++ - 名称后跟 '::' 必须是类或命名空间错误,即使 '::' 跟在类名之后

python - 在 numpy 数组中 reshape 和连接

javascript - 如何使用 onchange 事件调用函数将元素添加到数组中?

c++ - 如何在 c++ 类中使用模板特化,为什么它不能编译?

c++ - clang::ast_type_traits::DynTypedNode::get() 无法推断模板参数 'T'

c++ - 如何从另一个线程调用flutter引擎方法

c++ - Boost Asio UDP 服务器设置套接字以监听指定 IP

c++ - MinGW的Qt getline错误

Javascript 按值对对象进行分组