2015-01-09

[[deprecated]] はテンプレート名には使えない

[[deprecated]]属性はテンプレートの特殊化に対して指定できる。テンプレート名に対しては指定できない。

// テンプレートAの特殊化をdeprecated扱い
template < typename T >
class [[deprecated]] A { } ;

template < template < typename > class >
class B { } ;

// deprecated
A<int> a ; 

// 規格上何もなし
B<A> b ; 

どうも現在主流のコンパイラー実装上の都合があるそうだ。

ドワンゴ広告

最近ネタ切れになってきた。ドワンゴでは正月に一気に有給を取得する社員が多いらしく、まだ空席が目立つ。

ドワンゴは本物のC++プログラマーを募集しています。

採用情報|株式会社ドワンゴ

CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0

1 comment:

Anonymous said...

使えるのが「特殊化の宣言(特殊化でない)」って以前仰っていませんでしたっけ?
そこはテンプレートの宣言にも書けるという解釈になったのですか?