Примените шаблон Lambda к каждому типу в STD :: Tuple (C ++ 20)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Примените шаблон Lambda к каждому типу в STD :: Tuple (C ++ 20)

Сообщение Anonymous »

Я столкнулся с интересной проблемой C ++ 20, где я хочу применить одну и ту же шаблонную функцию к каждому типу, указанному в STD :: Tuple . Вот какой-то псевдокод, чтобы проиллюстрировать идею: < /p>

Код: Выделить всё

template 
void logType()
{
std::cout 
void main()
{
using MyTypes = std::tuple;
tapply([] () {
logType ();
});
}
< /code>
Пока это, кажется, работает как очарование в модульных тестах, но я удивлен, что в стандартной библиотеке нет стандартного способа сделать это. Каким -то образом это похоже на почти наиболее стандартный вариант использования, когда я использовал бы новую шаблонную функцию Lambda, доступную в C ++ 20. < /p>
, так что у меня есть два вопроса для наркоманов шаблонов: < /p>

 Я пропустил существующий метод стандартной библиотеки, которая уже показала бы ту же функцию? Кажется, что
std :: Apply
сможет сделать это, начиная с C ++ 23 < /li>
 Вы бы порекомендовали более элегантную /стандартную реализацию, совместимую с C ++ 20? < /Li>
< /ul>
Спасибо! < /P> 

Подробнее здесь: [url]https://stackoverflow.com/questions/79711543/apply-a-templated-lambda-to-each-type-in-a-stdtuple-c20[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»