命名空间
变体
操作

sizeof... 运算符 (自 C++11 起)

来自 cppreference.com
< cpp‎ | 语言
 
 
C++ 语言
表达式
替代表示法
字面量
布尔型 - 整数型 - 浮点型
字符型 - 字符串型 - nullptr (C++11)
用户定义的 (C++11)
实用程序
属性 (C++11)
类型
typedef 声明
类型别名声明 (C++11)
强制转换
内存分配
特定于类的函数属性
explicit (C++11)
static

特殊成员函数
模板
其他
 
 
 

查询参数包中的元素数量。

内容

[编辑] 语法

sizeof...( 参数包 )

返回 std::size_t 类型的常量。

[编辑] 解释

返回参数包中的元素数量。

[编辑] 关键字

sizeof

[编辑] 示例

#include <array>
#include <iostream>
#include <type_traits>
 
template<typename... Ts>
constexpr auto make_array(Ts&&... ts)
{
    using CT = std::common_type_t<Ts...>;
    return std::array<CT, sizeof...(Ts)>{std::forward<CT>(ts)...};
}
 
int main()
{
    std::array<double, 4ul> arr = make_array(1, 2.71f, 3.14, '*');
    std::cout << "arr = { ";
    for (auto s{arr.size()}; double elem : arr)
        std::cout << elem << (--s ? ", " : " ");
    std::cout << "}\n";
}

输出

arr = { 1, 2.71, 3.14, 42 }

[编辑] 另请参阅