W jaki sposób mogę statycznie potwierdzić, że wyrażenie jest std::unique_ptr
, tj. std::unique_ptr<T>
dla każdego .static_assert dla unique_ptr dowolnego typu
static_assert (std::is_pointer<decltype(exp)>()), "not a smart pointer")
Powyżej nie działa. Jeśli nic prostego, interesuje mnie tylko operator bool()
zdefiniowany dla tego typu.
Należy pamiętać, że najlepsze odpowiedzi (w tej chwili) polegać na 'std :: true_type' i takie. Są one częścią nadchodzącego C++ 17 i może zajść potrzeba przepisania rozwiązania za pomocą aktualnie dostępnego 'std :: integral_constant' – StoryTeller
@StoryTeller Huh? 'std :: true_type' jest dostępny od wersji C++ 11. Mogłeś pomylić go z szablonem aliasu 'std :: bool_constant'. – cpplearner
@cpplearner, wydajesz się być poprawny. Utknąłem w głowie, że te trzy idą ręka w rękę. No cóż. – StoryTeller