view gcc/testsuite/g++.dg/cpp1y/udlit-char-template-sfinae.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
line wrap: on
line source

// { dg-do run { target c++14 } }
// { dg-options -w }

#include <cassert>

template<bool, typename _Tp = void>struct enable_if {};
template<typename _Tp> struct enable_if<true, _Tp> { typedef _Tp type; };


template<typename CharT, CharT... String>
typename enable_if<sizeof...(String) == 6, int>::type operator"" _script () {
  return 5;
}

template<typename CharT, CharT... String>
typename enable_if<sizeof...(String) == 3, int>::type operator"" _script () {
  return 3;
}

template<typename CharT, CharT... String>
typename enable_if<sizeof...(String) != 3 && sizeof...(String) != 6, int>::type operator"" _script () {
  return 1;
}

int main ()
{
  assert ("hello!"_script == 5);
  assert (u8"hi!"_script == 3);
  assert ("hey!"_script == 1);
}