この質問で、クラス外のメンバー関数定義でクラス名(グローバルスコープ演算子を含む)を完全に修飾することが有用/必要であるかどうか疑問に思いました。
一方では、これが以前に行われたのを見たことがありません(適切に行うための構文は不明瞭に思われます)。もう1つは、C ++の名前検索は非常に簡単ではないため、コーナーケースが存在する可能性があります。
質問:
クラス外のメンバー関数定義の導入
ReturnType (::Fully::Qualified::Class::Name::MemberFunctionName)(...) { ... }
が
ReturnType Fully::Qualified::Class::Name::MemberFunctionName(...) { ... }
(グローバルスコープ::
プレフィックスなし)と異なる場合はありますか?
メンバー関数の定義は、クラスを囲む名前空間に配置する必要があるため、これは有効な例ではありません。
反対投票者がこの質問について嫌いなことは非常に好奇心が強い。フィードバックを歓迎します!
—
Max Langhof
定義が宣言とは異なる名前空間に配置された場合?それは、あなたがリンクする
—
クエシトン
おっと、細字を読みませんでした;)
—
idclev 463035818
@ formerlyknownas_463035818それも私が考えていたものであり、それを試してみて機能しないことに気づいたので、質問を書きました(他の人も不思議に思うだろう)。
—
Max Langhof