[cppll:0919] <tips> マクロのコンフリクト防止( was Re: 二重インクルード防止をどう書く)
- Subject:
- [cppll:0919] <tips> マクロのコンフリクト防止( was Re: 二重インクルード防止をどう書く)
- From:
- Wraith the Trickster <wraith@...>
- Date:
- Thu, 31 Jan 2002 14:58:54 +0900
- X-Mailer:
- Microsoft Outlook Express 5.50.4807.1700
- Message-Id:
- <012f01c1aa1c$6643a540$c5acc63d@mist>
- References:
- 915
道化師です。
【[cppll:0915] Re: 二重インクルード防止をどう書く】
> 正直悩んでます。#define はnamespaceでくくれないから。
#define EPI_HOGEHOGE ...
#define EPI_MOGEMOGE ...
#ifdef USING_EPI
#define HOGEHOGE EPI_HOGEHOGE
#define MOGEMOGE EPI_MOGEMOGE
#endif
... こんなふうにするのはいかがでせう?
□■□■ Wraith the Trickster □■□■
■□■□ 〜I'll go with heaven's advantage and fool's wisdom.〜 ■□■□
[cppll ML] http://www.trickpalace.net/cppll/
【[cppll:0915] Re: 二重インクルード防止をどう書く】
> 正直悩んでます。#define はnamespaceでくくれないから。
#define EPI_HOGEHOGE ...
#define EPI_MOGEMOGE ...
#ifdef USING_EPI
#define HOGEHOGE EPI_HOGEHOGE
#define MOGEMOGE EPI_MOGEMOGE
#endif
... こんなふうにするのはいかがでせう?
□■□■ Wraith the Trickster □■□■
■□■□ 〜I'll go with heaven's advantage and fool's wisdom.〜 ■□■□
[cppll ML] http://www.trickpalace.net/cppll/
▼ スレッド
- 913: 二重インクルード防止の#ifndefってみなさんどう書かれていますか? 私はこのように書いている Ryuki Sotogaki
- ├915: 気にしたらアカンて。 僕もこれ(アタマとオシリに_をふたつ & 全部大文字)。 ずーーーーっと(10 FUKUDA Fumiki
- │├919: □■□■ Wraith the Trickster □■□■ ■□■□ 〜I'll go with heaven's advantage and fool's wisdom.〜 ■□■ Wraith the Trickster
- │└920: 確かにヘッダーの依存はC++(C)のうっとうしい所ですよねぇ。 includeの循環によっては後から前方 tsujit‐at‐ntes.nec.co.jp
- │ └925: FDIS/ISにはこう書かれています: reserved to the implementation: Each name that contains a double underscore ("__") or FUKUDA Fumiki
- │ └940: ところが、C99(ISO/IEC 9899:1999)では、 associated subclause, and optionally declares or defines identifiers listed in it Takeshi Mouri
- │ ├941: ないすふぉろー。 FUKUDA (episteme) Fumiki -- magical, but never a magic... FUKUDA Fumiki
- │ │└944: とか追加されないかなぁ。 毛利岳史(郵便はみがき) Takeshi Mouri
- │ ├942: なるほど、やっぱり避けるべきなんですね。 といいつつ私もこの質問が来るまで 「_ではじめ tsujit‐at‐ntes.nec.co.jp
- │ │└945: 森野慎也 mailto:smorino‐at‐datamark.co.jp Shin'ya MORINO
- │ │ ├947: namespace com { namespace freeml { namespace cppll { void util(); } } } int main() { com::freeml::cppll:util(); return 0; } FUKU FUKUDA Fumiki
- │ │ │└955: namespace cppll = com::freeml::cppll; なんや、ぜんぜん、改善してない。 森野慎也 mailto:smorino‐at‐datamark.co.j Shin'ya MORINO
- │ │ └950: あーそいう意味では、私のところはファイル名・クラス名の先頭に 「社名プロジェクト名」と tsujit‐at‐ntes.nec.co.jp
- │ │ └957: 名前が一意でありさえすりゃいいっすもんね。 森野慎也 mailto:smorino‐at‐datamark.co.jp Shin'ya MORINO
- │ ├943: ぐは。これはまいった。。。なんか考えないと駄目かな(^^; DENCHU
- │ │└948: VC7のIDEだとクラスビューアみたいなところにマクロとかも表示されるんで、 みょーな名前がた Takeshi Mouri
- │ │ └962: Microsoft のguidgen.exe のソースは公開されているので、 これをVC++風の多重インクルードマクロ生 suchi‐at‐suchi.org
- │ └946: と見たような気がしたんです、だからぶつからなければいいのとは やっぱ3つで「___」にしよっ Ryuki Sotogaki
- │ └952: __で始めちゃダメってことは、 __HOGEも___HOGEもダメです。 マクロの途中に___を使うのはOKですけ Takeshi Mouri
- ├916: VC++限定でいうと#pragma once ディレクティブを使う手もあります。 Takashi SHIODA tsio‐at‐orangesoft.co.jp Takashi SHIODA
- ├917: UUID(*1) を埋め込めば問題なかろうという。あと,VC++ 特有の once pragma を併用してます。 別名 GUID Tietew
- ├924: ずいぶん以前は私も頭に「__」をつけていましたが(標準のヘッダファイルを見て真似た)、 上記 Hirose,Motohito
- ├934: ねこはこんな感じです♪ __INC_って頭につけてまふ。 でも、頭に__ってよろしくないのかにゃ。 愛猫
- ├935: 私は hoge.h の場合 ってしていますなり、Visual Studio の #pragma once も魅力的なん だけど、これで書 DENCHU
- └949: こんだけの元ネタで 'ご覧の有様' ^^; みんなこのMLで議論を楽しんでおられる。善き哉善き哉。 FUKUDA Fumiki