2011-12-24 10 views
2

私のプロジェクトで使用するライブラリを作成しています。その中で、ライブラリのネームスペースとcstdネームスペースにc標準ライブラリをラップして、グローバル名前空間でその機能を持たないようにしたいと考えていました。しかし、私が以前に尋ねた質問から、そして私がテストしたことから、私は#名前空間のすべてを#includeすることはできません。これを行う方法はありますか?名前空間に外部ライブラリをラップする

答えて

3

あなたはすべてを書き直す必要がない限り、私はそれを疑っています。

C言語自体には名前空間の概念がないため、C標準ライブラリが使用するすべてのものは、探しているものがグローバル名前空間に存在するという事実に依存しなければなりません。あなたは、単にあなたの#include周り名前空間を包んだ場合、それはに見てどのような名前空間を知ってないので

は、コンパイラが何かを見つけることができないだろう。

1

通常のアプローチは、第三を置くことであろうパーティーはあなたのAPIを汚染させないように実装ファイルに含めます。

myapi.hpp

void coolthing(int howcool); 

myapi.cpp

#include <coollib.h> 

void coolthing(int howcool) 
{ 
    coollib_coolthing(howcool); 
} 
関連する問題