それは合法ですか?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
編集:機能を修飾するのを忘れました。ごめん。
いいえそうではありません。using キーワードは、メンバーを使用するたびに名前空間の名前を指定せずにアクセスできるように、名前空間から 1 つまたはすべてのメンバーをグローバル名前空間に移動するために使用されます。
指定した using ステートメントでは、名前空間の名前が提供されていません。SomeClass に次のようなステートメントを指定したとしてusing SomeClass::f;
も、SomeClass は名前空間ではないため機能しません。
お役に立てれば。
using x;
通常、クラス内で使用され、基本クラスのメソッド名をスコープに持ち込み、基本クラスのメソッドを非表示にしないようにします。
using namespace name;
どれが名前空間にのみ適用されるかを考えているかもしれません。
単純なインライン関数を使用したほうがよい場合があります。
void f(){ SomeClass::f(); }