C ++ 11: ¿Cómo alias una función?

Si tengo una clase Foo en la barra de espacio de nombres:

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

Puedo entonces:

using Baz = bar::Foo;

y ahora es como definí la clase en mi espacio de nombres con el nombre Baz.

¿Es posible hacer lo mismo para las funciones?

namespace bar
{
    void f();
}

Y entonces

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

¿Cuál es la forma más limpia de hacer esto?

La solución también debería ser válida para las funciones de plantilla.

Definición Si alguna entidad B es unaalia de A, que si alguno o todos los usos (no declaraciones o definiciones, por supuesto) de A se reemplazan por B en el código fuente, entonces el código generado (eliminado) sigue siendo el mismo. Por ejemplotypedef A B es un alias. @#define B A es un alias (al menos). @T& B = A no es un alias, B puede implementarse efectivamente como un puntero indirecto, mientras que un "sin alias" A puede usar "semántica inmediata".