Boost 1.47
От: BogusCoder Швеция  
Дата: 12.07.11 07:14
Оценка: 33 (5)
На правах первого:
Вышел Boost 1.47

New Libraries
Chrono:
Useful time utilities, from Vicente J. Botet Escribá.
Geometry:
Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.
Phoenix:
Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.
Ratio:
Compile time rational arithmetic, from Vicente J. Botet Escribá.

+ Bugfixes

Re: Boost 1.47
От: okman Беларусь https://searchinform.ru/
Дата: 12.07.11 08:28
Оценка:
Здравствуйте, BogusCoder, Вы писали:

BC>На правах первого:

BC>Вышел Boost 1.47

BC>New Libraries

BC>Chrono:
BC> Useful time utilities, from Vicente J. Botet Escribá.
BC>Geometry:
BC> Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.
BC>Phoenix:
BC>Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.
BC>Ratio:
BC> Compile time rational arithmetic, from Vicente J. Botet Escribá.

BC>+ Bugfixes


BC>


Благодарю !
Также на правах первого
Re: Boost 1.47
От: FR  
Дата: 12.07.11 08:32
Оценка:
Здравствуйте, BogusCoder, Вы писали:

BC>Phoenix:

BC>Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.

Изучаю, вообще впечатляет, хотя боюсь будет как и в boost::lambda одна отпечатка и километр сообщений об ошибках
Re[2]: Boost 1.47
От: _nn_ www.nemerleweb.com
Дата: 12.07.11 08:42
Оценка: :)
Здравствуйте, FR, Вы писали:

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


BC>>Phoenix:

BC>>Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.

FR>Изучаю, вообще впечатляет, хотя боюсь будет как и в boost::lambda одна отпечатка и километр сообщений об ошибках


Только бы не перепутать:
Boost.Spirit.Phoenix v2.0
Boost.Phoenix v3.0

http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Boost 1.47
От: BogusCoder Швеция  
Дата: 12.07.11 08:47
Оценка:
Здравствуйте, FR, Вы писали:

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


BC>>Phoenix:

BC>>Define small unnamed function objects at the actual call site, and more, from Joel de Guzman, Dan Marsden and Thomas Heller.

FR>Изучаю, вообще впечатляет, хотя боюсь будет как и в boost::lambda одна отпечатка и километр сообщений об ошибках


Я посмотрел очень поверхносно, подскажите, имея студию 2010 с её лямбдами, оно мне пригджится или это все еще пред-С++11 решение?
Re[3]: Boost 1.47
От: FR  
Дата: 12.07.11 08:56
Оценка:
Здравствуйте, BogusCoder, Вы писали:

FR>>Изучаю, вообще впечатляет, хотя боюсь будет как и в boost::lambda одна отпечатка и километр сообщений об ошибках


BC>Я посмотрел очень поверхносно, подскажите, имея студию 2010 с её лямбдами, оно мне пригджится или это все еще пред-С++11 решение?


Там во многом удобнее чем лямбды из нового стандарта, какой-никакой но "вывод типов" присутствует.
Ну и ленивые вычисления новым стандартом тоже не предусмотрены.
Re: Boost 1.47
От: _nn_ www.nemerleweb.com
Дата: 12.07.11 09:01
Оценка: 1 (1)
Здравствуйте, BogusCoder, Вы писали:

Ну почему они не проверяет MSVC Warning Level 4

  #include <boost/phoenix/phoenix.hpp>
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4510: 'boost::phoenix::vector2<A0,A1>' : default constructor could not be generated
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/support/tag_of.hpp(48) : see reference to class template instantiation 'boost::phoenix::vector2<A0,A1>' being compiled
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>          c:\Projects\boost_1_47_0\boost/utility/enable_if.hpp(36) : see reference to class template instantiation 'boost::fusion::detail::has_fusion_tag<T,fallback_>' being compiled
1>          with
1>          [
1>              T=boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions>,
1>              fallback_=boost::mpl::bool_<false>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/support/tag_of.hpp(72) : see reference to class template instantiation 'boost::enable_if<Cond,T>' being compiled
1>          with
1>          [
1>              Cond=boost::fusion::detail::has_fusion_tag<boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions>,boost::mpl::bool_<false>>,
1>              T=void
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/sequence/intrinsic/at.hpp(57) : see reference to class template instantiation 'boost::fusion::detail::tag_of<T>' being compiled
1>          with
1>          [
1>              T=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/sequence/intrinsic/at.hpp(64) : see reference to class template instantiation 'boost::fusion::result_of::at<Sequence,N>' being compiled
1>          with
1>          [
1>              Sequence=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions>,
1>              N=boost::mpl::int_<0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/environment.hpp(45) : see reference to class template instantiation 'boost::fusion::result_of::at_c<Sequence,N>' being compiled
1>          with
1>          [
1>              Sequence=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions>,
1>              N=0
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/meta_grammar.hpp(61) : see reference to class template instantiation 'boost::phoenix::result_of::env<Context>' being compiled
1>          with
1>          [
1>              Context=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions> &
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp(25) : see reference to class template instantiation 'boost::phoenix::evaluator::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Expr=const boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0> &,
1>              State=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,boost::phoenix::default_actions> &,
1>              Data=int
1>          ]
1>          c:\Projects\boost_1_47_0\boost/mpl/eval_if.hpp(63) : see reference to class template instantiation 'boost::phoenix::result_of::nullary_actor_result<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp(37) : see reference to class template instantiation 'boost::mpl::eval_if_c<C,F1,F2>' being compiled
1>          with
1>          [
1>              C=true,
1>              F1=boost::phoenix::result_of::nullary_actor_result<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>>,
1>              F2=boost::mpl::identity<boost::phoenix::detail::error_expecting_arguments>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/actor.hpp(239) : see reference to class template instantiation 'boost::phoenix::result_of::actor<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/nothing.hpp(57) : see reference to class template instantiation 'boost::phoenix::actor<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>
1>          ]
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4512: 'boost::phoenix::vector2<A0,A1>' : assignment operator could not be generated
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4610: struct 'boost::phoenix::vector2<A0,A1>' can never be instantiated - user defined constructor required
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::nothing>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4510: 'boost::phoenix::vector2<A0,A1>' : default constructor could not be generated
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/support/tag_of.hpp(48) : see reference to class template instantiation 'boost::phoenix::vector2<A0,A1>' being compiled
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>          c:\Projects\boost_1_47_0\boost/utility/enable_if.hpp(36) : see reference to class template instantiation 'boost::fusion::detail::has_fusion_tag<T,fallback_>' being compiled
1>          with
1>          [
1>              T=boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions>,
1>              fallback_=boost::mpl::bool_<false>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/support/tag_of.hpp(72) : see reference to class template instantiation 'boost::enable_if<Cond,T>' being compiled
1>          with
1>          [
1>              Cond=boost::fusion::detail::has_fusion_tag<boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions>,boost::mpl::bool_<false>>,
1>              T=void
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/sequence/intrinsic/at.hpp(57) : see reference to class template instantiation 'boost::fusion::detail::tag_of<T>' being compiled
1>          with
1>          [
1>              T=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/fusion/sequence/intrinsic/at.hpp(64) : see reference to class template instantiation 'boost::fusion::result_of::at<Sequence,N>' being compiled
1>          with
1>          [
1>              Sequence=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions>,
1>              N=boost::mpl::int_<0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/environment.hpp(45) : see reference to class template instantiation 'boost::fusion::result_of::at_c<Sequence,N>' being compiled
1>          with
1>          [
1>              Sequence=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions>,
1>              N=0
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/meta_grammar.hpp(61) : see reference to class template instantiation 'boost::phoenix::result_of::env<Context>' being compiled
1>          with
1>          [
1>              Context=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions> &
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp(25) : see reference to class template instantiation 'boost::phoenix::evaluator::impl<Expr,State,Data>' being compiled
1>          with
1>          [
1>              Expr=const boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0> &,
1>              State=const boost::phoenix::vector2<boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,boost::phoenix::default_actions> &,
1>              Data=int
1>          ]
1>          c:\Projects\boost_1_47_0\boost/mpl/eval_if.hpp(63) : see reference to class template instantiation 'boost::phoenix::result_of::nullary_actor_result<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp(37) : see reference to class template instantiation 'boost::mpl::eval_if_c<C,F1,F2>' being compiled
1>          with
1>          [
1>              C=true,
1>              F1=boost::phoenix::result_of::nullary_actor_result<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>>,
1>              F2=boost::mpl::identity<boost::phoenix::detail::error_expecting_arguments>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/core/actor.hpp(239) : see reference to class template instantiation 'boost::phoenix::result_of::actor<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>
1>          ]
1>          c:\Projects\boost_1_47_0\boost/phoenix/statement/throw.hpp(104) : see reference to class template instantiation 'boost::phoenix::actor<Expr>' being compiled
1>          with
1>          [
1>              Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>
1>          ]
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4512: 'boost::phoenix::vector2<A0,A1>' : assignment operator could not be generated
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
1>c:\Projects\boost_1_47_0\boost/phoenix/support/preprocessed/vector_10.hpp(72): warning C4610: struct 'boost::phoenix::vector2<A0,A1>' can never be instantiated - user defined constructor required
1>          with
1>          [
1>              A0=boost::phoenix::vector1<const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::detail::rethrow>,0>> *> &,
1>              A1=boost::phoenix::default_actions
1>          ]
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Boost 1.47
От: _nn_ www.nemerleweb.com
Дата: 12.07.11 09:12
Оценка:
Здравствуйте, FR, Вы писали:

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


FR>>>Изучаю, вообще впечатляет, хотя боюсь будет как и в boost::lambda одна отпечатка и километр сообщений об ошибках


BC>>Я посмотрел очень поверхносно, подскажите, имея студию 2010 с её лямбдами, оно мне пригджится или это все еще пред-С++11 решение?


FR>Там во многом удобнее чем лямбды из нового стандарта, какой-никакой но "вывод типов" присутствует.

К C++1x возможно доделают, осталось немного ждать
FR>Ну и ленивые вычисления новым стандартом тоже не предусмотрены.


Для некоторых случаев лямбды С++ не так плохо выглядят.

Как это будет выглядет в Phoenix ?
vector<pair<int, double>> v;    
for_each(begin(v), end(v), [](pair<int, double> const& x) { cout << x.first << x.second; });
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: Boost 1.47
От: FR  
Дата: 12.07.11 09:38
Оценка:
Здравствуйте, _nn_, Вы писали:


FR>>Там во многом удобнее чем лямбды из нового стандарта, какой-никакой но "вывод типов" присутствует.

__>К C++1x возможно доделают, осталось немного ждать

Что-то не слышал чтобы собирались менять то что уже есть.

FR>>Ну и ленивые вычисления новым стандартом тоже не предусмотрены.



__>Для некоторых случаев лямбды С++ не так плохо выглядят.


__>Как это будет выглядет в Phoenix ?

__>
__>vector<pair<int, double>> v;    
__>for_each(begin(v), end(v), [](pair<int, double> const& x) { cout << x.first << x.second; });
__>


Примерно так (не компилировал):

std::for_each(begin(v), end(v), cout << arg1->first << arg1->second)
Re[6]: Boost 1.47
От: _nn_ www.nemerleweb.com
Дата: 12.07.11 09:53
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Примерно так (не компилировал):


FR>
FR>std::for_each(begin(v), end(v), cout << arg1->first << arg1->second)
FR>


Я тоже надеялся на чудо и это первое, что я попробовал.
  Однако:

1>vvv.cpp(13): error C2819: type 'boost::phoenix::actor<Expr>' does not have an overloaded member 'operator ->'
1> with
1> [
1> Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::argument<1>>,0>
1> ]
1> did you intend to use '.' instead?
1>vvv.cpp(13): error C2039: 'first' : is not a member of 'boost::phoenix::actor<Expr>'
1> with
1> [
1> Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::argument<1>>,0>
1> ]
1>vvv.cpp(13): error C2819: type 'boost::phoenix::actor<Expr>' does not have an overloaded member 'operator ->'
1> with
1> [
1> Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::argument<1>>,0>
1> ]
1> did you intend to use '.' instead?
1>vvv.cpp(13): error C2039: 'second' : is not a member of 'boost::phoenix::actor<Expr>'
1> with
1> [
1> Expr=boost::proto::exprns_::basic_expr<boost::proto::tag::terminal,boost::proto::argsns_::term<boost::phoenix::argument<1>>,0>
1> ]



Правильное решение
vector<pair<int, double>> v;  
std::for_each(begin(v), end(v), cout << arg1->*&pair<int, double>::first << arg1->*&pair<int, double>::second);
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Boost 1.47
От: nen777w  
Дата: 12.07.11 10:07
Оценка:
Ура!!! Я давно ждал Phoenix.

А вот это интересная либа:
BC>Geometry:
BC> Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.

содержит подмножество операций GPC а вот тест на скорость найти не могу.
Кто в курсе?
Re[7]: Boost 1.47
От: FR  
Дата: 12.07.11 13:38
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Я тоже надеялся на чудо и это первое, что я попробовал.


Да облом.
Но если не нужен доступ к членам удобнее чем лямбды.

Вообще ФП там тоже маловато, ленивость и ФВП конечно впечатляют, но раз уже заявили ФП хотя
бы для приличия можно было добавить и базовые ФВП типа fold, map и т. п. а не только аналоги
того что есть в STL.
Re[2]: Boost 1.47
От: SleepyDrago Украина  
Дата: 14.07.11 11:31
Оценка:
Здравствуйте, nen777w, Вы писали:

N>Ура!!! Я давно ждал Phoenix.


N>А вот это интересная либа:

BC>>Geometry:
BC>> Geometry Library, from Barend Gehrels, Bruno Lalande and Mateusz Loskot.

N>содержит подмножество операций GPC а вот тест на скорость найти не могу.

N>Кто в курсе?
Скорость чего? Это делали gis-ориентированные люди, что любят плавучку.
насколько я помню они рвались вступить одновременно с polygon. Но пришлось подождать.
Re[3]: Boost 1.47
От: nen777w  
Дата: 14.07.11 21:35
Оценка:
N>>содержит подмножество операций GPC а вот тест на скорость найти не могу.
N>>Кто в курсе?
SD>Скорость чего?

Выполнения логических операций над полигонами, то же что и делает GPC.
Беглый просмотр доки показывает что boost::geometry это тоже умеет.

SD>Это делали gis-ориентированные люди, что любят плавучку.

SD>насколько я помню они рвались вступить одновременно с polygon. Но пришлось подождать.

Да Я читал. Она раньше GGL вроде как называлась.
Re[4]: Boost 1.47
От: SleepyDrago Украина  
Дата: 15.07.11 08:39
Оценка:
Здравствуйте, nen777w, Вы писали:

N>>>содержит подмножество операций GPC а вот тест на скорость найти не могу.

N>>>Кто в курсе?
SD>>Скорость чего?

N>Выполнения логических операций над полигонами, то же что и делает GPC.

так в том то и дело что полигоны полигонам рознь
дырки? ограничения по углам? тысячи/миллиарды вершин? Самопересечения? Суп из эджей границ?

Несколько булевых операций одновременно над одной и той же геометрией тот же polygon вполне позволяет.
Re[5]: Boost 1.47
От: nen777w  
Дата: 15.07.11 09:38
Оценка:
N>>Выполнения логических операций над полигонами, то же что и делает GPC.
SD>так в том то и дело что полигоны полигонам рознь
SD>дырки? ограничения по углам? тысячи/миллиарды вершин? Самопересечения? Суп из эджей границ?
SD>Несколько булевых операций одновременно над одной и той же геометрией тот же polygon вполне позволяет.

Гм... так оно что не совсем полноценное?
з.ы.
Эх... не удержусь наверно.
У меня GPC сейчас используется, обёрнутый. Подпилю наверно для boost::geometry посмотрю что оно получится как время появится свободное.
Re[6]: Boost 1.47
От: SleepyDrago Украина  
Дата: 15.07.11 11:38
Оценка: 1 (1)
Здравствуйте, nen777w, Вы писали:


N>>>Выполнения логических операций над полигонами, то же что и делает GPC.

SD>>так в том то и дело что полигоны полигонам рознь
SD>>дырки? ограничения по углам? тысячи/миллиарды вершин? Самопересечения? Суп из эджей границ?
SD>>Несколько булевых операций одновременно над одной и той же геометрией тот же polygon вполне позволяет.

N>Гм... так оно что не совсем полноценное?

N>з.ы.
N>Эх... не удержусь наверно.
N>У меня GPC сейчас используется, обёрнутый. Подпилю наверно для boost::geometry посмотрю что оно получится как время появится свободное.
ну у меня сейчас еще есть свободное (отпуск еще день) — могу. просто тесты на моей геометрии вам ничем не будут интересны вот я и спросил что тестить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.