не получается использовать boost::phoenix::construct
От: jerry_ru  
Дата: 12.07.11 18:29
Оценка:
есть такая проблемма:


#include <boost/format.hpp>

#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/home/phoenix/object/construct.hpp>
#include <boost/spirit/include/phoenix_scope.hpp>

using namespace boost;
using namespace boost::phoenix;
using namespace boost::phoenix::arg_names;
using namespace boost::phoenix::local_names;

int main(int argc, char *argv[])
{
    
    boost::format fmt("argument: %1%");
    std::string test("test");
    
    std::cerr << ( arg1 % arg2 )(fmt, test) << std::endl; //работает
    
    std::cerr << ( construct<boost::format>(arg1) )("here i'am") << std::endl; // работает
    
    std::cerr << ( construct<boost::format>(arg1) % arg2 )("construct arg: %1%", test) << std::endl; //НЕ работает


    //в дополнение

    //работает
    let( _a = construct<boost::format>(arg1) )
    [
        std::cerr << _a % arg2 << std::endl
    ]("working: %1%", test );
    
    //НЕ работает
    std::cerr << ((
        let( _a = construct<boost::format>(arg1) )
        [
            _a % arg2
        ] ) ("error: %1%", test ))
    << std::endl;

}


Все что не работает компилится, но где-то портится память — все падает.

что я упустил?
boost phoenix format construct
Re: не получается использовать boost::phoenix::construct
От: jazzer Россия Skype: enerjazzer
Дата: 12.07.11 23:23
Оценка:
Здравствуйте, jerry_ru, Вы писали:


_>
_>#include <boost/spirit/include/phoenix_core.hpp>
_>#include <boost/spirit/include/phoenix_operator.hpp>
_>#include <boost/spirit/home/phoenix/object/construct.hpp>
_>#include <boost/spirit/include/phoenix_scope.hpp>
_>

_>Все что не работает компилится, но где-то портится память — все падает.

На всякий случай — с новым фениксом из 1.47.0 то же самое?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: не получается использовать boost::phoenix::construct
От: jerry_ru  
Дата: 13.07.11 03:53
Оценка:
Здравствуйте, jazzer, Вы писали:

J>На всякий случай — с новым фениксом из 1.47.0 то же самое?


проверил — тоже самое, видимо что-то с пониманием. А ведь создание объекта в функторе это та самая фича которую хочется использовать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.