は使用する宣言で、別の名前で関数名にアクセスできるようにするという技術的な理由はありますか?
using bar::f; // in foo
経由foo::f
など、すべてのfoo::bar::f
がアクセスできるようにすることができfoo
一
namespace foo
{
namespace bar
{
void f();
void f(int);
}
}
を考えてみましょうfoo::g
foo::bar::f
にアクセスできるようになり、構文が存在しないための技術的な理由があります
using bar::f as g;
// or in line with using declarations for types:
using g = bar::f;
このようなものは考慮されていても拒絶されましたか? (なぜ?)
回避策: 'auto g = [](auto ... args){foo :: bar :: f(std :: forward(args)...); }; ' –
@KerrekSB:' f'よりはるかに多く一致する 'g'を紹介します。 – Pixelchemist
@ Pixelchemistまあ、それを回避するためにSFINAEを採用することができます。 – Columbo