C ++ 11: Как создать псевдоним функции?

Если у меня есть класс Foo в строке пространства имен:

namespace bar
{
    class Foo { ... }
};

Я могу тогда:

using Baz = bar::Foo;

и теперь это так же, как я определил класс в своем пространстве имен с именем Baz.

Можно ли сделать то же самое для функций?

namespace bar
{
    void f();
}

А потом:

using g = bar::f; // error: ‘f’ in namespace ‘bar’ does not name a type

Какой самый чистый способ сделать это?

Решение должно также выполняться для шаблонных функций.

Определение: Если какая-то сущность B являетсяпсевдоним A, чем если какое-либо или все случаи использования (не объявления или, конечно, определения) A заменяются на B в исходном коде, чем сгенерированный (раздетый) код остается тем же. Напримерtypedef A B это псевдоним.#define B A это псевдоним (по крайней мере).T& B = A не является псевдонимом, B может эффективно реализовываться как косвенный указатель, тогда как «unaliased» A может использовать «непосредственную семантику».

Ответы на вопрос(7)

Ваш ответ на вопрос