Как создать пустой std::tuple?

#c #stdtuple

#c #stdtuple

Вопрос:

Мне нужно создать std::tuple объект так, чтобы std::tuple_size<T>::value = 0 . Есть ли способ сделать это?

Комментарии:

1. Я не вижу здесь проблемы…

2. что вы пробовали и как это не удалось?

3. я попробовал std::tuple() и понятия не имел, что попробовать еще. Я не знал, что пустые шаблонные скобки — это вещь. Как это вообще реализовано?

4. @DariusDuesentrieb, точно так же, как прямое объявление в ссылке . Кстати, std::tuple() работает с C 17.

Ответ №1:

 std::tuple<> empty;
using empty_t = std::tuple<>;
auto empty2 = std::make_tuple();
static_assert(std::tuple_size<std::tuple<>>::value == 0);