# `sizeof...` operator (since C++11)

From cppreference.com
< cpp‎ | language

Queries the number of elements in a pack.

### Syntax

`sizeof...(` pack `)` |  |

Returns a constant of type std::size_t.

### Explanation

Returns the number of elements in a pack.

### Keywords

`sizeof`

### Example

Run this code

    #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";
    }

Output:

    arr = { 1, 2.71, 3.14, 42 }

### See also

- `sizeof`

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/language/sizeof...&oldid=178138"