更新しました。今週はsmart_ptr, thread, regex, xpressiveといった割と使われていそうなライブラリに fixや仕様変更が入っています。 ttp://booster.x0.to/ 以下更新内容の一部 [Spirit] Spirit: more work on attribute traits, allowing optional for alternatives, maxwidth supports extracting overhang [Fusion] fix for #2355: discrepancy between std::accumulate and fusion::accumulate [Regex] Tighten up error handling and checking. [Unordered] Remove 'grouped' from hash_table as it isn't used and is a bit confusing. [Circular_buffer] circular_buffer: added erase_begin and erase_end methods
Fix for bug #2067 --- use shared_mutex for thread_group rather than a simple mutex Fix for move assignment of unique_lock if rvalue refs supported More fixes for compilers with rvalue ref support [Xpressive] nested results uses a custom list type that allows incomplete types, does no dynamic allocation in the default constructor, and has a guarnteed O(1) splice; fixes #3278 [Smart_ptr] Renamed enable_shared_from_this2 to enable_shared_from_raw and added shared_from_raw free function. These changes fix the pointer value in shared_ptr which were obtained before an external shared_ptr has taken ownership of the object (for example when a shared_ptr to this is obtained in an object's constructor). [Numeric] see #3501: Reusing concepts from different compile units yields multiple defined symbols (Incomplete) * removed inlines that were added with the last commit * added anonymous namespace to make functions local to compilation unit
[Thread] Fix for bug #2067 --- use shared_mutex for thread_group rather than a simple mutex Fix for move assignment of unique_lock if rvalue refs supported More fixes for compilers with rvalue ref support [Xpressive] nested results uses a custom list type that allows incomplete types, does no dynamic allocation in the default constructor, and has a guarnteed O(1) splice; fixes #3278 [Smart_ptr] Renamed enable_shared_from_this2 to enable_shared_from_raw and added shared_from_raw free function. These changes fix the pointer value in shared_ptr which were obtained before an external shared_ptr has taken ownership of the object (for example when a shared_ptr to this is obtained in an object's constructor). [Numeric] see #3501: Reusing concepts from different compile units yields multiple defined symbols (Incomplete) * removed inlines that were added with the last commit * added anonymous namespace to make functions local to compilation unit
ttp://booster.x0.to/ 以下更新内容の一部 [Spirit] Spirit: fixing lex::tokenize_and_parse functions Fix. Disallow alpha or underscore after "int" Spirit: fixing usage of plain functions as lexer semantic actions Spirit: replaced long long by boost::long_long_type [Ptr_container] https://svn.boost.org/trac/boost/ticket/3579 [Fusion] Fusion: adding a missing 'const' associative_sequence_tag -> associative_tag [Regex] Added support for function objects as well as strings when formatting. [Program_options] Fix 'ambiguous else clause' compiler warning. Fixes #3556. Put description to next line if we'd overflow otherwise. Fixes #689. Use extra parens to silence warnings re &&/|| on same level. [Xpressive] fix infinite loop with some uses of \Q...\E quotemeta, fixes #3586 [Math] remove surplus const-qualifiers. [Wave] Wave: added missing header file and special handling for stlport [Smart_ptr] Added weak_from_raw(), for use in conjunction with enable_shared_from_raw base class.
>>324 あんまり、そこに拘る必要はないです。 lambdaか否かを判断するmeta function が作れればおk。
326 名前:デフォルトの名無しさん [2009/11/10(火) 10:40:42 ]
>>324 F(????)としてるのは、F(int)とすれば template<class F, class A0> struct is_lambda_impl<boost::lambda::lambda_functor<F>(A0)> が選択されるからです。
int 部分にはboost::lambda::_1の型か何か別のものが入ると思う。 _1 や _2 の数によって F(A0) F(A0, A1) の様な形になると思う。
327 名前:デフォルトの名無しさん [2009/11/10(火) 11:00:54 ]
こゆこと? (動作確認してないけど)
template<template <class f> class T, class F> bool is_lambda_(T<F>) { return is_lambda_impl<T<F> >::value; }
template<template <class f, class a0> class T, class F, class A0> bool is_lambda_(T<F, A0>) { return is_lambda_impl<T<F, A0> >::value; }
template<template <class f, class a0, class a1> class T, class F, class A0, class A1> bool is_lambda_(T<F, A0, A1>) { return is_lambda_impl<T<F, A0, A1> >::value; }
更新しました。今週はコンパイル時の警告の抑制が中心の様です。 ttp://booster.x0.to/ 以下更新内容の一部 [Spirit] Spirit: fixing bug in alternatives taking optionals Spirit: started to integrate re2c style code generator for lexer [Regex] Improved error messages generated for thrown exceptions. [Program_options] Fix wordwrapping in presense of default parameters. Don't strip quotes from values. [Smart_ptr] Fixed access to enable_shared_from_raw::weak_this_ when BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined. [Unordered] Change unordered move tests to be more lenient on compilers without NRVO. [System] System: Correct too_many_symbolic_link_levels misspelling. Fix #3559.
[Graph] Changed to boost::unordered_* containers instead of compiler-specific ones; made hashed containers enabled always [Integer] Reverted Integer back to Release branch state - as per devel-list discussions. [Xpressive] do NOT copy singular iterators, fixes #3538 [Iostreams] Allocate exceptions on the stack, not the heap. Refs #3612, by Richard Smith. Fix unthrown exceptions. Refs #3311. Fix mapped file errors in windows. Refs #3505. [Exeption] Prevent ADL from finding other dispatch functions or types. Required for #2094. [Fusion] avoid iterator invalidation in segmented_range, fixes #3583
[Spirit] Spirit: more static lexer updates Spirit: added new Qi example Spirit: updating example Don't match substrings in symbols::find. Added Nabialek Trick Example typeof example Implement prefix_find. BOOST_SPIRIT_AUTO added Spirit: bumped version number after the release of 1.41 Spirit: fixed references to corresponding articles at Spirit site. [Xpressive] use boost::optional's swap instead of std::swap [Random] Allow arbitrary values to be used as seeds for linear_congruential, linear_feedback_shift, and any generators that depend on them. Fixes #3516 Fix min/max problems
[Exeption] Fixed unqualified use of size_t in object_hex_dump.hpp Bug ticket 3641, also merging other fixes from the Release branch. [Format] copy-constructor now copies .dumped_ , fixing Ticket #3610 fixing elementary syntax error introduced in rev. 57734 [Functional] Turn on warnings as errors for the hash tests. [Program_options] Add option name to a few exception classes. Fixes #3423. Patch from Sascha Ochsenknecht. correct usage of tokenizer, memory bug, Fixes #3525 [Graph] Fix compilation error due to undefined fprintf/stderr. [Unordered] Use 'E' for key extractor, freeing 'K' for key. Support incomplete template parameters to unordered containers. 以上更新内容の一部 ttp://booster.x0.to/
Version 1.41.0 New Library: Property Tree. Updated libraries: DateTime, Filesystem, Iostreams, Math, Multi-index Containers, Proto, Python, Regex, Spirit, System, Thread, Unordered, Utility, Wave, Xpressive. Updates to boost build and quickbook. The CMake build system for Boost, still under development here, has been removed from the main release to avoid confusion.
更新しました。1.41正式版がリリースされてから一週間経ってもtrunkが1.42に移行しておりませんので、 マイナーバージョンアップ版が出るかもしれませんね。 ttp://booster.x0.to/ 以下更新内容の一部 [Program_options] allow empty values in config file, Fixes #1537 [Spirit] Spirit: moved iter_pos parser to repository, added example Spirit: fixed token_def::what() Spirit: Moving karma::symbols to main code base [Format] fixes new functions (remaining_args, expected_args, ...) in case bound.size()==0 [Regex] Allow std::locale's to not have a messages facet installed (fixes some STLPort issues). Allow match_results to handle singular iterators. [Integer] Add support for long long throughout. Fixes #653. Update Boost.Integer meta-programming classes to work with intmax_t where possible - ie to be 64-bit clean. [Thread] Ensure call_once event is correctly cleaned up A partial fix for issue #2100: use boost::throw_exception for all exceptions except thread_interrupted Don't use timed_lock to do a lock Added missing BOOST_THREAD_DECL for at_thread_exit_function Using BOOST_ASSERT rather than assert [Graph] Changed vertex_iterator to have vertex_descriptor rather than vertices_size_type as its value type Removed old CSR interface; fixes #3135 [Smart_ptr] Add error checking to lwm_pthreads.hpp. Refs #2681. Remove std::move references. Refs #3570.
更新しました。SVNは1.42に移行しました。 ttp://booster.x0.to/ 以下更新内容の一部 [Program_options] ProgramOptions: added a couple of missing std:: namespace qualifiers [Spirit] Spirit: added karma::symbols generator, updated docs, tests, and example Spirit: removed UB in rule and token_def initialization, added copy constructor for token_def Spirit: added karma::auto_ and related facilities, added test Spirit: added new karma example (auto_facilities.cpp), tweaks to auto_ tests Spirit: added auto based overloads for API functions where possible [Serialization] fixed BOOST_STATIC_WARNING implementation macro name conflict Fix memory leaks in void_caster short cut memory leaks [Uuid] Added uuid library Removed BOOST_STATIC_ASSERT, replaced with a static method [Iterator] Made sure that iterator_facade's nested ``::pointer`` type is always the same as what's returned from operator->. For input iterators, that wasn't always the case (see operator_arrow_proxy).Fixes #1019. [Graph] Fixed missing #endif [Integer] Change long long to boost::long_long_type etc. Make code respect BOOST_NO_INTEGRAL_INT64_T. [Bind] Make mem_fn work with overloaded unary operator&. Refs #3003. Sorry it took so long. [Exeption] Ticket #3211
更新しました。今回初めてgraph_parallelのlink=shared, runtime-link=sharedのビルドが可能になり、 同じく初めてビルドエラー無しでフルビルドが出来ました。 ttp://booster.x0.to/ 以下更新内容の一部 [Program_options] consistent handling of namespace std [Spirit] unicode support Spirit: fixed include guard conflict (fixes #3724) [Graph] Factored out declspec code; added BOOST_GRAPH_SOURCE where necessary [Iostream] If a write is going to go past the end of the restricted area, write up to the end before throwing an exception. [Uuid] Fixed name_generator for different sizes of wchar_t [Serialization] 1. Fixed memory leak in shared_ptr loading 2. Fixed error in polymorphic archive implementation Speed up loading of ordered collections [Smart_ptr] Avoid static destruction order issues with quick_allocator. [Proto] fix BOOST_PROTO_EXTENDS to work with elaborated types [Xpressive] disable proto's unary operator& for basic_regex objects, references #3712 [Fusion] corrected reverse_view [Gil] Added gil namespace prefix to at_c<...> calls. [Regex] Symbian patches. Fixes #3764. Fixes #3763.