boost::bind vs boost::spirit::phoenix::bind
От: __UNIX_hokum  
Дата: 22.06.11 07:33
Оценка:
В работе довольно часто использую Spirit. И boost::bind тоже часто использую, основное применение -- привязка потока к функции класса. Есть ли смысл отказаться от boost::bind в пользу Phoenix-ового bind-а? Какие плюсы-минусы будут у такого решения?
c++ boost
Re: boost::bind vs boost::spirit::phoenix::bind
От: jazzer Россия Skype: enerjazzer
Дата: 22.06.11 15:09
Оценка:
Здравствуйте, __UNIX_hokum, Вы писали:

__U>В работе довольно часто использую Spirit. И boost::bind тоже часто использую, основное применение -- привязка потока к функции класса. Есть ли смысл отказаться от boost::bind в пользу Phoenix-ового bind-а? Какие плюсы-минусы будут у такого решения?


просто Bind проще и легче, и для простых вещей (типа потоков) имеет смысл использовать его.
Для более сложных лучше использовать феникс (и вместо лямбды тоже), тем более что с Boost 1.47 он будет библиотекой первого уровня.
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::bind vs boost::spirit::phoenix::bind
От: _nn_ www.nemerleweb.com
Дата: 22.06.11 17:11
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, __UNIX_hokum, Вы писали:


__U>>В работе довольно часто использую Spirit. И boost::bind тоже часто использую, основное применение -- привязка потока к функции класса. Есть ли смысл отказаться от boost::bind в пользу Phoenix-ового bind-а? Какие плюсы-минусы будут у такого решения?


J>просто Bind проще и легче, и для простых вещей (типа потоков) имеет смысл использовать его.

J>Для более сложных лучше использовать феникс (и вместо лямбды тоже), тем более что с Boost 1.47 он будет библиотекой первого уровня.

Легче в плане производительности ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: boost::bind vs boost::spirit::phoenix::bind
От: jazzer Россия Skype: enerjazzer
Дата: 23.06.11 02:19
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Здравствуйте, jazzer, Вы писали:


J>>Здравствуйте, __UNIX_hokum, Вы писали:


__U>>>В работе довольно часто использую Spirit. И boost::bind тоже часто использую, основное применение -- привязка потока к функции класса. Есть ли смысл отказаться от boost::bind в пользу Phoenix-ового bind-а? Какие плюсы-минусы будут у такого решения?


J>>просто Bind проще и легче, и для простых вещей (типа потоков) имеет смысл использовать его.

J>>Для более сложных лучше использовать феникс (и вместо лямбды тоже), тем более что с Boost 1.47 он будет библиотекой первого уровня.

__>Легче в плане производительности ?


в плане времени компиляции.
Bind очень простой, в одном файле помещается, ЕМНИП. Для простого связывания — самое то.
А Феникс навороченный, тянет за собой Proto, Fusion, MPL (скорее всего). Зато и умеет гораздо больше.
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[4]: boost::bind vs boost::spirit::phoenix::bind
От: _nn_ www.nemerleweb.com
Дата: 23.06.11 07:48
Оценка:
Здравствуйте, jazzer, Вы писали:

J>>>просто Bind проще и легче, и для простых вещей (типа потоков) имеет смысл использовать его.

J>>>Для более сложных лучше использовать феникс (и вместо лямбды тоже), тем более что с Boost 1.47 он будет библиотекой первого уровня.

__>>Легче в плане производительности ?


J>в плане времени компиляции.

J>Bind очень простой, в одном файле помещается, ЕМНИП. Для простого связывания — самое то.
Ну boost/bind состоит из 15-ти файлов.
Для простого связывания уже можно и C++0x заюзать.

J>А Феникс навороченный, тянет за собой Proto, Fusion, MPL (скорее всего). Зато и умеет гораздо больше.

Главное, чтобы в релизе все инлайнилось.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: boost::bind vs boost::spirit::phoenix::bind
От: jazzer Россия Skype: enerjazzer
Дата: 23.06.11 08:31
Оценка: 1 (1)
Здравствуйте, _nn_, Вы писали:

__>Для простого связывания уже можно и C++0x заюзать.

+1.
Где есть и где можно — конечно же, нужно.

J>>А Феникс навороченный, тянет за собой Proto, Fusion, MPL (скорее всего). Зато и умеет гораздо больше.

__>Главное, чтобы в релизе все инлайнилось.
Ну, это еще и компилятор прожевать должен, желательно без ошибок и желательно за вменяемое время
Я вот только что напоролся на баг в GCC, сижу ковыряюсь в асме. Ломается на спирите. Включаешь оптимизацию выше О1 (конкретно, -ftree-pre) — и все перестает работать. Но все заинлайнилось, ага, так что асм очень веселый
Так что навороты — это супер, я сам их люблю и сам пишу, но может долго компилироваться и приводить к необъяснимым глюкам, потому что все это по краю возможностей компилятора.
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[6]: boost::bind vs boost::spirit::phoenix::bind
От: __UNIX_hokum  
Дата: 23.06.11 09:01
Оценка:
J>Я вот только что напоролся на баг в GCC, сижу ковыряюсь в асме.

А подробности? Какая версия GCC? И в какой библиотеке эта ошибка проявляется? Интересно.
Re[7]: boost::bind vs boost::spirit::phoenix::bind
От: jazzer Россия Skype: enerjazzer
Дата: 23.06.11 09:28
Оценка:
Здравствуйте, __UNIX_hokum, Вы писали:


J>>Я вот только что напоролся на баг в GCC, сижу ковыряюсь в асме.


__U>А подробности? Какая версия GCC? И в какой библиотеке эта ошибка проявляется? Интересно.

4.4
boost 1.46.1
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.