私のプロジェクトで使用するライブラリを作成しています。その中で、ライブラリのネームスペースとcstdネームスペースにc標準ライブラリをラップして、グローバル名前空間でその機能を持たないようにしたいと考えていました。しかし、私が以前に尋ねた質問から、そして私がテストしたことから、私は#名前空間のすべてを#includeすることはできません。これを行う方法はありますか?名前空間に外部ライブラリをラップする
2
A
答えて
3
あなたはすべてを書き直す必要がない限り、私はそれを疑っています。
C言語自体には名前空間の概念がないため、C標準ライブラリが使用するすべてのものは、探しているものがグローバル名前空間に存在するという事実に依存しなければなりません。あなたは、単にあなたの#include周り名前空間を包んだ場合、それはに見てどのような名前空間を知ってないので
は、コンパイラが何かを見つけることができないだろう。
1
通常のアプローチは、第三を置くことであろうパーティーはあなたのAPIを汚染させないように実装ファイルに含めます。
myapi.hpp
void coolthing(int howcool);
myapi.cpp
#include <coollib.h>
void coolthing(int howcool)
{
coollib_coolthing(howcool);
}
関連する問題
- 1. 外部ライブラリと名前空間に関する質問
- 2. 名前空間にメッセージ定数をラップする
- 3. 名前空間の例外
- 4. オプションのjavascriptライブラリの名前空間
- 5. 共有ライブラリとSystem.Configuration名前空間
- 6. Clojure名前空間のjava.lang。*を除外
- 7. レール3名前空間リソースルーティング例外
- 8. 'using'は名前空間内か外部にあるべきですか?
- 9. 名前空間
- 10. #includeを名前空間ブロックにラップするのは良い考えですか?
- 11. 名前空間の内側にあるビュー内の名前空間の外にあるレール部分をどのようにレンダリングしますか?
- 12. Rails 3.1に名前空間を含める名前空間アプリケーションのHAMLビュー
- 13. 異なる名前空間から名前空間のリソースを作成する
- 14. 汎用ライブラリの名前空間 - 個人または会社名?
- 15. html:FBML名前空間
- 16. 名前空間&__autoload
- 17. WPF:XAML名前空間
- 18. 名前空間dict?
- 19. 名前空間カスタムイベントトリガー
- 20. IPython.parallel名前空間
- 21. IInvokeProvider名前空間?
- 22. angularjs名前空間
- 23. 名前空間なしのGroovy XMLSlurper名前空間エラー
- 24. 無名名前空間
- 25. Javascriptを:名前空間を
- 26. symfony 2:エンティティの名前空間に別の名前空間を追加
- 27. 名前空間にファイルを含める
- 28. 名前空間の外部/内部に読み込みがある場合は読み込みますか?
- 29. 匿名名前空間内の関数/オブジェクトに外部リンケージがあるのはなぜですか?
- 30. 名前空間 'Extensions'が名前空間 'Microsoft.Office.Tools.Excel'に存在しません