temp_arg_enum_printing.cpp 512 B

123456789101112131415161718192021222324
  1. // RUN: %clang_cc1 -fsyntax-only -ast-print %s | FileCheck %s
  2. namespace NamedEnumNS
  3. {
  4. enum NamedEnum
  5. {
  6. Val0,
  7. Val1
  8. };
  9. template <NamedEnum E>
  10. void foo();
  11. void test() {
  12. // CHECK: template <NamedEnumNS::NamedEnum E = NamedEnumNS::NamedEnum::Val0>
  13. NamedEnumNS::foo<Val0>();
  14. // CHECK: template <NamedEnumNS::NamedEnum E = NamedEnumNS::NamedEnum::Val1>
  15. NamedEnumNS::foo<(NamedEnum)1>();
  16. // CHECK: template <NamedEnumNS::NamedEnum E = 2>
  17. NamedEnumNS::foo<(NamedEnum)2>();
  18. }
  19. } // NamedEnumNS