重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんばんは。

templateを利用したクラスについての質問です。

通常、テンプレートクラスのメンバ関数は、その定義部分をインライン展開するべき、とのことですが…
なんとかして宣言部と定義部を別々のファイルに分ける事は出来ないでしょうか?

テンプレート変数をクラス内で共有したいため、テンプレート関数ではなく、テンプレートクラスで上記の事を実現したいのです。

「コンパイラによっては、インライン関数でなければならない」という記述を見かけたので、
コンパイラによってはインライン関数でなくても構わないのでしょうか?

開発環境は
WindowsXP-SP2
VisualStudio2005-SP1
C++コンソールアプリケーションです。

A 回答 (2件)

C++にはexportというキーワードがあって、


それを指定すれば宣言と定義を別々のファイルに書けるみたいですが、
現状ではexportをサポートしているコンパイラは少ないようです。

なお、宣言と定義を同じファイルに書くことをインライン展開とはいいません。
    • good
    • 0

>「コンパイラによっては、インライン関数でなければならない」という記述を見かけたので、



どこにそんな嘘書いてあったんでしょう。
inlineの必要はありません。

正しくは
「定義はそれを使う利用者側コードと同じ
 コンパイルユニットになければならない」
です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!