view gcc/testsuite/g++.dg/cpp2a/concepts-ts4.C @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 1830386684a0
children
line wrap: on
line source

// { dg-do compile { target c++2a } }
// { dg-additional-options "-fconcepts-ts" }

// Basic tests for introduction syntax.

template<typename T>
concept True = true;

template<typename T>
concept False = false;

template<typename T, typename U>
concept Same = __is_same_as(T, U);

template<int N>
concept Pos = N >= 0;

True{T} void f1(T) { }
False{T} void f2(T) { }
Same{X, Y} void same();
Pos{N} void fn();

void driver()
{
  f1(0);
  f2(0); // { dg-error "" }

  same<int, int>();
  same<int, char>(); // { dg-error "" }

  fn<0>(); // OK
  fn<-1>(); // { dg-error "" }
  fn<int>(); // { dg-error "no matching function" }
}