Home | History | Annotate | Download | only in dcl.fct.def.general
      1 // RUN: %clang_cc1 -std=c++11 %s -verify
      2 // expected-no-diagnostics
      3 
      4 using size_t = decltype(sizeof(0));
      5 template<typename T> struct check;
      6 template<size_t N> struct check<const char[N]> {};
      7 
      8 constexpr bool startswith(const char *p, const char *q) {
      9   return !*q || (*p == *q && startswith(p + 1, q + 1));
     10 }
     11 constexpr bool contains(const char *p, const char *q) {
     12   return *p && (startswith(p, q) || contains(p + 1, q));
     13 }
     14 
     15 void foo() {
     16   check<decltype(__func__)>();
     17   static_assert(contains(__func__, "foo"), "");
     18 }
     19