テンプレートの実装のエクスポート

ロベールのC++入門講座 09-08

テンプレートの実装をヘッダに書かなければならない理由 - (void*)Pないと

の続きです。

前回の記事でテンプレートの実装はヘッダで書かなければならないと言っていましたが、実はexportという指定子(?)を使えばヘッダに宣言だけを書くことが可能になるようです。

export template<class T> void template_swap(T& a, T&b) {
    T t = a;
    a = b;
    b = t;
}

これで前に懸念していた問題は全て解決です!とても素晴らしいです。

・・・でも、このexportという指定子は現存するコンパイラの殆どでまだ実装されてないらしく、コンパイルが通りませんorz

今僕が使っているVC2008でもダメでした。残念ながらexportをがんがん使うのはまだまだ未来の話になりそうですね。