In C++ 11, std::enable_if
wurde der Standardbibliothek hinzugefügt. Es entspricht boost::enable_if_c
, deren Zustand bool
ist. Dies ist für ziemlich einfache Bedingungen geeignet, aber sobald Sie Prädikate verwenden, die ihr Ergebnis in einer value
Konstanten enthalten, müssen Sie das ausführlichere Konstrukt my_predicate<MyArgs>::value
verwenden, um es in bool
umzuwandeln. Dies ist genau das, was für boost::enable_if
(ohne _c
Suffix) gemacht wurde.Warum gibt es kein Äquivalent zu boost :: enable_if?
Warum gibt es keine Entsprechung in der Standardbibliothek?
'typename my_predicate :: value' was? –
für etwa vergleichbar mit [diese] (https://blogs.msdn.microsoft.com/ericlippert/2009/06/22/why-doesnt-c-implement-top-level-methods/) – Caleth
Sorry, my bad. Ich habe eine Mischung zwischen Metafunktionen gemacht, die Typen zurückgeben, und denen, die Werte zurückgeben. –