if_constexpr.cpp 437 B

123456789101112131415161718192021222324
  1. // https://cirosantilli.com/linux-kernel-module-cheat#cpp
  2. #if __cplusplus >= 201703L
  3. #include <cassert>
  4. #include <type_traits>
  5. template <class T>
  6. struct MyClass {
  7. int myFunc() {
  8. if constexpr(std::is_integral<T>())
  9. return 1;
  10. else
  11. return 2;
  12. }
  13. };
  14. #endif
  15. int main() {
  16. #if __cplusplus >= 201703L
  17. assert(MyClass<int>().myFunc() == 1);
  18. assert(MyClass<float>().myFunc() == 2);
  19. #endif
  20. }