Назад к вопросам
JuniorТеорияИногда
Что выведет программа?
#include <iostream>
template <typename... Ts>
auto count_args(Ts...) {
return sizeof...(Ts);
}
int main() {
std::cout << count_args(1, 2.5, 'x') << ' ' << count_args();
}3 0
- Ждать размера в байтах:
sizeof...(Ts)считает элементы пакета — здесь три аргумента — и не складывает их размеры, какsizeof. - Ждать, что
count_args()не скомпилируется: пакет параметров может быть пустым, и тогдаsizeof...(Ts)равно0.
- Как вернуть сумму всех аргументов с помощью выражения свёртки (fold expression)?
- Чем
sizeof...(Ts)отличается отsizeof(T)для одного типаT?