C++では、::
を使用して、myNamespace::a
のように変数または関数の名前空間を修飾します。しかし、私は::myFunction()
のようないくつかの用途に気付きます。関数がグローバル名前空間に属しているのでしょうか?:: myFunction()はグローバル名前空間に属していますか?
答えて
コードがコンパイルされた場合は、::myFunction()
がグローバル宣言myFunction
を参照しています。
ローカル定義がグローバル定義をシャドウするときこれは最も一般的に使用されます。
namespace local {
int myFunction() {}; // local namespace definition
};
int myFunction() {}; // global definition.
using namespace local;
int main() {
// myFunction(); // ambiguous two definitions of myFunction in current scope.
local::myFunction(); // uses local::myFunction();
::myFunction(); // uses global myfunction();
@ Reon、yes、fixed。 –
はい、それはそれはグローバル名前空間で使用可能である必要があり、以下の変数、型や機能を意味します。何かがローカル定義の影された場合には、例えば使用することができます
:
struct S {
int i;
};
void f() {
struct S {
double d;
};
S a;
::S b;
static_assert(sizeof(a) != sizeof(b), "should be different types");
}
['type_traits'](http://en.cppreference.com/w/cpp/header/type_traits)と[' decltype'](http://en.cppreference.com/w/cpp/)を見てください。 language/decltype)を使用して同じサイズの型を取得します。 'static_assert(std :: is_same
- 1. 名前空間をグローバルに参照していますか?
- 2. 名前空間: "グローバルとして使用"
- 3. 名前空間 '<グローバル名前空間>'には既に 'ワークフロー'の定義が含まれています
- 4. jQuery Limitグローバル名前空間
- 5. ユニティC#グローバル名前空間
- 6. グローバル名前空間Javascriptエラー
- 7. Javaのグローバル名前空間にアクセス
- 8. グローバルな名前空間から何かを参照していますか?
- 9. C++グローバル名前空間のメンバーは既にエラーを定義しています
- 10. new myFunction()は、myFunctionという名前のオブジェクトを返しますか?
- 11. 別の名前空間内からのC++グローバル名前空間アクセス
- 12. ダミーをグローバル名前空間から自分の名前空間に移動できますか?
- 13. WPF - グローバルにxaml名前空間宣言を追加します。
- 14. overrideed名前空間に属する名前空間はどうなりますか?
- 15. jQuery:グローバル変数名前空間問題
- 16. 名前空間内のC++グローバル変数
- 17. グローバル名前空間に型または名前空間の名前が見つかりませんでした(アセンブリ参照がありませんか?)
- 18. 名前空間名 'Notify'は名前空間に存在しません。Twilio.Rest
- 19. エラーC2039:「SetDefaultDllDirectoriesは」:グローバル名前空間のメンバーではない
- 20. 型または名前空間名「ServiceBus」名前空間に存在していない「マイクロソフト」
- 21. System.Collectionsは「システム名前空間の名前空間」ですか?
- 22. jqueryがグローバル名前空間を汚染しないのはなぜですか?
- 23. 匿名名前空間はすべての名前空間を囲んでいますか?
- 24. "use strict"; + jQuery.getScript()=スクリプトがグローバル名前空間にエクスポートできない
- 25. HTML5は名前空間をサポートしていますか?
- 26. PHP名前空間エイリアスは競合していますか?
- 27. TypeScriptは名前空間をサポートしていますか?
- 28. Rはマルチレベルの名前空間をサポートしていますか?
- 29. AngularJSアプリi.t.oをグローバル名前空間に設定する正しい方法は?
- 30. モジュールをapp/*/*/some_module.rbから直接グローバル名前空間にロード
これは単に解像度がグローバル名前空間の代わりに、あなたがしている名前空間に発生することを保証します。httpを参照してください://のstackoverflowを。 com/questions/4269034 /前置きのダブルコロン – larrylampco