2008-08-18

CnceptGCCでコンパイルできない疑問なコード

ConceptGCCでは、以下のコードがコンパイルできない。

auto concept Addable<typename T, typename U = T>
{
    typename result_type;
    result_type operator+(T, U);
}

何故だろう。ひょっとしたら、Associated typeはメンバ関数にしか使えないのかもと思ったが、現行のドラフト規格には、

Associated functions describe functions, member functions, or operators (including templates thereof)(14.9.1.1.1)

An associated type specifies a type in a concept body. Associated types are typically used to express the parameter and return types of associated functions.(14.9.1.2.2)

とあるので、Associated functionに使えることになる。そしてAssociated functionはメンバ関数限定ではない。どうなっているのだろう。

追記、後で試したらコンパイルできた。どこか文法間違いでもあったのだろうか。

No comments: