Как проверить наличие алиаса в шаблоне с помощью concept?
Как в концепте с++20 проверить наличие алиаса внутри шаблонного типа?
struct example {
using alias_t = int;
};
template<class T>
concept example_concept = requires{
T::alias_t;
};
Вот пример, если передать example в качестве шаблонного параметра аля template<example_concept T> код не будет компилироваться. Как правильно сделать эту проверку ?
update
template<class T>
concept future_traits = requires {
typename T::initial_awaitable_t;
typename T::await_awaitable_t;
typename T::final_awaitable_t;
};
template<class return_type>
struct default_traits {
using initial_awaitable_t = std::suspend_always;
using await_awaitable_t = detail::symmetrical_awaitable<detail::promise<return_type, default_traits>>;
using final_awaitable_t = detail::final_awaitable;
};