= ...;
Нужно как то его передать в темплейт, но я не могу придумать темплейт принимающий "абстрактный" функтор, получается только тот, которому явно задали принимаемые им параметры
Пример:
template<template<auto...> typename X> - принимает функтор, берущий только значения
template<template<typename...> typename X> - принимает функтор, берущий только типы
Можно ли объявить обобщённый функтор в темплейте?
Увы, универсальные шаблонные параметры в языке не предусмотрены.
Разве template<typename T...> не сработает?
он принимает только типы
template<typename, int> using F = ...; в него уже не засунуть
Я делал хак с шаблонами функций
#include <type_traits> template <auto nttp> constexpr std::true_type is_nttp() noexcept {return {};} template <typename T> constexpr std::false_type is_nttp() noexcept {return {};} static_assert(decltype(is_nttp<14>())::value); static_assert(!decltype(is_nttp<int>())::value); int main(){} #hack #nttp
это не подходит даже как хак, потому что нет ни готового значения, и готового типа
Обсуждают сегодня