Is het mogelijk om always_false te implementeren in de C++ standaardbibliotheek?

Is het mogelijk om always_false te implementeren in de C++ standaardbibliotheek?

In C++20, met lambda, zou je zoiets kunnen doen als:

template <class... T> struct always_false : std::false_type {};

// To have true, but for a type that user code can't reuse as lambda types are unique.
template <> struct always_false<decltype([](){})> : std::true_type{};

Om Jarod's idee te parafraseren:het zou zoiets kunnen zijn als

template <class... T> struct always_false : std::false_type {};

template <> struct always_false</* implementation defined */> : std::true_type{};

Waar /* implementation defined */ kan worden ingevuld door std::_ReservedIdentifer . Gebruikerscode heeft er geen toegang toe, omdat de identifier is gereserveerd voor de bibliotheek, maar er bestaat een specialisatie die true is . Dat zou vragen over de ODR en lambda's in specialisaties moeten voorkomen.