求数组的大小的惯用法示例如下:
int a[] = {1,2,3};
cout << sizeof(a) / sizeof(0[a]) << endl;
感觉boost库中应该有这个功能, 找了好长时间, 终于找到了.
原来是boost::extent, 属于boost::type_traits.
示例:
extent<int[4]>::value == 4
参考:
http://hi.baidu.com/redcastle/blog/item/934b232d22a24534349bf7f8.html
不过extent应该是需要一个类作为模板参数, 而我只有这个实例名a.
该怎么办呢? boost中应该有辅助函数之类的能接受一个实例再应用extent?
上述参考文章中有个现成的方法:
template <class T>
unsigned int array_size(const T&)
{
return boost::extent<T>::value;
}
但是定义这样一个模析函数好像太烦了, 还不如直接用sizeof()惯用法.
无意中看到boost目录中, 就在type_traits目录旁, 有个typeof目录, 这应该是我所要的吧.
确实好用:
typedef BOOST_TYPEOF(a) TypeA;
cout << boost::extent<TypeA>::value << endl;
(转载请注明来源于金庆的专栏)
分享到:
相关推荐
任何写入boost::multi_array接口的 C++ 算法都可以轻松地重新编译以使用 Numpy 数组。 已知缺点: 由于 boost::multi_array 的设计,数组的数据类型和维数在编译时是固定的(尽管这在实践中通常不是一个重要的限制...
三维大小均为100的静态,动态,原生数组以及boost::multi_array.以三重循环每次隔一个 填充, 我测试的结果,速度大概是原生数组的60%,boost数组的速度是原生数组的1/5,因此速度 大概是boost的3倍. 如果用...
boost资料boost资料boost资料boost资料
在boost中有自带的日志库供开发人员使用但效率不是最高的: 加入头文件#include 即可引入日志库 boost中的log库有以下六种级别: BOOST_LOG_TRIVIAL(trace) << A trace severity message; BOOST_LOG_TRIVIAL...
boost C++Boost boost入门 boost简介
Boost 提供了免费的、对等审查的、可移植的 C++ 源程序库。 我们强调程序库要与C++标准库很好地共同工作。Boost库的目标是要被广泛使用,并可用于各种各样的应用。Boost许可证既鼓励商业用途,也鼓励非商业用途。 ...
boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_0.tar.zip boost_1_59_...
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost社区的发起人Dawes本人就是C++标准委员会的成员之一。大部分boost库功能的使用只需包括相应头文件即可,少数...
实现抗负载变化扰动的boost电路,输入电压为50V,输出电压为100V。
该资料为boost电路闭环控制的详细计算文档,文档用mathcad打开
bitcoin程序安装需要依赖的库boost 核心问题,也是比较常见的问题,原因是系统中没有安装boot库,解决方法如下: 下载 boost (http://www.boost.org/users/history/version_1_66_0.html) cd boost_1_66_0/ ./...
Boost电压电流双闭环,实现输出电压和输入电流的控制
Boost库由Boost社区组织开发、维护。其目的是为C++程序员提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。Boost库使用Boost License来授权使用,根据该协议,...
multsim design of buck boost converter
boost开关Vds电压波形分析doc,
simulink中搭建boost升压电路,为满足精确度要求和增大相应速度进行双环控制。
资源来自pypi官网。 资源全名:catboost-0.24.2-cp27-none-manylinux1_x86_64.whl
boost boost库 boost boost库boost boost库 boost boost库boost boost库boost boost库
boost
BOOST程序库完全开发指南:深入C++“准”标准库(第3版) 以及boost源码1.71.0 BOOST程序库完全开发指南:深入C++“准”标准库(第3版) 以及boost源码1.71.0 BOOST程序库完全开发指南:深入C++“准”标准库(第3...