Объект точки настройки может быть определен в соответствии с P1895R0 как:
Код: Выделить всё
inline constexpr struct foo_cpo {
// simplified original by omitting noexcept forward and using auto arg
auto operator()(auto const &x) -> decltype( std::tag_invoke(*this, x) ) {
return std::tag_invoke(*this, x); // decltype( tag_invoke(*this, x) ) {
return tag_invoke(*this, x); // no Niebloid. directly ADL call tag_invoke
}
} foo;
Что такое требование, чтобы наличие Niebloid действительно удовлетворяло для tag_invoke?
Подробнее здесь: https://stackoverflow.com/questions/638 ... oke-at-all