macro + std::string + C++

  • такой вопрос во3ник сегодня, хотел сегодня 3аменить длинный фкт.вы3ов через макро...все получилос и работает, но есть одно НО...


    вот марко:

    Исходный код
    #define ptx(x) mmc::MMC::translate(std::string(x));


    вот фкт. куда макро "смотрит":

    Исходный код
    const static std::string translate(std::string txt);


    так вот если сделать так то получаю это:


    Исходный код
    446 mpButton->setText(ptx("foo.const"));


    Исходный код
    ..n.cpp:446: error: expected ‘)’ before ‘;’ token
    ..n.cpp:446: error: expected primary-expression before ‘)’ token
    ..n.cpp:446: error: expected ‘;’ before ‘)’ token



    а если так то все компилится:

    Исходный код
    std::string foo;
    foo = ptx("foo.const");
    mpButton->setText(foo);


    в чем 3агвоздка?


    все входные и выходные параметры [std::string]

    NULL