タグ付けされた質問 「qualified-name」

3
行外のメンバー関数定義にグローバルスコープまでの完全修飾クラス名が必要ですか?
この質問で、クラス外のメンバー関数定義でクラス名(グローバルスコープ演算子を含む)を完全に修飾することが有用/必要であるかどうか疑問に思いました。 一方では、これが以前に行われたのを見たことがありません(適切に行うための構文は不明瞭に思われます)。もう1つは、C ++の名前検索は非常に簡単ではないため、コーナーケースが存在する可能性があります。 質問: クラス外のメンバー関数定義の導入 ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... } が ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }(グローバルスコープ::プレフィックスなし)と異なる場合はありますか? メンバー関数の定義は、クラスを囲む名前空間に配置する必要があるため、これは有効な例ではありません。

2
Derived1 :: BaseとDerived2 :: Baseは同じ型を参照していますか?
MSVC、Clang、およびGCCはこのコードに同意しません。 struct Base { int x; }; struct Der1 : public Base {}; struct Der2 : public Base {}; struct AllDer : public Der1, public Der2 { void foo() { Der1::Base::x = 5; } }; ゴッドボルト GCC: <source>: In member function 'void AllDer::foo()': <source>:10:21: error: 'Base' is an ambiguous base …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.