Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 1.59 KB

File metadata and controls

36 lines (26 loc) · 1.59 KB

テンプレートのエクスポート機能を削除

  • cpp11[meta cpp]

概要

C++11では、テンプレート定義をエクスポートする機能を削除する。

テンプレートのエクスポート機能は、ヘッダファイルでテンプレートを宣言し、ソースファイルでテンプレートを定義することで、コンパイル時間の短縮を目指すものであった。

// f.h
template <class T>
void f();
// f.cpp
export template <class T>
void f()
{
  ...
}

EDGフロントエンドとそれを使用するコンパイラのComeauとICCが唯一このエクスポート機能を実装したが、EDGはエクスポート機能の実装は困難であるために実装することを推奨しないとし、他のコンパイラベンダがこの機能を実装することはなかった。

エクスポート機能が標準C++に採択されてから10年が経過し、他のコンパイラベンダがこの機能に関心を持つことはなかったため、この機能を削除するに至った。

exportキーワードはC++11標準では使用しなくなるが、将来のために予約されたままとなる。

参照