Как в макрос вставить функцию из определенного пространства имен?

хочу вот так.

#define FUNCTION ( name, action ) namespace1::##name::foo( action )

ошибка звучит так src/ .cpp:69:25: error: ‘name’ was not declared in this scope #define FUNCTION ( name, action ) namespace1::##name::foo( action )

минимальный пример (рабочий):

namespace cotrol
{
namespace namespace1
{
    void foo( int x ) {}
} // namespace namespace1

namespace namespace2
{
    void foo( int x ) {}
} // namespace namespace2

} // namespace control

#define ACTION( name, action ) cotrol::name::foo( action )

int main()
{
    ACTION ( namespace1, 5 );
    ACTION ( namespace2, 10 )

    return 0;
}

Ответы (0 шт):