#include <stdio.h> #include <type_traits> enum class E : int { A }; template<typename T> void Test(T&& t) { if (std::is_enum<T>::value) printf("YES\n"); else printf("NO\n"); } template<typename T> void Test2(T&& t) { Test(t); } int main() { Test(E::A); Test2(E::A); return 0; } 为什么输出结果是:
YES NO 环境 g++ 7.3.0
