社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)


AILight Blogs

目次

Blog 利用状況

ニュース

過去の記事

カテゴリ

イメージ ギャラリー

その他 リンク集

__declspec(selectany) declarator - VC++

私は、C++のコードを記述する場合、テンプレートを多用していることもあり、
実装の全てをヘッダファイルに記述しています。

その場合、問題になるのが静的変数の実体を記述する場所です。
C++では、実体はヘッダファイル(.h)ではなくソースファイル(.cpp)に記述する必要があります。
ヘッダファイルに実装を全て記述しているのに、静的変数のためにソースファイルを作るのも
バカバカしいですよね。

そういう場合、__declspec(selectany)を使うと、ヘッダファイル内に実体を記述することができます。
うーーーん、便利。なお、当然ですが、VC++の独自拡張です。

---
■Hoge.h
class CHoge
{
public:
 CHoge() { }

public:
 static int s_nHoge;
}

__declspec(selectany) int CHoge::s_nHoge = 0;
---

■selectany - MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/msmod_31.asp

投稿日時 : 2005年3月22日 21:17

コメントを追加

No comments posted yet.
タイトル  
名前  
URL
コメント