2016-10-04 8 views
1

標準によると、これはコンパイルする必要がありますノンタイプのテンプレート - どのタイプが許可されていますか?

struct Y {}; 
template<const Y& y> struct Z {}; 


int main(){ 
    Y y; 
    Z<y> z; // ok: no conversion and cv-qualification conversion 
} 

(それはから取られています - http://en.cppreference.com/w/cpp/language/template_parameters)。

しかし、それはこのエラーを与えて、しません:エラー:「Y」の値は、私が何をしないのです定数式

では使用できないのですか?

+0

「Z 」ではない「Z 」 –

+2

@PierreEmmanuelLallemantいいえ、「Z 」はここで正しいです。 – orlp

+0

cppreferenceの例には 'main()'はありません。 –

答えて

2

定数式ではないローカルオブジェクトを参照しています。 yがグローバル変数の場合、it'd work just fineです。

関連する問題