以下のコードは、ill-formedで、コンパイルエラーになるべきである。
auto concept Foo< typename T >
{ T::T() ; }
template < typename T > requires Foo < T >
void f()
{
T x ;
// ill-formed. concept Foo does not specify destructor.
}
コンストラクタとデストラクタは、忘れやすい。用心が肝要なり。
ConceptGCCだとこのコードはコンパイル通っちゃいますね
ReplyDelete