__group__ ticket summary component version milestone type owner status created _changetime _description _reporter 2776 [fix in git] Failed to wrap classes with virtual inheritance python USE GITHUB Boost 1.39.0 Bugs Dave Abrahams new 2009-02-18T12:02:10Z 2009-09-25T04:46:45Z "Hi! I've just generated a wrapper for the simple classes with virtual function and virtual inheritance with Py++ and generated code is failed to compile. Without virtual inheritance everything is ok. Error log is below, source and generated files are in attachment. % c++ -I/usr/include/python2.5 -lboost_python -shared -o test.so test.cxx /usr/include/boost/python/class.hpp: In static member function `static void boost::python::detail::error::virtual_function_default::must_be_derived_class_member(const Default&) [with Default = void (Petq_wrapper::*)(), T = Petq_wrapper, Fn = void (Vasq::*)()]': /usr/include/boost/python/class.hpp:565: instantiated from `void boost::python::class_::def_default(const char*, Fn, const Helper&, mpl_::bool_) [with Fn = void (Vasq::*)(), Helper = boost::python::detail::def_helper, W = Petq_wrapper, X1 = boost::python::bases, X2 = boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]' /usr/include/boost/python/class.hpp:548: instantiated from `void boost::python::class_::def_impl(T*, const char*, Fn, const Helper&, ...) [with T = Petq, Fn = void (Vasq::*)(), Helper = boost::python::detail::def_helper, W = Petq_wrapper, X1 = boost::python::bases, X2 = boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]' /usr/include/boost/python/class.hpp:608: instantiated from `void boost::python::class_::def_maybe_overloads(const char*, Fn, const A1&, ...) [with Fn = void (Vasq::*)(), A1 = void (Petq_wrapper::*)(), W = Petq_wrapper, X1 = boost::python::bases, X2 = boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]' /usr/include/boost/python/class.hpp:244: instantiated from `boost::python::class_& boost::python::class_::def(const char*, A1, const A2&) [with A1 = void (Vasq::*)(), A2 = void (Petq_wrapper::*)(), W = Petq_wrapper, X1 = boost::python::bases, X2 = boost::noncopyable_::noncopyable, X3 = boost::python::detail::not_specified]' test.cxx:52: instantiated from here /usr/include/boost/python/class.hpp:146: error: pointer to member conversion via virtual base `Vasq'" Alexander Kogan 8205 MinGW can't find ICU libraries locale Bugs Artyom Beilis new 2013-02-28T18:07:57Z 2013-02-28T18:07:57Z "ICU uses MSVC naming schemes in MinGW (at least on Linux when cross-compiling), so the names aren't picked up. I've attached a patch that fixes the issue with 32bit libraries. This hasn't been tested in Windows, and still requires 64bit library support (stuff in lib64) but I don't have either of those setups to work on. Sorry." 166291@… 9699 Ticket submission capcha inappropriately mixes non-HTTPS content trac / subversion To Be Determined Bugs Douglas Gregor new 2014-02-23T18:45:11Z 2014-09-16T05:54:57Z When an update is flagged as potential spam, the Google capcha request uses http, not https. This prevents more secure browsers from loading the script. I had to switch to Safari to make updates, which you can imagine makes me super uncomfortable this weekend in particular. Nate Rosenblum 10146 Trac detects my bug entry as spam, but there is no 'following' to respond to. trac / subversion To Be Determined Bugs Douglas Gregor new 2014-06-25T14:17:50Z 2014-06-25T14:17:50Z "Tried submitting another bug report now where Trac detects my input as spam, telling: {{{ Captcha Error Submission rejected as potential spam (Content contained 1 blacklisted patterns) Trac thinks your submission might be Spam. To prove otherwise please provide a response to the following. }}} I won't care if I would be able to ""provide a response to the following"", but there is nothing shown where I could enter something. Thank you!" Michael Haubenwallner 10473 [Trac] Default assignee for GIL tickets trac / subversion To Be Determined Bugs Douglas Gregor new 2014-09-06T13:59:42Z 2014-09-06T13:59:42Z I think the default assignee for GIL tickets is Hailin Jin, but maintenance has been handed over to Christian Henning. anonymous 1090 scoped_file class that deletes file at end of scope filesystem To Be Determined Feature Requests Beman Dawes new 2007-07-13T12:35:23Z 2008-06-30T10:01:47Z "I've found myself wanting this on a couple of occasions with 1.33.1, and I've done it with boost::shared_ptr: {{{ #!c++ boost::shared_ptr removeFile(&file, bind(&fs::remove, boost::cref(file))); }}} That didn't work with 1.34.1 (maybe due to compiler intricacies), so I did it properly: {{{ #!cpp class scoped_file { public: explicit scoped_file(const std::string& file) : m_path(file, boost::filesystem::native) {} explicit scoped_file(const boost::filesystem::path& file) : m_path(file) {} ~scoped_file() { boost::filesystem::remove(m_path); } private: boost::filesystem::path m_path; }; }}} That might be something to add?" Marcus Lindblom 1094 Finding the correct library to link (feature request for pkg-config support)h build Boost 1.42.0 Feature Requests Vladimir Prus assigned 2007-07-16T17:41:27Z 2018-06-06T12:34:57Z "This bug report is a feature request for the addition of pkg-config support to Boost, in order to provide a simple, reliable, platform-independent mechanism for discovering if the Boost libraries are installed, what they are called, where they are installed, and how to link with them. This is currently not possible to achieve. A detailed rationale and an example for how to implement this follow. I make use of several Boost libraries in my schroot program (svn://svn.debian.org/svn/buildd-tools/trunk/schroot). This project, like many, utilises GNU Autoconf and Automake for its build system. I need to determine how to link with the Boost libraries in order to build the programs in the project. This is an issue for many projects which want to link with a Boost library. Note that calling bjam is not a possibility here; it may not be installed, and most projects are not using bjam, especially if boost is just one of many libraries being used. To illustrate my problem: ls -l /usr/lib/libboost_regex-*.so /usr/lib/libboost_program_options-*.so lrwxrwxrwx 1 root root 45 2007-07-08 11:48 /usr/lib/libboost_program_options-gcc41-1_34.so -> libboost_program_options-gcc41-1_34.so.1.34.0 lrwxrwxrwx 1 root root 48 2007-07-08 11:48 /usr/lib/libboost_program_options-gcc41-mt-1_34.so -> libboost_program_options-gcc41-mt-1_34.so.1.34.0 lrwxrwxrwx 1 root root 41 2007-07-08 11:48 /usr/lib/libboost_program_options-mt.so -> libboost_program_options-gcc41-mt-1_34.so lrwxrwxrwx 1 root root 38 2007-07-08 11:48 /usr/lib/libboost_program_options-st.so -> libboost_program_options-gcc41-1_34.so lrwxrwxrwx 1 root root 35 2007-07-08 11:47 /usr/lib/libboost_regex-gcc41-1_34.so -> libboost_regex-gcc41-1_34.so.1.34.0 lrwxrwxrwx 1 root root 38 2007-07-08 11:47 /usr/lib/libboost_regex-gcc41-mt-1_34.so -> libboost_regex-gcc41-mt-1_34.so.1.34.0 lrwxrwxrwx 1 root root 31 2007-07-08 11:47 /usr/lib/libboost_regex-mt.so -> libboost_regex-gcc41-mt-1_34.so lrwxrwxrwx 1 root root 28 2007-07-08 11:47 /usr/lib/libboost_regex-st.so -> libboost_regex-gcc41-1_34.so Unlike every other library on my system, the Boost libraries have the compiler (gcc41) and threading model (mt|st) and so on embedded *in the library name*. This makes it impossible to discover in an automatic fashion. Since my project is free software anyone can download and build, I don't know what the compiler/toolchain will be, let alone what abbreviation Boost has chosen for it. I expect that Autoconf will set up such things appropriately; my code is relatively compiler-agnostic, but I can't predict the Boost library names without help. The only means I have are the libboost_program_options-mt.so, libboost_program_options-st.so (and so on for all the libraries) symbolic links which the Debian maintainer has helpfully provided. However, these are not portable, and are so not a good solution. They are, however, the only available solution at the moment. To further show the problem I am having, this is part of my configure.ac Autoconf template: ---configure.ac---- AC_CHECK_HEADERS([tr1/memory]) AC_CHECK_HEADERS([boost/shared_ptr.hpp],, [ if test $ac_cv_header_tr1_memory = yes; then : else AC_MSG_ERROR([Boost.shared_ptr (Boost C++ Libraries) is not installed, but is required by schroot]) fi]) AC_CHECK_HEADERS([tr1/tuple]) AC_CHECK_HEADERS([boost/tuple/tuple.hpp],, [ if test $ac_cv_header_tr1_memory = yes; then : else AC_MSG_ERROR([Boost.Tuple (Boost C++ Libraries) is not installed, but is required by schroot]) fi]) AC_CHECK_HEADERS([boost/format.hpp],, [AC_MSG_ERROR([Boost.Format (Boost C++ Libraries) is not installed, but is required by schroot])]) AC_CHECK_HEADERS([boost/program_options.hpp],, [AC_MSG_ERROR([Boost.Program_options (Boost C++ Libraries) is not installed, but is required by schroot])]) AC_CHECK_HEADERS([boost/type_traits.hpp],, [AC_MSG_ERROR([Boost.TypeTraits (Boost C++ Libraries) is not installed, but is required by schroot])]) AC_MSG_CHECKING([for boost::program_options::variables_map in -lboost_program_options-st]) saved_ldflags=""${LDFLAGS}"" LDFLAGS=""${LDFLAGS} -lboost_program_options-st"" AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [boost::program_options::variables_map::variables_map dummy()])], [AC_MSG_RESULT([yes]) BOOST_LIBS=""${BOOST_LIBS} -lboost_program_options-st""], [AC_MSG_RESULT([no]) AC_MSG_FAILURE([libboost_program_options (Boost C++ Libraries) is not installed, but is required by schroot])]) LDFLAGS=""${saved_ldflags}"" AC_MSG_CHECKING([for boost::program_options::options_description::options() in -lboost_program_options-st]) saved_ldflags=""${LDFLAGS}"" LDFLAGS=""${LDFLAGS} -lboost_program_options-st"" AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [boost::program_options::options_description testgrp(""test group""); bool notused = testgrp.options().empty(); ])], [AC_MSG_RESULT([yes]) BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS=""current""], [AC_MSG_RESULT([no]) BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS=""old""]) LDFLAGS=""${saved_ldflags}"" AH_TEMPLATE(BOOST_PROGRAM_OPTIONS_DESCRIPTION_OLD, [Set if boost::program_options::options_description::options() is not available]) if test ""$BOOST_PROGRAM_OPTIONS_DESCRIPTION_METHODS"" = ""old""; then AC_DEFINE(BOOST_PROGRAM_OPTIONS_DESCRIPTION_OLD, 1) fi AC_MSG_CHECKING([for boost::regex in -lboost_regex-st]) saved_ldflags=""${LDFLAGS}"" LDFLAGS=""${LDFLAGS} -lboost_regex-st"" AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [boost::regex(""^foo[bar]$"")])], [AC_MSG_RESULT([yes]) BOOST_LIBS=""${BOOST_LIBS} -lboost_regex-st""], [AC_MSG_RESULT([no]) AC_MSG_FAILURE([libboost_regex (Boost C++ Libraries) is not installed, but is required by schroot])]) LDFLAGS=""${saved_ldflags}"" AC_SUBST([BOOST_LIBS]) ---configure.ac---- As you can see, that's quite a bit of complexity. It also includes code to work around a backwards compatibility issue in Boost.Program_options. However, it needs to know the library name in order to link the test code, and I'm still needing to use a non-standard name in order to do that. It would be great if Boost would provide a mechanism to allow such discovery. Such a mechanism already exists, and is called ""pkg-config"". By installing a small file in LIBDIR/pkgconfig for each Boost library, the pkg-config tool or PKG_CHECK_MODULES Autoconf macro may be used to query this information. As an example: ---- boost-regex-mt.pc ---- prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: boost-regex-mt Description: Boost C++ Regular Expression Library (multi-threaded) Version: 1.34.0 Libs: -L${libdir} -lboost_regex-gcc41-mt-1_34 Libs.private: -licui18n -licuuc -lrt -lm Cflags: -I${includedir} -pthread ---- boost-regex-mt.pc ---- You can generate this from a template: ---- boost-regex-mt.pc.in ---- prefix=PREFIX exec_prefix=EPREFIX libdir=LIBDIR includedir=INCLUDEDIR Name: boost-regex-mt Description: Boost Regular Expression Library (multi-threaded) Version: VERSION Libs: -L${libdir} LIBRARY_NAME Libs.private: LIBRARY_DEPENDENCIES [for static linking] Cflags: -I${includedir} THREAD_OPTIONS_FOR_COMPILER ---- boost-regex-mt.pc.in ---- where the capitalised names are where you would substitute in the system- and compiler-specific options. It looks like bjam could probably make this a single rule all libraries could make use of. For such a setup, all that configure script above could be mostly reduced to PKG_CHECK_MODULES([boost-regex-st]) PKG_CHECK_MODULES([boost-program-options-st]) I don't know how bjam works, but I do this with Autoconf as a file generated by config.status, but it could also be generated by make with a simple sed command. I guess you could do the bjam equivalent, whatever that might be. I have had a look at the sources to try to implement this, but I am afraid I lack the bjam expertise to do it. You may find much more detailed discussion of these issues at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=424038 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=424666 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425264 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=428419 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=350539 Some of these are due to Debian-specific issues (a change to the symlink name), but the root cause is the inability to identify the Boost library names in an automated fashion. Regards, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail." rleigh@… 1107 Add weak_use_count to weak_ptr as a debugging aid smart_ptr To Be Determined Feature Requests Peter Dimov new 2007-07-21T23:20:18Z 2011-02-24T22:11:09Z "http://lists.boost.org/Archives/boost/2006/03/102620.php This is a feature request to add weak_use_count() to weak_ptr. I am not interested in this feature for anything else than a debugging aid. Recently, a weakness was highlighted in one of my projects, I had stale weak_ptr objects that would remain in core even if all copies of weak and shared pointer objects should have been eliminated by now. To confirm the bug fix and audit the rest of the code base, a debugger was used to set a conditional break point on internal members of weak_ptr. I would rather have the ability to write assertions when needed hence weak_use_count()." Peter Dimov 1227 Original/Signed/Unsigned Integer Variant Selection Templates integer To Be Determined Feature Requests Daryle Walker new 2007-09-02T20:06:24Z 2008-07-13T21:59:21Z "Add new integer selection templates to ""boost/integer.hpp"" for * The underlying type for a given integral type. This could be called `underlying` and would map * `char` to whichever of {`signed char`, `unsigned char`} that shares the same values (section 3.9.1, paragraph 1 of the 2003 C++ standard) * `wchar_t` to its underlying type (paragraph 5 of the same part of the standard) * any other type to itself (This includes `bool` because it could be implemented distinctly from any other integral type.) * (Someday: extend this to find the underlying type of an enumeration) * Find the unsigned equivalent of a given signed integral type, like the `get_unsigned` examples at source:/tags/Version_1_34_1/boost/boost/typeof/int_encoding.hpp and source:/tags/Version_1_34_1/boost/boost/wave/util/flex_string.hpp * Find the signed equivalent of a given unsigned integral type, as a dual to the previous point (for both templates, non-matching types return themselves)" Daryle Walker 1303 Per-target resource limits. build Boost.Jam 4.0.0 Feature Requests Vladimir Prus new 2007-10-07T18:52:16Z 2012-10-16T07:14:53Z "The -lN options is a nice addition, but it's a rather blunt tool. Martin is wanting a system where one can limit the resources used by individual actions. Currently he does something like it on Linux with the use of a launcher script. It would be good to provide that functionality in a portable manner in bjam. Tasks would be: * RLIMIT_CPU, RLIMIT_DATA, etc. target variables. * Change current time limit code to check the RLIMIT_CPU target var and using that instead of the -lN value. * Implement other limits as possible. " René Rivera 2215 Using of accumulators in paralled computation accumulator To Be Determined Feature Requests Eric Niebler new 2008-08-18T14:41:06Z 2008-08-18T14:41:06Z "In the time of multicore processors and Thread Building Blocks at hand, it would be nice to be able to use accumulators in parallel computations. To do so, one would need to combine partial computations. In other words,we need accumulator_set::combine(). This would combine the partial computation state from another accumulator_set. This operation would enable the accumulators to be used with parallel_reduce. " Pavol Droba 4734 "please improve ""Trac Akismet SPAM"" error message" trac / subversion To Be Determined Feature Requests Douglas Gregor new 2010-10-14T06:53:03Z 2010-10-14T06:53:03Z "I just wasted about 1 hour figuring out how to report a new ticket s.t. it is not rejected by the spam filter of the boost trac. Please add to the message that the reason is that in the ""Preferences"" one has to set the username and email address. Please also provide some information on how to get an account, or which persons are eligible to get accounts. Reporting issues is a very bad experience with this uninformative spam error message. (I already had a session once with username and so on, restoring that session did not work so I had to enter it again.)" Peter Schüller 4770 trac custom query needs single option for muliple field search trac / subversion Website 1.X Feature Requests Douglas Gregor new 2010-10-22T12:54:03Z 2010-10-22T12:54:03Z "The trac custom query page needs a single option to allow searching across multiple fields, particularly Summary, Description and Keywords. Right now, to query 'xyz' in either Summary, Description or Keywords for a single Component, you have to set up an OR search for each field, and duplicate the Component for each OR-part. For instance, the current scheme requires this duplication: (Component is 'c' AND Summary contains 'xyz') OR (Component is 'c' AND Description contains 'xyz') OR (Component is 'c' AND Keywords contains 'xyz') " Jim Bell 4800 Dramatic performance improvements may be available for Trac trac / subversion Feature Requests Douglas Gregor new 2010-10-29T13:50:15Z 2010-11-08T03:57:11Z "Trac's performance seems very slow, as mentioned on the [http://lists.boost.org/Archives/boost/2010/10/172449.php mail list]. From [http://trac.edgewall.org/wiki/TracFaq#Tracseemstorunveryslowly the TracFaq]: ---- '''Trac seems to run very slowly''' Despite its name, the ""Fast CGI"" solution is often quite a bit slower than mod_python or mod_wsgi. Try the TracModPython or TracModWSGI installation. Changing from fcgi to mod_python/mod_wsgi can easily give an order of magnitude (n*10) increase in performance. ---- Seems to apply to us. Is it an easy thing to try?" Jim Bell 7727 Gettext information retriever locale To Be Determined Feature Requests Artyom Beilis new 2012-11-22T18:43:27Z 2013-01-07T12:08:04Z "So I figured it'd be nice if we were able to see things about which Gettext catalog is loaded. So I worked up this patch. The unit test kind of explains how to use it, it's much like locale::info but it requires an object to be created (and deleted by the user, which is a bit shoddy) If the patch is any good I'm willing to work up some documentation and examples for it." 166291@… 8566 Enable writing of CDATA property_tree To Be Determined Feature Requests Sebastian Redl new 2013-05-13T14:28:46Z 2018-06-26T14:27:25Z "If one tries to write a node using write_xml ]]> the characters <> (and probably & etc.) get escaped in HTML style. The output file will contain <![CDATA[<>]]> Might it be a solution to introduce another sub-key (like ) and write code analogue to function write_xml_comment like {{{ template void write_xml_xcdata(std::basic_ostream &stream, const std::basic_string &s, int indent, bool separate_line, const xml_writer_settings & settings ) { typedef typename std::basic_string Str; if (separate_line) write_xml_indent(stream,indent,settings); stream << Ch('<') << Ch('!') << Ch('[') << Ch('C') << Ch('D') << Ch('A') << Ch('T') << Ch('A') << Ch('['); stream << s; stream << Ch(']') << Ch(']') << Ch('>'); if (separate_line) stream << Ch('\n'); } }}}" Wolf A. Heidrich 11850 templated overload of boost::lockfree::spsc_queue::pop is a potential footgun lockfree To Be Determined Feature Requests timblechmann new 2015-12-17T03:11:24Z 2015-12-17T03:13:32Z "boost::lockfree::spsc_queue::pop has many overloads. I've seen code that to tries to select this one: {{{ template boost::enable_if< typename is_convertible< T, U >::type, bool >::type pop(U & ret); }}} but, by mistake, selects this one: {{{ template boost::disable_if< typename is_convertible< T, OutputIterator >::type, size_type >::type pop(OutputIterator it); }}} How? The problematic code looks like this: {{{ boost::spsc_queue q; void consumer() { for (;;) { while (!q.empty()) { OtherThing foo = ... Thing bar; AnotherThing baz = ...; q.pop(&bar); // do something with foo, bar, and baz } } } }}} Note the & operator, which will select the templated ""pop to an output iterator"" overload because pointers to non-const are output iterators, rather than lead to a compilation error (as one might expect). This is a nasty bug because when there isn't much pressure on the queue, and at most one element is present, the consumer will appear to work correctly. But if there is more than one element in the queue, popping all of them off will cause undefined behavior (probably overwriting the memory of foo or baz in the above example) that, speaking from experience, is pretty hard to nail down. My request is to deprecate this templated ""pop to an iterator"" overload, and make a new member function called pop_all with the same signature to replace it. This would help to prevent this mistake, and also make the API somewhat more consistent with the consume_one/consume_all functions." tjakubowski@… 1020 Boost.Iterator proposal to add is_constant_iterator iterator Boost 1.36.0 Patches jeffrey.hellrung new 2007-05-31T18:49:35Z 2012-11-21T22:29:10Z "I propose to add a new trait to the Boost.Iterator library: `is_constant_iterator`. The trait is applied to an iterator and returns true if the iterator's reference type is a constant reference and false if the type is a non-constant reference. The trait will fail to compile when applied to iterators having non-reference reference types. This addition would make it easier to use library components like `iterator_facade` and `iterator_adaptor` for implementing container iterator wrappers like this: {{{ template< NodeItT > struct MyIterator : public iterator_facade< MyIterator< NodeItT >, typename mpl::if_< is_constant_iterator< NodeItT >, const value_type, value_type >::type, typename iterator_category< NodeItT >::type > { }; }}} Here `NodeItT` is a wrapped iterator and may be a `const_iterator` or `iterator` of a container. Another use case is when a user wants to detect whether an iterator is `const_iterator` or `iterator`. An example of this: implementing functionality of iterator translation similar to Boost.MultiIndex `project` method. I've attached an archive with the implementation, tests and patches to documentation. The implementation, in addition to the abovementioned functionality, supports `std::vector< bool >` iterators, though their reference types are not references. " andysem@… 1049 Getting mpl/has_xxx.hpp to compile on AIX mpl To Be Determined Patches Aleksey Gurtovoy new 2007-06-13T08:23:52Z 2016-11-18T01:36:06Z "Moving the class gcc_3_2_wknd out of the enclosing class scope into the namespace scope makes thius compile on AIX. The attached patch was for 1.33.1" troyer@… 5625 sp_counted_base implementation using boost.atomic smart_ptr To Be Determined Patches Peter Dimov new 2011-06-21T14:21:29Z 2011-06-21T14:21:29Z "I've had this code hanging around waiting for Boost.Atomic to make some progress towards submission, review and acceptance. When that happens, or when people have some other C++0x atomics library, this uses it to implement sp_counted_base in a nice simple fashion without the need for all the current platform-specific code. For now, perhaps it might be useful to a few people who are using the out-of-tree Boost.Atomic. " Phil Endecott 10042 anonymous enum problem (gcc4.4.7) in asio/completion_condition.hpp asio To Be Determined Patches chris_kohlhoff new 2014-05-11T21:11:49Z 2014-05-11T21:11:49Z "A similar problem (anonymous enum) as described in https://svn.boost.org/trac/boost/ticket/6362 is in asio/completion_condition.hpp (git master). This prevents code using asio::spawn to compile when using gcc4.4.7, e.g., asio/example/cpp03/spawn/echo_server.cpp {{{ asio> git diff diff --git a/include/boost/asio/completion_condition.hpp b/include/boost/asio/completion_condition.hpp index bdc041c..372e224 100644 --- a/include/boost/asio/completion_condition.hpp +++ b/include/boost/asio/completion_condition.hpp @@ -26,7 +26,7 @@ namespace asio { namespace detail { // The default maximum number of bytes to transfer in a single operation. -enum { default_max_transfer_size = 65536 }; +enum _dummy_max_transfer_size_type_ { default_max_transfer_size = 65536 }; // Adapt result of old-style completion conditions (which had a bool result // where true indicated that the operation was complete). }}} " hcab14@… 1088 Docs for template escape feature. quickbook To Be Determined Tasks René Rivera new 2007-07-12T01:31:21Z 2007-07-12T01:31:21Z Write docs for the new template escape QuickBook feature. René Rivera 1487 Update the writing documentation instructions Documentation To Be Determined Tasks Daniel James assigned 2007-11-30T20:01:35Z 2010-06-07T22:40:00Z The documentation (http://www.boost.org/more/writingdoc/structure.html) needs to updated and probably should be moved to the new site. Daniel James 3661 An exceptions puzzler: python USE GITHUB Tasks troy d. straszheim new 2009-11-23T19:09:35Z 2009-11-23T19:09:35Z "Scenario: From python I call wrapped c++ code. This c++ code calls a python function via a boost::python::object and attempts to extract a value from what is returned. This causes a throw, and the exception propagates back up to python. It is possible for 'stuff' to get called in a function like this: def foo(): try: return except: stuff() I don't have all the details handy about what is happening on the C++ side, this is a 'note to self' to investigate and document a best practice. " troy d. straszheim 11513 roadmap update website Website 1.X Tasks René Rivera new 2015-07-27T07:29:43Z 2015-07-27T07:29:43Z "hi, could you try update the roadmap ; seems milestone 1.58 has been completed is 1.59 really ~2 weeks away ? great! keep up your amazing work! " anonymous Boost 1.34.0 777 top-level configure is broken build Boost 1.34.0 Bugs nobody deleted 2006-11-17T03:46:42Z 2006-11-18T03:25:46Z "{{{ The top-level configure script in the RC1.34.0 release is broken. This script starts out as: #!/bin/sh which implies that it is a Bourne-shell script. But now almost all of tests in the file have been converted to look like the following: 220 if test ""x$LIBDIR"" == x; then 221 LIBDIR=""$EPREFIX/lib"" 222 fi where (in 1.33.1) they used to look like this: 217 if test ""x$LIBDIR"" = ""x"" ; then 218 LIBDIR=""$EPREFIX/lib"" 219 fi The problem is that ""=="" is not a valid Bourne-shell test-command operator, so the entire build breaks immediately on any platform which uses a true Bourne shell as sh. The fix is to either convert all of these operators to ""="", or to stop claiming the script is a Bourne shell script and use ""#!/bin/bash"" instead. But the latter approach is not recommended because there are many older machines without bash in that location. }}}" eponym Boost 1.34.0 957 "The ""Getting Started"" page does not mention the stdlib option" Getting Started Guide Boost 1.34.0 To Be Determined Bugs Thomas Witt new 2007-05-15T06:24:41Z 2009-05-13T06:37:26Z "The ""Getting Started"" page does not mention the stdlib option, that allows to compile using STLport for example. Also, maybe it is also worth mentionning that using STLport when compiling Boost leads to linking error when the box is linux (and maybe other unix OS). See http://lists.boost.org/boost-users/2007/04/26818.php" Vincent Torri Boost 1.34.0 973 zip_iterator has value_type == reference iterator Boost 1.34.0 Bugs jeffrey.hellrung new 2007-05-21T04:27:20Z 2012-12-02T08:18:41Z "That looks wrong to me. See http://groups.google.com/group/comp.std.c++/browse_frm/thread/9c40ffc2f6394ca0/89ef062ddcb231e7 " anonymous Boost 1.34.0 1181 [boost.python] can modify enum value python USE GITHUB Boost 1.34.0 To Be Determined Bugs troy d. straszheim new 2007-08-14T08:17:12Z 2009-10-11T00:27:51Z "I use boost 1.34.0, python 2.5.1 User can modify the enum value, But enum should be a const value(read only). {{{ #!cpp enum my_enum{my_value}; struct my_s{ enum{ my_value2 };}; void my_export { enum_< my_enum >(""my_enum"") .value(""my_value"", my_value); scope* my_s_scope = new scope(class_< my_s>(""my_s"", init< >())); scope().attr(""my_value2"") = (int)my_value2; delete my_s_scope; } }}} {{{ #!python #in python module.my_enum.my_value = 1 print module.my_enum.my_value module.my_s.my_value2 = 2 print module.my_s.my_value2 # we can modify the const value. # output # 1 # 2 }}}" qiaozhiqiang@… Boost 1.34.0 1045 [multi_array] Need a proper swap operation multi_array Boost 1.34.0 To Be Determined Feature Requests Ronald Garcia new 2007-06-08T16:35:05Z 2018-03-29T13:33:04Z "See [http://lists.boost.org/Archives/boost/2007/05/121165.php this email] which was unanswered. Basically, a proper pointer swap operation would be both efficent and useful. (P.S. multi_array is not listed in components?)" Marcus Lindblom Boost 1.34.0 1180 [boost.python] def_readwrite need a default docstring python USE GITHUB Boost 1.34.0 To Be Determined Feature Requests troy d. straszheim new 2007-08-14T07:52:16Z 2009-11-01T20:00:28Z "the default docstring defined by def_readwrite is null, can boost.python add the type name of my_s::a as the default docstring? like the function's ""C++ signature"" docstring. {{{ #!cpp struct my_s { int a; }; void export_module { class_ s_class(""my_s"", init< >()); s_class.def_readwrite(""a"", &my_s::a);// __doc__ is empty, can boost.python add the type name of my_s::a as the default docstring? like the function's ""C++ signature"" docstring. } // I do this like this: // get type name of data member of class template char const* MemberTypeName(T C::*) { char const* name = typeid(T).name(); return name; } // boost::python def_readwrite no docstring // read write property #define DEF_READWRITE(n, p) \ def_readwrite((n), (p), std::string(""read write property, type is "") + MemberTypeName(p)).c_str()) void export_module { class_ s_class(""my_s"", init< >()); s_class.DEF_READWRITE(""a"", &my_s::a);// replace all auto genarated def_readwrite to DEF_READWRITE. } }}} " qiaozhiqiang@… Boost 1.34.0 857 add shared_ptr< const T> support python USE GITHUB Boost 1.34.0 To Be Determined Patches Dave Abrahams new 2007-03-20T20:27:00Z 2009-09-18T01:02:01Z "This patch adds support to Boost.Python library to handle boost::shared_ptr< const T> class. The problem and solution were discussed in this thread: http://mail.python.org/pipermail/c++-sig/2006-November/011626.html" roman_yakovenko@… Boost 1.34.0 863 [parameter] fix operator|| for lazy binding parameter Boost 1.34.0 To Be Determined Patches Daniel Wallin new 2007-03-21T16:47:54Z 2007-07-03T14:56:17Z "Apply with 'patch -p0 < djw_lazy_binding.patch' from the boost root directory. See discussion here http://tinyurl.com/26kwnh. " daniel_walker@… Boost 1.34.0 10936 How to build boost_1_32_0 for Visual studio 2012 Building Boost Boost 1.34.0 To Be Determined Support Requests new 2015-01-16T14:55:21Z 2015-01-16T16:36:35Z "I have successfully build boost_1_57_0. Now I need to build boost_1_32_0, but same steps cannot be applied to older version of the boost, because folder does not contain bootstrap or bjam, or b2. I tried to run build.bat from boost_1_32_0\tools\build\jam_src\ directory, it was unsuccessfully. I got message ""\Microsoft was unexpected at this time"". Is there other way of how to build boost_1_32_0 versions of boost library? Thank you" yurinaolga87@… Boost 1.34.1 1172 non-utf quickbook Boost 1.34.1 To Be Determined Bugs Daniel James new 2007-08-13T11:16:08Z 2014-04-09T02:17:50Z "Rene Rivera: i was converting some word and html docs today and noticed that i was pasting in non-ascii (and non-utf) into my qbk files. which quickbook would faithfully copy into the resulting boostbook. this would cause xsltproc to choke with an error. not sure if anything can be done. just thought you'd like to know." Joel de Guzman Boost 1.34.1 1206 Document escaping from within code. quickbook Boost 1.34.1 To Be Determined Bugs Daniel James new 2007-08-23T00:04:33Z 2014-04-09T02:18:11Z "John: Just another data point: escaping to BoostBook from within code doesn't work unless the escape is inside a macro: template struct function_traits { static const std::size_t arity = __below; typedef __below result_type; typedef __below '''argN_type'''; }; Does *not* process the escape, whereas: [def __argN '''argN_type'''] template struct function_traits { static const std::size_t arity = __below; typedef __below result_type; typedef __below __argN; }; Does process the escape. Took me a while to figure this out " Joel de Guzman Boost 1.34.1 1215 Boost 1.34.1, mpl: Wrong workaround detection using MinGW32 (or.hpp, line #33) mpl Boost 1.34.1 To Be Determined Bugs Aleksey Gurtovoy assigned 2007-08-26T15:31:24Z 2010-01-25T01:20:08Z "#if defined(_MSC_VER) is not the right thing for MinGW because _MSC_VER is defined but the compiler is still from GNUs Compiler Collection. But i am not sure about the MinGW support in general. Regard, Hans." hfp@… Boost 1.34.1 1387 Review / update docs to reflect changes parameter Boost 1.34.1 Boost 1.36.0 Bugs Daniel Wallin new 2007-10-30T16:29:58Z 2008-06-27T00:18:54Z "There are at ''least'' changes in the equivalent C++ for {{{BOOST_PARAMETER_KEYWORD(tag,name)}}}. However, there may well be other changes that need to be documented. Daniel, If you can think of any, please add them to this ticket or create a ticket of your own." Dave Abrahams Boost 1.34.1 1460 Python classes with multiple bases are convertible only to the first class in the lists (even if super(classname, self).__init__() is called) python USE GITHUB Boost 1.34.1 To Be Determined Bugs Dave Abrahams reopened 2007-11-18T13:42:37Z 2018-05-02T13:22:42Z "first reported here: http://mail.python.org/pipermail/c++-sig/2007-October/012926.html {{{ C++: #include namespace bp = boost::python; struct A { }; struct B { }; void test_A(const A &) { } void test_B(const B &) { } BOOST_PYTHON_MODULE(multiple_inheritance) { bp::def(""test_A"", &test_A); bp::def(""test_B"", &test_B); bp::class_(""A"", bp::init<>()); bp::class_(""B"", bp::init<>()); } Python: class C(A, B): pass test_A(C()) test_B(C()) And I get: Traceback (most recent call last): File ""./multiple_inheritance.py"", line 10, in test_B(C()) Boost.Python.ArgumentError: Python argument types in multiple_inheritance.test_B(C) did not match C++ signature: test_B(B) }}} I will try to figure it out once I am done with the exceptions." Piotr Jaroszyński Boost 1.34.1 1469 [mpl] nested typedef of set has two different meanings mpl Boost 1.34.1 To Be Determined Bugs Aleksey Gurtovoy new 2007-11-22T13:25:20Z 2007-11-22T13:25:20Z "This problem was diagnosed by Steve Watanabe after my posting on the developer list (see http://thread.gmane.org/gmane.comp.lib.boost.devel/168339/focus=168366) Basically the following doesn't compile: {{{ #include #include #include #include #include using namespace boost::mpl; template< typename T > > struct as_set : copy< T , inserter< set<> , insert< _1, _2 > > > {}; typedef set a_set; typedef vector a_vector; typedef as_set< a_set >::type set_as_set; typedef as_set< a_vector >::type vector_as_set; typedef next< begin< a_set >::type >::type THIS_IS_OK; typedef next< next< begin< a_set >::type >::type >::type THIS_IS_OK_AS_WELL; typedef next< begin< a_vector >::type >::type THIS_IS_OK_TOO; typedef next< begin< set_as_set >::type >::type THIS_WORKS_TOO; typedef next< next< begin< set_as_set >::type >::type >::type THIS_FAILS; typedef next< next< begin< vector_as_set >::type >::type >::type THIS_FAILS_TOO; }}} Steve Watanabe diagnosed this to be a problem of mpl::set using the nested typedef 'type' for two different purposes: one as an alias of the set<>, the other refering to the item type. The result is that upon iteration the termination condition isn't recognized and the iterator blows up" sven.vanechelpoel@… Boost 1.34.1 1482 boost::python::throw_error_already_set should be marked noreturn python USE GITHUB Boost 1.34.1 To Be Determined Bugs Dave Abrahams new 2007-11-29T19:34:10Z 2007-12-11T14:20:12Z "boost::python::throw_error_already_set should be marked noreturn, so that gcc doesn't complain when functions call it at the end and then don't return. Thanks! Geoffrey" irving@… Boost 1.34.1 1549 Boost.MPL: 'index_of' algorithm is not documented mpl Boost 1.34.1 Boost 1.36.0 Bugs Aleksey Gurtovoy assigned 2008-01-04T02:24:33Z 2008-01-04T02:24:52Z Aleksey Gurtovoy Boost 1.34.1 1632 Default Interval rounding policies incomplete numeric Boost 1.34.1 Boost 1.36.0 Bugs No-Maintainer new 2008-02-11T03:42:41Z 2008-05-24T16:15:02Z "Report originates at http://bugs.debian.org/440178 The rounding policy requirements (http://boost.org/libs/numeric/interval/doc/rounding.htm) list e.g. tan_down(), but none of the implementations in rounded_arith.hpp implement it. The result is that this code fails to compile: {{{ #include int main( int ac, char* av[] ) { boost::numeric::interval I(0.1, 0.2); I = tan(I); return 0; } }}} " Steven Robbins Boost 1.34.1 1649 Fix definition of JavaScript menu to avoid long chains of functions iostreams Boost 1.34.1 Boost 1.36.0 Bugs Jonathan Turkanis new 2008-02-20T00:14:39Z 2008-02-20T00:14:39Z "See problem raised here: http://article.gmane.org/gmane.comp.lib.boost.devel/171201. This was fixed for the platform in question by breaking the menu definition into chunks, but the chunks should be made even smaller in case other platforms have lower limits on the size of function chains" Jonathan Turkanis Boost 1.34.1 1656 Consider implementing flush() for symmetric filters iostreams Boost 1.34.1 Boost 1.36.0 Bugs Jonathan Turkanis new 2008-02-27T03:32:19Z 2018-07-13T17:33:45Z Jonathan Turkanis Boost 1.34.1 1726 boost/date_time/posix_time/time_formatters.hpp incorrectly formats fractional seconds using global locale date_time Boost 1.34.1 To Be Determined Bugs az_sw_dude new 2008-03-28T22:51:42Z 2008-03-28T22:51:42Z "The function boost::posix_time::to_iso_string_type() uses the ostream::operator<<() function to write the time. This later function will use the current global locale to format each of the elements of the time. In particular, when the global locale is set to en_US, the fractional will be formatted to be 123,456 when there are six digits, which is incorrect. The proposed solution is to temporarily imbue the ostream with the classic locale to disable formatting. The attached patch only applies this to the fractional seconds but it would be more robust to apply to the other time components as well. This type of error probably exists in other functions. In particular see Ticket #1674 which is the same error." jplejacq@… Boost 1.34.1 1798 met an error using boost::tokenizer in multi-times in vs2005, unicode tokenizer Boost 1.34.1 Bugs jsiek new 2008-04-09T08:12:28Z 2008-04-09T08:12:28Z "test function: const CHAR* tnotifymsg = “HTTP/1.1 Host: 176.177.193.111 Content-Length: 110 Date : ...... 19 ”; CHAR* pSeparator = "" ,;\n\r""; int nErrorcode = 0; boost::char_separator sep(pSeparator); std::string strNotifymsg = tnotifymsg; boost::tokenizer> tokens(strNotifymsg, sep); boost::tokenizer>::iterator itBegin = tokens.begin(); boost::tokenizer>::iterator itEnd = tokens.end(); boost::tokenizer>::iterator beg = itBegin; // error code if ""HTTP/1.1"" at the beginning of notify message if(_stricmp((*beg).c_str(), ""HTTP/1.1"") == 0) { using boost::lexical_cast; ++beg; nErrorcode = lexical_cast(*beg); return nErrorcode; } else{ // else the right message for parser for(; !bFinishFlag; ++beg) { ; } } " wingo Boost 1.34.1 1836 bug in serializing wide character strings serialization Boost 1.34.1 To Be Determined Bugs Robert Ramey assigned 2008-04-17T21:12:21Z 2010-11-29T20:32:54Z "We've discovered an issue Boost has writing and reading wide character strings (wchar_t* and std::wstrings) to non-wide character file streams (std::ifstream and std::ofstream). The issue stems from the fact that wide characters are written and read as a sequence of characters (in text_oarchive_impl.ipp and text_iarchive_impl.ipp, respectively). For text streams, an EOF character terminates the reading of a file on Windows. Some wide characters have EOF (value = 26 decimal) as one of the bytes so reading that byte causes early termination of the read. We have worked around the issue by deriving our own input and output archives from text_i|oarchive_impl and overriding load_override() and save_override for std::wstring and wchar_t*. Our implementation just sequences through the wide characters and writes them 1 by 1 as wchar_t to the archive. This isn't very elegant and is even less readable in the file than the current implementation but does resolve the problem. Although the test test_simple_class does test wstrings, it only uses characters 'a'-'z' which does not expose this problem. " Jeff Faust Boost 1.34.1 2769 x86_64 + g++: wrong results for sin() interval Boost 1.34.1 Bugs Boris Gubenko new 2009-02-17T17:41:19Z 2010-11-29T03:13:12Z "When using boost's interval library under x86_64-Linux with g++ we encountered strange results for sin(): For example for an interval [-2.1,-2.1] sin() returns [nan,nan]." anonymous Boost 1.34.1 1125 parse_config_file should be mentioned in the How To program_options Boost 1.34.1 To Be Determined Feature Requests Vladimir Prus reopened 2007-07-28T08:58:45Z 2012-02-01T02:30:28Z "Hi, > po::store(po::parse_config_file(is, desc), vm); The very useful parse_config_file function should be mentioned in the How To and in the examples." Olaf van der Spek Boost 1.34.1 1136 Let BOOST_CHECK_EQUAL support std::wstring test Boost 1.34.1 To Be Determined Feature Requests Gennadiy Rozental new 2007-08-03T05:22:59Z 2014-01-03T07:58:12Z "e.g. {{{ std::wstring s1,s2; BOOST_CHECK_EQUAL(s1, s2); }}} " pop.atry@… Boost 1.34.1 1158 optional named parameters quickbook Boost 1.34.1 To Be Determined Feature Requests Daniel James new 2007-08-10T07:16:54Z 2014-04-09T01:58:37Z "Can templates notation be extended to use optional named parameters (onp). I am thinking in: Template definition: [template tname [a b c] [onp_1 default_1] [onp_2 default_2] This is the template body... use unamed forced parameters: [a] use onp parameters: [onp_1] (This prints the value or the default) [onp_1? if was used do this : if not do this ] ] IMO this is a good extension and is backward compatible with the current implementation." Joel de Guzman Boost 1.34.1 1159 bibliography support quickbook Boost 1.34.1 To Be Determined Feature Requests Daniel James new 2007-08-10T07:21:32Z 2014-04-09T01:58:13Z "All (especially documenters), I seem to be rewriting much of the Boost.Graph documentation as I slowly translate it into quickbook format, and augment it with concepts from my SoC project. However, I've run into a ""small-ish"" missing feature in quickbook that I might need to do the job correctly: bibliography support. Boost.Graph has a (growing) bibliography of about 60 different references. What I would like to be able to do is something like this... # somewhere in graph.qbk [include bibliography.qbk] The bibliography should contains a set of structured records that define bibliographic entries that we can cite in then documentation proper. It would probably be worthwhile to support a number of different entry types. # book references [bibbook [authors [Aho, A.V.] [Hopcroft J.E.] [Ullman J.D.]] [title Data Structures and Algorithms] [year 1983] [publisher Addison-Wesley] ] # journal articles [bibarticle # ... [journal [title Software - Practice and Experience] [volume 25] [issue 8]] [year 1995] [date Aug] [pages 863-889] ] # conference proceedings [bibproceedings # ... [conference 23rd International Conference on Software Maintenance] [location Paris, France] [year 2007] [date Oct 2-5] ] There are probably others to support (i.e., theses and dissertations). Citations should be easy since they're basically just links. A citation might look something like: [bibref aho_1983_data_structures_and_algorithms] This could generate something like: [Aho'1983] Although there are a number of different represent references. They could simply be numbers. Does this sound like something that might be useful for quickbook? I was thinking about trying to write it myself, but I'm a little busy between SoC and my narrowing down a dissertation topic. I still might give it a shot, but I don't really know anything about the back-end formatting. Thoughts? Comments? Andrew Sutton asutton@cs.kent.edu" Joel de Guzman Boost 1.34.1 1178 Regular expression min match length regex Boost 1.34.1 To Be Determined Feature Requests John Maddock new 2007-08-14T07:36:05Z 2009-05-08T11:07:57Z "From the mailing list: I need to calculate, given a regular expression, the min length for a match. For example if I have as regexp ^HTTP.*, 4 is the min length required for a match." anonymous Boost 1.34.1 1190 Markups inside simple markups quickbook Boost 1.34.1 To Be Determined Feature Requests Daniel James new 2007-08-20T07:36:19Z 2010-07-10T15:29:23Z "Stjepan Rajko wrote: > On 7/29/07, Joel de Guzman wrote: >> Stjepan Rajko wrote: >>> If I have a template ProducerConcept and I write: >>> >>> ['[ProducerConcept]] >>> >>> the template gets expanded and written in italics, but if I write: >>> >>> /[ProducerConcept]/ >>> >>> I get [ProducerConcept] in italics, i.e. the template does not get >>> expanded. Is this intended? Seems a bit weird. >> This is documented: > > Doh! Yep, right there it is... sorry for the noise. > >> I know a way to relax these limitations, but it will involve some >> complexity. I am not sure yet if the added complexity is worth it. >> > > I don't see it as necessary. I was just confused, due to having > missed the relevant parts of the docs. Don't brush it off just yet. There's the principle of ""least surprise"". If this behavior is surprising, regardless if it is documented or not, then it must be reconsidered. " Joel de Guzman Boost 1.34.1 1201 Regexify the syntax highlighter quickbook Boost 1.34.1 To Be Determined Feature Requests Andreas Pokorny assigned 2007-08-22T23:27:56Z 2007-08-26T09:37:26Z "What I'd really want is to Regex-ify the syntax highlighter and have them reconfigurable as user-supplied regex strings from configuration files. This would simplify our life a lot. There'll be only one syntax highlighter grammar and code that can accept various lexer files. Our job then is just to churn out various lexer files for different languages. " Joel de Guzman Boost 1.34.1 1204 Non-breaking-space? quickbook Boost 1.34.1 To Be Determined Feature Requests Daniel James new 2007-08-22T23:44:18Z 2014-04-09T02:19:00Z "Joel: >> >> I think we should take advantage of macros as much as possible >> >> before considering any syntax addition. nbsp can definitely be >> >> a macro, FWIW, e.g.: >> >> {{{[def _nbsp_ [''' ''']]}}} Rene: > > Won't that break in most situations? Specifically because it won't have > > spaces around it to differentiate it from the context: > > > > {{{[^-f_nbsp_/Jambase/]}}} Dave: At my urging, docutils ended up with a ""breaking non-space"". That is, if you escape a regular space it just separates docutils tokens with no other significance. Thus: {{{[^-f\ _nbsp_\ /Jambase/]}}}" Joel de Guzman Boost 1.34.1 1288 Quickbook article info needs expansion to include more bibliographic info quickbook Boost 1.34.1 To Be Determined Feature Requests Daniel James new 2007-09-27T11:13:20Z 2014-04-09T02:19:17Z "Quickbook article info needs expansion to include more bibliographic info [@ http://www.oasis-open.org/docbook/documentation/reference/html/biblioset.html Docbook Bibliographic info] It is unclear which items are to appear on the front page (and indeed I think there is a bug in that this [article Math Toolkit [quickbook 1.4] [copyright 2006-2007 John Maddock, Paul A. Bristow, Hubert Holin and Xiaogang Zhang] [purpose ISBN 0-9504833-2-X 978-0-9504833-2-0] [license Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at [@http://www.boost.org/LICENSE_1_0.txt]) ] [authors [Maddock, John], [Bristow, Paul A.], [Holin, Hubert], [Zhang, Xiaogang]] [category math] [purpose mathematics] [/last-revision $Date: 2007-09-24 11:12:19 +0100 (Mon, 24 Sep 2007) $] ] Note the TWO [purpose...] blocks. produces this XML mathematics Math Toolkit ISBN 0-9504833-2-X 978-0-9504833-2-0 Actually this would be best as - but of course it needs to be printed. This needs my needs to show an ISBN on the front page for now, but is a kludge! " Paul A. Bristow Boost 1.34.1 1393 library binaries should be buildable by name from the top level build Boost 1.34.1 To Be Determined Feature Requests Vladimir Prus new 2007-10-31T16:18:52Z 2009-08-29T08:00:45Z http://article.gmane.org/gmane.comp.lib.boost.devel/166925 Dave Abrahams Boost 1.34.1 1633 Make pipelines first class devices, so they can be passed to copy iostreams Boost 1.34.1 Boost 1.36.0 Feature Requests Jonathan Turkanis reopened 2008-02-12T19:26:21Z 2009-04-19T19:18:42Z See thread starting with [http://article.gmane.org/gmane.comp.lib.boost.user/33255] Jonathan Turkanis Boost 1.34.1 1702 serialization for Mersenne twister random Boost 1.34.1 Boost 1.36.0 Patches No-Maintainer new 2008-03-20T22:48:22Z 2011-04-07T15:49:48Z "Based on email by Neal Becker from 2007-12-17, quoting: This is an improved patch for mt serialization, using the serialization collection stuff " Pavel Vozenilek Boost 1.34.1 1915 Nested matrix products with transposes causes compiler to complain error: invalid application of ‘sizeof’ uBLAS Boost 1.34.1 To Be Determined Support Requests Gunter assigned 2008-05-14T05:52:05Z 2008-05-14T21:56:28Z "When using ublas, a pair of nested products will cause the compiler to complain if there is a `trans` on any of the operands. For example: {{{ #!cpp using namespace boost::numeric::ublas; matrix A(3,3), B(3,3), C(3,3); prod(prod(A,B),trans(C)); // fails prod(prod(trans(A),B),C); // fails prod(prod(A,trans(B)),C); // fails prod(prod(A,B),C); // OK }}} The compiler produces the following error message: {{{ /opt/local/include/boost/numeric/ublas/matrix_expression.hpp: In function ‘typename boost::numeric::ublas::matrix_matrix_binary_traits::result_type boost::numeric::ublas::prod(const boost::numeric::ublas::matrix_expression&, const boost::numeric::ublas::matrix_expression&) [with E1 = boost::numeric::ublas::matrix_matrix_binary, boost::numeric::ublas::unbounded_array > >, boost::numeric::ublas::matrix, boost::numeric::ublas::unbounded_array > >, boost::numeric::ublas::matrix_matrix_prod >, E2 = boost::numeric::ublas::matrix_unary2, boost::numeric::ublas::unbounded_array > >, boost::numeric::ublas::scalar_identity >]’: bad_multiply.cpp:9: instantiated from here /opt/local/include/boost/numeric/ublas/matrix_expression.hpp:4815: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE’ }}}" Leo Singer Boost 1.34.1 12086 Fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_34_1.lib' Building Boost Boost 1.34.1 To Be Determined Support Requests new 2016-03-22T12:31:49Z 2016-03-23T11:23:28Z "getting below error:- Fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_34_1.lib' Lib = 1.34.1 complier: Visual Studio 2008 OS- Windows 7 " greatsaurav@… Boost 1.34.1 1175 Document quickbook's (lack of) unicode support. quickbook Boost 1.34.1 To Be Determined Tasks Daniel James assigned 2007-08-13T11:23:21Z 2009-06-06T13:47:40Z See http://tinyurl.com/35j57v Joel de Guzman Boost 1.34.1 1200 Revamp the header information quickbook Boost 1.34.1 To Be Determined Tasks Daniel James new 2007-08-22T23:24:24Z 2014-04-09T02:28:04Z "(see this thread for context: http://tinyurl.com/2b9ywv) Allow a couple of the (header) items there to be *overridden* in included files. Example: * copyright (a) or (b) * authors (a) or (b) * license (a) or (b) * last-revision (a), if it's more recent than current value where: a) Merge with the current value. b) Use new value only for current file/doc. I took out all the ones you have as (c) -- Ignore the new value. I also took out source-mode since this can already be overridden. So, these overrides can be placed anywhere. Example: main.qbk [library foo [quickbook 1.4] [version 1.4] [copyright 2006 Joe Bloke] [authors [Bloke, Joe]] [purpose Whatever...] [license Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at [@http://www.boost.org/LICENSE_1_0.txt]) ] [last-revision $Date: 2006/09/16 09:21:08 $] ] include.qbk [license Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at [@http://www.boost.org/LICENSE_1_0.txt]) ] [last-revision $Date: 2006/09/16 09:21:08 $] John (M): I like the way this is going, but I would actually prune the list of overrides a little more: [last-revision...] Definitely needed, as per my original post :-) [quickbook....] Also needed so that individual includes can start using new features without having to go through and fix errors in the whole doc. [version...] Not sure about this one, shouldn't a library have a single version number? [copywrite...][authors...] These would be useful to have: especially for ""meta-libraries"" like Boost.Math which has many sub-components by different authors. The ideal world senario - probably not possible (!) - would be to merge all the author names onto the main front page, but for sections just to include the authors who worked on that section. Does that make sence? [purpose...] Isn't this used just once on the main page, or maybe the index of libraries? I don't see any great advantage to having more than one such block. [license...] Given that everything should be under the same license (as far as Boost is concerned anyway), having more than one such block just complicates things. " Joel de Guzman Boost 1.34.1 1279 Make sure multiple #import of a file imports the file only once. quickbook Boost 1.34.1 To Be Determined Tasks Daniel James assigned 2007-09-24T06:37:48Z 2013-09-29T11:21:32Z Joel de Guzman Boost 1.35.0 1887 [doc] input_iterator_archetype is not a valid InputIterator concept_check Boost 1.35.0 Boost 1.36.0 Bugs Dave Abrahams new 2008-05-01T19:02:56Z 2011-09-20T19:15:01Z "creating_concepts.htm shows an InputIterator concept which requires that the type of *it++ is the same as the value_type. (This is legit according to the C++03 requirements table for input iterators, but probably too strict in practice.) Then, concept_covering.htm shows an input_iterator_archetype, which fails to meet this requirement because *it++ will return an object of type input_iterator_archetype::reference which is distinct from, but convertible to, the iterator's value_type. If you try to assert that input_iterator_archetype satisfies the InputIterator concepts as both are presented in the docs, it will fail. This is only a documentation problem. As defined by the BCCL, input_iterator_archetype is a valid InputIterator." Eric Niebler Boost 1.35.0 1888 Why doesn't InputIterator require that reference is convertible to value_type? concept_check Boost 1.35.0 Boost 1.36.0 Bugs jsiek new 2008-05-01T19:34:50Z 2008-05-01T21:09:47Z "Bug title says it all. boost::InputIterator doesn't enforce any relationship between the reference and value_type associated types. Seems wrong to me, but perhaps there is a reason. It also doesn't check that the type of dereferencing an input iterator is reference. " Eric Niebler Boost 1.35.0 1900 Missing documentation for mpl::print in the MPL library mpl Boost 1.35.0 Boost 1.36.0 Bugs Joel Falcou new 2008-05-07T19:31:27Z 2011-11-27T18:46:09Z The documentation for mpl::print is missing from the Boost reference documentation. Edward Diener Boost 1.35.0 1916 [mpl] MPL_HAS_XXX_TRAIT_DEF bug in MSVC71 mpl Boost 1.35.0 Boost 1.36.0 Bugs Aleksey Gurtovoy new 2008-05-14T10:24:32Z 2008-05-14T10:24:32Z "The MSVC71 implementation of MPL_HAS_XXX_TRAIT_DEF does not correctly support defining a trait of the same name even if that is enclosed within a different namespace. It seems to have something to do with the instantiation of the 'msvc71_sfinae_helper'. In the code below I do the following: {{{ #!cpp namespace one { BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type) BOOST_MPL_HAS_XXX_TRAIT_DEF(another_type) } namespace two { BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type) } }}} Namespace two's {{{has_result_type}}} actually ends up testing for the presence of {{{another_type}}} rather than {{{result_type}}}. If the declarations in namespace one are reordered so that result_type trait is last, then the namespace two trait works as expected. I wrote a basic sfinae trait-check implementation myself which worked ok. Maybe something similar could be used for msvc71 in the mpl? If the following code is compiled with -DUSE_MPL_TRAIT_DEF then the mpl is used, otherwise my own implementation is used. {{{ #!cpp #if USE_MPL_TRAIT_DEF #define SELECTIVE_HAS_XXX_TRAIT_DEF BOOST_MPL_HAS_XXX_TRAIT_DEF #include #else #define SELECTIVE_HAS_XXX_TRAIT_DEF MY_HAS_XXX_TRAIT_DEF #define MY_HAS_XXX_TRAIT_DEF( trait ) \ template \ struct has_##trait \ { \ template \ static char test( U const volatile*, typename U::trait* = 0 ); \ static long test( ... ); \ \ static const bool value = sizeof test( static_cast(0) ) == sizeof(char); \ }; \ #endif namespace one { SELECTIVE_HAS_XXX_TRAIT_DEF(result_type) SELECTIVE_HAS_XXX_TRAIT_DEF(another_type) } namespace two { // This instantiation of msvc71_sfinae_helper in the msvc71 // implementation has been seen before --- but its function is that // of the last trait def. // // This line has the effect of defining a 'has_result_type' struct // that tests for 'another_type' in msvc71. // SELECTIVE_HAS_XXX_TRAIT_DEF(result_type) } template struct test; template <> struct test {}; struct X { typedef int result_type; typedef int another_type; }; struct Y { typedef int result_type; }; int main() { test< one::has_another_type< X >::value >(); test< one::has_result_type< X >::value >(); // this works but is actual testing for 'another_type'!!! test< two::has_result_type< X >::value >(); // this fails as it doesn't have 'another_type' test< two::has_result_type< Y >::value >(); } }}}" Adam Butcher Boost 1.35.0 1966 Need VC8 workaround parameter Boost 1.35.0 Boost 1.36.0 Bugs Daniel Wallin new 2008-05-28T16:29:06Z 2009-05-30T00:14:49Z "{{{ template struct sparse : sparse_impl< typename sparse_signature::bind::type > { typedef sparse_impl< typename sparse_signature::bind::type > base; BOOST_PARAMETER_CONSTRUCTOR( sparse, (base), tag, (required (nrows, (std::size_t)) ) (optional (nstored, (std::size_t)) ) ) // workarounds for VC8 bugs sparse(sparse const& rhs) : sparse_impl((sparse_impl const&)rhs) {} sparse& operator=(sparse const& rhs) { *(sparse_impl*)this = (sparse_impl const&)rhs; return *this; } }; }}} The problem is that the automatically-generated copy ctor and assignment essentially leave out the casts above, and get routed to the templated ctor in the base class. The question is, should we incorporate these fixes in BOOST_PARAMETER_CONSTRUCTOR? " Dave Abrahams Boost 1.35.0 2031 PDF version of MPL reference manual is out-of-date mpl Boost 1.35.0 Boost 1.36.0 Bugs Aleksey Gurtovoy new 2008-06-21T03:09:30Z 2008-06-21T03:09:30Z The reference manual in PDF is out-of-sync with HTML docs (and .rst sources). It either needs to be regenerated or removed from the docs. Aleksey Gurtovoy Boost 1.35.0 2041 "MPL: more comprehensive test coverage for ""fail"" situations requiring diagnostics" mpl Boost 1.35.0 Boost 1.36.0 Bugs Aleksey Gurtovoy assigned 2008-06-23T21:07:19Z 2008-06-23T21:07:36Z See http://thread.gmane.org/gmane.comp.lib.boost.user/36876 Aleksey Gurtovoy Boost 1.35.0 2068 Better path comparison for common.mkdir build Boost 1.35.0 Bugs Vladimir Prus new 2008-07-03T22:10:49Z 2010-01-10T10:14:47Z "The problem is exposed by the accumulators doc build, which fails because bjam tries to create the same target directory twice, once with a relative path and once with an absolute path. bjam doesn't normalize the paths correctly and therefore fails to recognize that the targets are the same. The build fails on the second mkdir attempt because the target directory already exists. Jurko Gospodnetić tracked the problem down to the following: Ok, I managed to reproduce an equivalent problem using regular Windows bjam. To reproduce it use the following jamroot.jam file placed in a folder called UUU: {{{ import common ; install fff : jamroot.jam ; file.1 ; install fff/ggg/.. : jamroot.jam : file.2 ; install fff/ggg/../ggg/../../fff : jamroot.jam : file.3 ; install ../UUU/fff : jamroot.jam : file.4 ; }}} Boost Build tries to battle this problem by normalizing any paths passed to it (i.e. shortcircuiting any . path elements except and any .. path elements except for the initial series), which makes cases 2 & 3 above not conflict with case 1. However the path passed in case 4. is already normalized and does not get recognized as pointing to the same location as the one in case 1. Therefore the initial build fails, while any repeated builds work as expected. The problem could be solved by updating the bindtarget() function in Boost Jam's rules.c source file to find some sort of a 'unique' identifier for each of its targets. Any suggestions on what such an identifier might be? I guess we could attempt to root any non absolute paths from the current folder's absolute path and then normalize that. But is that enough? Should we be prepared to handle stuff like symbolic links? I have not researched this much before, but is there any 'standard solution' to such a problem that I am not aware of? Is there some portable 'file system object identifier' we can use in case the file system already exists? There are some other places in Boost Jam code (e.g. file_query() function in filent.c) that could benefit from such an identifier since they hash their results based on the parameter name and so may cache multiple result sets for the same file in some cases. If there is no portable identifier, then are there at least different identifiers on different systems? Note that this is not just a MkDir problem. Any other target build could fail due to similar reasons. " Eric Niebler Boost 1.35.0 2179 add support for weak_ptr python USE GITHUB Boost 1.35.0 Boost 1.36.0 Bugs Dave Abrahams new 2008-08-09T02:44:28Z 2013-04-19T06:03:05Z "Today shared_ptr works very well, but it makes it difficult for the C++ application to retain control over the lifetime of its objects. Variables in the interpreter which are hard to clear can prevent an object from being deleting. weak_ptr support would be the ideal solution. A application could hand out only weak_ptrs to Python. The object could then be deleted as normal. Attempting to use a weak_ptr in Python if the object has been released should throw. Python code which knows its objects might be deleted out from under it can catch this exception. See thread w/ Dave Abrahams titled ""application exit and shared_ptr"" in C++-sig." pwinston@… Boost 1.35.0 2287 pi test runtime failures interval Boost 1.35.0 Boost 1.37.0 Bugs Guillaume Melquiond new 2008-09-05T02:11:35Z 2008-09-14T08:58:52Z "On Suse Linux Enterprise Server 10, with the default installed gcc-4.0.1, I am getting the following errors: {{{ /zorak/sles/boost_1_35_0/libs/numeric/interval/test/pi.cpp(37): test subset(pi_f, widen(I_f((float) PI), (std::numeric_limits ::min)())) failed in function: 'int test_main(int, char**)' /zorak/sles/boost_1_35_0/libs/numeric/interval/test/pi.cpp(38): test subset(pi_d, widen(I_d((double)PI), (std::numeric_limits::min)())) failed in function: 'int test_main(int, char**)' }}} My bjam command-line is: {{{ #!/sh ~/bin/bjam -sHAVE_ICU=1 -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/lib64 --debug-configuration -j4 release --build-dir=/zorak/sles/build cxxflags=-Wno-non-virtual-dtor }}} Even if there is no immediate fix, an explanation would be helpful. Thanks!" Dave Abrahams Boost 1.35.0 2331 Boost.Parameter -- oveloading on keyword signature parameter Boost 1.35.0 Boost 1.37.0 Bugs Daniel Wallin new 2008-09-16T20:10:19Z 2008-09-17T20:56:11Z "This bug was described in the users mailing list: http://www.nabble.com/overloading-on-keyword-signature-td19503100.html I used gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7) " e_r Boost 1.35.0 5858 Issue to compile in VS 2008, VC 9.0.30729.1 SP without Microsoft extensions iterator Boost 1.35.0 To Be Determined Bugs jeffrey.hellrung new 2011-09-02T18:03:25Z 2012-11-21T20:03:45Z "The issue appears first in 1.35.0 version. The version 1.34.1 is still OK. It is only appears when microsoft extentions are disabled. The library is ""Iterator"". For version 1.35.1: the file is iterator_concepts.hpp, line nuber is 136: {{{ BOOST_concept(SinglePassIterator, (Iterator)) : IncrementableIterator , boost::EqualityComparable { --->>> BOOST_CONCEPT_ASSERT(( boost::Convertible< BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category , boost::single_pass_traversal_tag > )); }; }}} The first line of error message is \boost\include\boost-1_35_0\boost/iterator/iterator_concepts.hpp(136) : error C2146: syntax error : missing ',' before identifier 'traversal_category' " Dr. Sergey Kiselev Boost 1.35.0 1802 Add autodetection of Expat and MPI in configure build Boost 1.35.0 Boost 1.42.0 Feature Requests Vladimir Prus new 2008-04-09T17:04:00Z 2009-11-10T07:43:20Z The configure script in Boost already autodetects the presence and versions of Python and ICU, but the paths for Expat and the user's MPI implementation must be provided by hand. It would be useful if the script found those and added them to user-config.jam automatically. jewillco@… Boost 1.35.0 1808 Trim middle algorithm Boost 1.35.0 Boost 1.46.0 Feature Requests Marshall Clow new 2008-04-10T12:55:28Z 2012-02-29T23:53:14Z "Could you add a function to trim 'internal' whitespace? I think two functions would be handy, one for single-line data and one for multi-line data. The single-line one would replace all internal whitespace by a single space character. The multi-line one would replace multiple empty lines by a single empty line and remove trailing whitespace from each line." Olaf van der Spek Boost 1.35.0 1913 Null deleter for shared_ptr smart_ptr Boost 1.35.0 To Be Determined Feature Requests Peter Dimov new 2008-05-12T21:58:36Z 2011-03-08T13:25:32Z As raised in this (http://article.gmane.org/gmane.comp.lib.boost.user/35693) message on the boost-users mailing list, it would be very nice if the smart pointer library contained a null deleter object so it could be used for stack/static objects. To save the user having to define their own. Kevin Martin Boost 1.35.0 1948 shared_container_const_iterator to complement shared_container_iterator iterator Boost 1.35.0 To Be Determined Feature Requests jeffrey.hellrung new 2008-05-26T01:42:39Z 2012-11-21T19:40:30Z A version of shared_container_iterator that can iterate over a const container might be useful. I was able to locally modify shared_container_iterator to work with a shared_ptr without too much trouble. Frank Mori Hess Boost 1.35.0 1949 suggestion for iterator library - templated constructors iterator Boost 1.35.0 Boost 1.36.0 Feature Requests jeffrey.hellrung new 2008-05-26T03:28:23Z 2012-11-21T19:41:16Z "This feature was implemented via derivation for ""DataFlow"" iterators in the serialization library. It is described in a page in that library at libs\serialization\doc\dataflow.html I don't think that actually adding the feature would be a huge deal. But a good tutorial document on the utility of such a feature would take some effort. Robert Ramey" Robert Ramey Boost 1.35.0 2013 Support for homogeneous MPI builds in BBv2 mpi Boost 1.35.0 Boost 1.36.0 Feature Requests Douglas Gregor new 2008-06-16T19:43:41Z 2010-12-16T16:43:34Z We need a BBv2 feature to determine whether to build the MPI library for homogeneous clusters or heterogeneous clusters. The default will be heterogeneous clusters, but we can provide some additional optimizations for homogeneous clusters. Douglas Gregor Boost 1.35.0 2087 enable in-place construction of fusion container content fusion Boost 1.35.0 Boost 1.36.0 Feature Requests Joel de Guzman new 2008-07-08T11:16:27Z 2008-07-08T11:16:27Z "when a fusion container is initialized, the objects in the container are constructed and after that copied (using the copy constructor). an in-place initialization would allow to have a fusion container of non-copy-constructible types as the copy construction would not be necessary anymore. (fusion sequence of non-copy-constructible types are not currently supported.) using an in-place solution should also be more efficient. " oliver.mueller@… Boost 1.35.0 2129 iterator problem in ublas::basic_range (boost/numeric/ublas/storage.hpp) uBLAS Boost 1.35.0 To Be Determined Feature Requests Gunter new 2008-07-19T19:26:41Z 2008-07-29T20:06:07Z "Decrementing (--) a forward iterator through a basic_range containing negative values throws an error (bad_index). This seems inconsistent because it is possible to increment (++) through such a range without throwing error. lines 937 - 941 of boost/numeric/ublas/storage.hpp read {{{ const_iterator &operator -- () { BOOST_UBLAS_CHECK (it_ > 0, bad_index ()); -- it_; return *this; } }}} Removing ""BOOST_UBLAS_CHECK (it_ > 0, bad_index ());"" solves the problem. Similarly for the += and -= operators. The documentation makes no mention of the range needing to consist only of positive values and this seems a rather arbitrary restriction." brian.tyler@… Boost 1.35.0 2138 Windows test cases need to include \\?\ and \\.\ prefixes filesystem Boost 1.35.0 Boost 1.37.0 Feature Requests Beman Dawes new 2008-07-22T14:54:39Z 2008-07-22T15:01:35Z "See Naming a Volume docs, http://msdn.microsoft.com/en-us/library/aa365248(VS.85).aspx, for information about \\?\ prefixes. See CreateFile() docs, http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx, for information about \\.\ prefixes. " Beman Dawes Boost 1.35.0 2150 Inspect needs to check for missing files inspection script Boost 1.35.0 Boost 1.37.0 Feature Requests Beman Dawes assigned 2008-07-28T14:51:59Z 2013-01-03T19:10:48Z "Objective: Report missing files early enough to take corrective action before a crisis develops. Include generated doc files in the lists searched for. Design: Top level ""required_files.txt"" points to ""required_files.txt"" in subdirectories. That way the root/required_files.txt only has to be edited when a library is added. See attached file for possible ""required_files.txt"" format." Beman Dawes Boost 1.35.0 12026 using this coupon iterator Boost 1.35.0 Boost 1.61.0 Feature Requests jeffrey.hellrung new 2016-02-27T10:43:53Z 2017-10-08T06:06:41Z "Company devotion could cost you alot, consequently think about stepping out of your safe place each on occasion. Terminated coupons usually are in the centre of the month as well as the end-of the month. You must set aside one-day each week wherever you really concentrate on your couponing work. Many couponers save 50% or more on the grocery expenses by employing straightforward and timetested practices. You could possibly undoubtedly uncover a complete couple of deals supplied from huge-called stores. You get Swiffer deals that provide excellent discounts but aren't helpful [http://mydomain98223848.com/ go to this website] anyone." christiezimmermann@… Boost 1.35.0 1811 Help packaging by supporting DESTDIR Building Boost Boost 1.35.0 To Be Determined Patches Vladimir Prus new 2008-04-10T23:36:48Z 2018-07-13T07:10:00Z "Usual practice for package builders is to invoke installation with {{{ DESTDIR=/tmp/package make install }}} and then build package from the content of ""/tmp/package"" directory. When package is installed ""/tmp/package/usr"" becomes ""/usr"" Usually this is different than --prefix, because some component may need to reference another by using the full path. For example - in pkgconfig .pc files. If prefix is set to the temporarily location the component would try to reference on the wrong place, instead of the place where the needed component is installed. I was assured that boost doesn't have any such dependences, however for packager convenience it is relatively easy to make it follow the above convention. The attached patch adds ""${DESTDIR}"" into the generated Makefile, so when make is involved normally , DESTDIR would be empty and files would be generated using the PREFIX where they are going to reside. On installation if it is not empty, it would place the files in the directory requested by the package builder. " iive Boost 1.35.0 1947 traversal access decoupling iterator Boost 1.35.0 Boost 1.36.0 Patches jeffrey.hellrung new 2008-05-25T14:21:10Z 2012-11-21T22:38:25Z "In an attempt to use iterator_facade to implement a ""Readable"" and ""Writeable"" == ""Swapable"" ""Random Access"" iterator I found that the expression: it[n] returns an object of type operator_brackets_proxy that is convert- ible to ""reference"" but not to ""value_type"". Consequently I can use value_type a; it[n] = a; but not a = it[n]; I am not sure of how to correctly solve this issue. Here is a pointer to a discussion on the list: http://lists.boost.org/Archives/boost/2008/05/137868.php " Roland Schwarz Boost 1.35.0 2066 Inspect needs to review generated doc files too inspection script Boost 1.35.0 Boost 1.36.0 Tasks Beman Dawes assigned 2008-07-03T11:16:35Z 2013-01-03T19:11:23Z "Inspect needs to run on release snapshot so that it is looking at the generated doc files too. But it also needs to be modified so that if it is running on a snapshot (or other cases where svn info doesn't work), the revision number and URL are picked up from somewhere else. Maybe it would be easier to copy the files from the release snapshot into a release working copy so that inspect will work as it is not." Beman Dawes Boost 1.36.0 2249 MPL::switch_ not working and not documented mpl Boost 1.36.0 Boost 1.37.0 Bugs Aleksey Gurtovoy new 2008-08-23T15:43:11Z 2012-10-30T17:45:13Z "Seems the current swich_ implementations uses lambda<> where it shouldn't. Moreover, there is no documentation for switch_. Here's a link to a working code with added default_ and case_ meta-functions (for purely cosmetic feature, remove if uneeded). http://codepad.org/OOZ7riiy Here's a link to a sample usage. http://codepad.org/Vho6k97u" Joel Falcou Boost 1.36.0 2252 Doc or design problem function_types Boost 1.36.0 Boost 1.37.0 Bugs t_schwinger new 2008-08-25T07:25:37Z 2008-08-25T07:25:37Z " The library is designed to work well with other Boost libraries and uses well-accepted concepts introduced by Boost and TR1. Templates that encapsulate boolean or numeric properties define a static member constant called value. {{{ is_function_pointer< bool(*)(int) >::value // == true function_arity< bool(*)(int) >::value // == 1 }}} The problem is that having a nested static member constant called value is neither necessary nor sufficient to work with MPL. The approach that makes it work the most smoothly would derive the template specialization from an [http://www.boost.org/doc/libs/1_36_0/libs/mpl/doc/refmanual/integral-constant.html: MPL Integral Constant], but at ''least'' you need a nested {{{::type}}} member." Dave Abrahams Boost 1.36.0 2256 Function/signals needs ABI prefix and suffix headers function Boost 1.36.0 Boost 1.37.0 Bugs Douglas Gregor new 2008-08-25T18:22:34Z 2008-08-25T18:22:34Z Both Boost.Function and Boost.Signals need to include the ABI prefix and suffix headers in the appropriate places, to cope with projects that use non-default alignments. Douglas Gregor Boost 1.36.0 2258 Test annotation problems function_types Boost 1.36.0 Boost 1.37.0 Bugs t_schwinger new 2008-08-25T21:50:03Z 2008-08-25T21:51:01Z "With x86 linux gcc-4.0.1, I get this for the member_ccs test: member_ccs.cpp:17:5: error: #error ""test not supported with this compiler/platform"" and the test is annotated thusly: Not all compilers/platforms implement nonstandard calling conventions. With GCC/x86 this failure reflects http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328 . But the nonme the nonmember_ccs test *also* fails with the same error, and this annotation: Not all compilers/platforms implement nonstandard calling conventions. i.e. there is no reference to a GCC bug. Points: * The error message for member_ccs is inconsistent with the note about the gcc bug. * The function types library documentation barely mentions ""calling conventions"" and doesn't explain what ""nonstandard"" means in this context. For example, does extern ""C"" count? * Since I am running x86/GCC, the note about the GCC bug much more specific than the other part of the note, so I assumed that it applied. That would mean that my platform implements a nonstandard calling convention, but a compiler bug is causing the test to fail. * However, that interpretation would be inconsistent with the annotation for nonmember_ccs. * I suspect that my platform does not support nonstandard calling convention, and the bug only applies on platforms where GCC supports nonstandard calling conventions (e.g. Windows), and does not apply to me. If so, the annotation should be more specific about the platforms on which the note applies. * The error message should be better, e.g.: ""this platform does not support nonstandard calling conventions; the test is irrelevant here"" * A test that always succeeds when the platform doesn't support nonstandard calling conventions would yield far more reliable results than the overly general wildcard matching of failure annotations you have now, which makes a failure on any platform look as though it were expected in the testing chart. (Also posted to the boost list because I want to start a discussion about test markup there)" Dave Abrahams Boost 1.36.0 2314 Finish intrusive_ptr_test.cpp smart_ptr Boost 1.36.0 To Be Determined Bugs Peter Dimov new 2008-09-10T11:05:51Z 2011-02-24T22:06:43Z intrusive_ptr_test.cpp is incomplete and unfinished; it's missing, among other things, assignment tests, needed for #2312. Peter Dimov Boost 1.36.0 2319 "function::operator= should ""move"", copy assignment should have by-value argument" function Boost 1.36.0 Boost 1.37.0 Bugs Douglas Gregor new 2008-09-11T16:11:21Z 2012-09-05T20:28:52Z "A few days ago, I added a comment to ticket #1910 (regarding function::swap), suggesting to have boost::function's assignment operators calling its new ''move_assign'' member function, instead of calling ''swap''. Doing so would significantly improve its performance. Now I think that function::operator= deserves its own ticket, especially because the ''copy assignment'' of boost::function can be improved even more, by having its argument passed ''by value'', instead of creating a copy of the argument inside the body of the function. Doing so would allow the compiler to do copy elision, when its argument is an rvalue. See also [http://lists.boost.org/Archives/boost/2008/09/142106.php Improving the assignment operators of various Boost types] So please consider the attached patch. " niels_dekker Boost 1.36.0 2326 "Library does not directly support serializing data of type ""foo**""" serialization Boost 1.36.0 Boost 1.37.0 Bugs Robert Ramey assigned 2008-09-15T03:40:34Z 2008-09-18T15:44:22Z "The following example fails to compile, trying to find a .serialize() member function in an int*. Clearly the user can program around this, but serializing pointers-to-pointers seems a natural capability that should be in the library. #include #include ""boost/archive/text_oarchive.hpp"" class foo { friend class boost::serialization::access; template void serialize(archive& ar, const unsigned int version) { ar & BOOST_SERIALIZATION_NVP(buff); ar & BOOST_SERIALIZATION_NVP(ptr); } public: foo() : ptr(&buff[3]) {} int* buff[10]; int** ptr; }; int main() { foo f; std::ofstream serial(""serial""); boost::archive::text_oarchive oa(serial); oa << BOOST_SERIALIZATION_NVP(f); return 0; } " anonymous Boost 1.36.0 2348 const qualified return value in iterator_facade iterator Boost 1.36.0 Boost 1.37.0 Bugs jeffrey.hellrung new 2008-09-19T17:09:15Z 2012-11-21T19:41:56Z "This is a very minor thing: The line: {{{ boost::indirect_iterator it; }}} creating a iterator for constant iteration through a container of constant pointers creates a warning ""boost/iterator/iterator_facade.hpp:653: warning: type qualifiers ignored on function return type"" obviously this is not the way to fix it, but changing this line to typename remove_const::type>::type solves the problem. " brian.tyler@… Boost 1.36.0 2399 Python boost.mpi.Request.test() crashes mpi Boost 1.36.0 Boost 1.37.0 Bugs Douglas Gregor reopened 2008-10-09T21:02:05Z 2009-08-07T17:05:55Z "With the addition of the request_with_value type, the wrapper for request::test() was broken (can't convert optional to Python type). A fix: {{{ const object request_test(request &req) { ::boost::optional stat = req.test(); if (stat) return object(*stat); else return object(); } }}} and change the wrapper for Request to use &request_test instead of &cl::test. " dwchiang@… Boost 1.36.0 2555 "SIGTRAP received while calling a wrapped function with """"" python USE GITHUB Boost 1.36.0 Boost 1.38.0 Bugs Dave Abrahams reopened 2008-12-01T16:00:35Z 2008-12-23T09:20:15Z "We have a function that takes a std::string in parameter, and we wrap it using Boost.Python: void foo(string s) { cout << ""foo"" << endl; } BOOST_PYTHON_MODULE(mymodule) { def(""foo"", &foo); } When we call it under gdb, we receive a SIGTRAP signal (see attachment). Note that the problem disappears if the std::string is replaced by a const char* or if we pass a non-empty literal string. Also, it only appears under gdb, a normal run won't make the program crash. Here are the different platforms tested: * win32 - python2.2.3 - gcc3.4.5 - boost1.35 - gdb6.8 : KO * win32 - python2.5.2 - gcc3.4.5 - boost1.35 - gdb6.8 : KO * win32 - python2.5.2 - gcc3.4.5 - boost1.36 - gdb6.8 : KO * win32 - python2.5.2 - gcc4.2.1-sjlj - boost1.36 - gdb6.8 : KO * redhat 7.2 - python2.4. - gcc3.3.6 - boost1.35 - gdb5.0 : OK * ubuntu 8.10 - python2.5.2 - gcc4.3.2 - boost1.35 - gdb6.8: OK So the problem seems to be reproducible only with win32. Bruno" bruno dot lalande at gmail dot com Boost 1.36.0 2232 Documentation build needs to detect missing prerequisites Documentation Boost 1.36.0 To Be Determined Feature Requests No-Maintainer new 2008-08-20T11:04:05Z 2013-04-28T14:11:49Z "Building documentation requires a lengthy tool chain to work correctly. The following tools have to be installed: libxml2, libxslt, doxygen, docbook-xml42, docbook-xsl, tetex (?), ghostscript user-config.jam needs to supply usings for: xsltproc, boostbook with docbook-xsl and docbook/4.2, doxygen, quickbook Experience has shown that (1) even very experienced Boost developers can have missing tool chain items, and (2) missing tool chain items are very difficult to diagnose and repair because the current bjam setup does not issue meaningful error messages, produces partial documentation, and gives the appearance of working. The requested fix is twofold: * Specific error messages should be issued if the tool chain is not complete. The messages should distinguish between tools not being installed and user-config.jam not having all the required entires. The error messages should name the specific missing tool or missing user-config.jam entry. * If one of the above errors is detected, the process should stop at that point. Currently partial documentation is built, and that can be very misleading and time-consuming. If the tool chain is wrong, nothing at all should be built." Beman Dawes Boost 1.36.0 2400 Messages corrupted if isend requests are not retained mpi Boost 1.36.0 Boost 1.37.0 Feature Requests Matthias Troyer reopened 2008-10-09T21:16:30Z 2013-01-01T10:59:07Z "If I do a series of isends and discard the request objects (because I don't need to know when they complete), the messages can get corrupted. I realize this is the way the MPI library is designed, but I'm wondering if it possible to use some C++ goodness to make the request objects persist behind-the-scenes until the request is completed? The behavior is particularly unexpected in the Python layer. Thanks very much! " dwchiang@… Boost 1.36.0 2430 shared_mutex for win32 doesn't have timed_lock_upgrade thread Boost 1.36.0 To Be Determined Feature Requests viboes reopened 2008-10-22T19:43:10Z 2013-01-19T11:06:19Z The shared_mutex in boost/thread/win32/shared_mutex.hpp doesn't provide timed_lock_upgrade method while the POSIX counterpart does. Applies to 1.36, 1.37 (release in SVN) and trunk. Andrey.Semashev@… Boost 1.36.0 2487 Calculate the mlp::and_ or mpl_or of a sequence of nullary logical metafunctions. mpl Boost 1.36.0 Boost 1.38.0 Feature Requests Aleksey Gurtovoy new 2008-11-08T22:41:27Z 2010-06-12T16:46:25Z "Do you think that these two metafunctions have a place in mpl? template struct and_seq : boost::is_same >::type, typename mpl::end::type> {}; template struct or_seq : mpl::not_::type, typename mpl::end::type> > {}; I have attached the code and the tests." vicente.botet@… Boost 1.36.0 2297 Workaround for GCC bug mpl Boost 1.36.0 Boost 1.37.0 Patches Aleksey Gurtovoy new 2008-09-08T02:02:31Z 2011-04-11T08:28:20Z "This patch works around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28088, simplifies the code, and ''ought'' to speed up compilation a bit into the bargain by instantiating fewer templates. However, whether it breaks on any compilers other than GCC remains to be seen. Preprocessed headers need to be regenerated, of course. " Dave Abrahams Boost 1.36.0 2312 intrusive_ptr::operator= should have by-value argument smart_ptr Boost 1.36.0 To Be Determined Patches Peter Dimov new 2008-09-10T09:16:41Z 2011-02-24T22:11:26Z "When a copy assignment operator is implemented simply by doing copy-and-swap, it should pass its argument by value, instead of doing the copy inside the body of the function, to allow the compiler to do copy elision. As was discussed at the Boost developer mailing list, [http://lists.boost.org/Archives/boost/2008/09/142106.php Improving the assignment operators of various Boost types]. So please consider the attached patch." niels_dekker Boost 1.37.0 2539 advance() and distance() for new iterator concepts iterator Boost 1.37.0 Boost 1.38.0 Bugs jeffrey.hellrung new 2008-11-26T15:42:24Z 2016-02-22T02:25:30Z "I can't find a trace of a problem submitted by Sebastian Redl last year : http://lists.boost.org/Archives/boost/2007/09/127785.php In brief, the std version of advance() and distance() functions does not dispatch accordingly to the traversal_tag. For instance a transform_iterator is categorized as std::input_iterator_tag, boost::random_access_traversal_tag and the chosen distance() implementation is O(n) while O(1) is expected. The patch suggested by Sebastian works fine. The only thing is that names collides with Boost.Range (which already have boost::distance)." debionne@… Boost 1.37.0 2565 posix_chat_client.cpp does not work on mac os x asio Boost 1.37.0 To Be Determined Bugs chris_kohlhoff reopened 2008-12-04T21:38:50Z 2010-01-12T22:43:49Z "I am using Mac OS X 10.5 (Leopard), macbook pro and this example seems to be broken. when I run ./chat_server 12345 and in a different terminal on the same machine run ./posix_chat_client localhost 12345 the client exits immediately (instead of accepting input to send to the server which echos is back). the chat_client works fine however. Note that the source is in boost/libs/asio/examples/chat In similar code I get the error ""Operation not supported"" This same code works on linux (ubuntu 4.3.2) just fine. Same build flags. " kyle.tarplee@… Boost 1.37.0 2628 Sequence concept incorrectly fails for basic_string concept_check Boost 1.37.0 Boost 1.56.0 Bugs acharles assigned 2009-01-01T03:38:48Z 2014-02-21T09:24:23Z "The Sequence concept fails when tested against basic_string (e.g. BOOST_CONCEPT_ASSERT((Sequence)); ) because an extra constructor test is included. This test is for X a(n) where n is the size of the sequence to be created. However, section 23.1.1 table 67 of the C++ standard does not include this test in the definition of the Sequence concept. Because this test is in place, basic_string is rejected by the current implementation of the Sequence concept, since basic_string does not have this constructor. However, section 21.3 paragraph 2 of the C++ standard states, ""The class template basic_string conforms to the requirements of a Sequence, as specified in (23.1.1)."" The fix for this should be as simple as removing the test for a constructor of the form X a(n) in the Sequence concept implementation." Joel Lathrop Boost 1.37.0 2635 date_time input_facet formatting date_time Boost 1.37.0 Boost 1.38.0 Bugs az_sw_dude new 2009-01-05T13:02:35Z 2009-01-05T19:36:24Z "Hi, I've found a problem with the input_facet formating. The following format: ""%Y-%m-%d"" causes that the date: ""1999-1-01"" is allowed, but shouldn't be (month has to be in 2-digit format). See attached main.cpp file. It's a unit test clearly describing the problem. Tested on gcc 3.3.6 and 4.3.1. " tmmikolajczyk@… Boost 1.37.0 2640 Legal forward iterators cannot store their referents (was: counting_iterator::reference lifetime tied to iterator) iterator Boost 1.37.0 Boost 1.38.0 Bugs jeffrey.hellrung new 2009-01-05T20:54:53Z 2014-09-30T15:34:14Z "The iterators library needs a redesign based on the facts noted in [[#comment:2|this comment]] The original report is below. ---- Currently, counting_iterator::reference is Incrementable const&. This makes reverse_iterator< counting_iterator >::dereference return a reference to a temporary variable: typename super_t::reference dereference() const { return *boost::prior(this->base()); } The problem is that iterator::reference is expected to stay valid even if the iterator it was obtained from is dead." schoedl Boost 1.37.0 2676 CodeGear compile error when including utility/result_of.hpp result_of Boost 1.37.0 Boost 1.38.0 Bugs Douglas Gregor new 2009-01-23T18:45:24Z 2013-04-13T16:51:06Z "CodeGear fails to compile utility/result_of.hpp instead of gracefully degrading to the version for compilers without ISO decltype --apparently CodeGear has a decltype which is not ISO conformant, leading to the problem. See complete discussion at http://lists.boost.org/Archives/boost/2009/01/147163.php Daniel Walker provides a patch for this problem (attached.) I'm initially assigning this to Doug Gregor, but Daniel is CCed just in case he wants to reassign to himself." Joaquín M López Muñoz Boost 1.37.0 2718 local_date_time noticeably faster than ptime date_time Boost 1.37.0 To Be Determined Bugs az_sw_dude new 2009-02-03T09:14:18Z 2009-02-03T09:14:18Z "We noticed recently that using a local_date_time in tight loops was several times faster than using a ptime object. As these are both based largerly on the same template code this was a surprise. It appears this is caused by the implementation of the operater+=/-= and was wondering if there was any justification for the difference or if this was just an oversight. {{{ #!cpp //.\boost\date_time\local_time\local_date_time.hpp local_date_time_base operator+=(const time_duration_type& td) { this->time_ = time_system_type::add_time_duration(this->time_,td); return *this; } }}} {{{ #!cpp //.\boost\date_time\time.hpp time_type operator+=(const time_duration_type& td) { time_ = (time_system::get_time_rep(date(), time_of_day() + td)); return time_type(time_); } }}} It looks like the ptime implementation is doing extra work to split the ptime into date and time_duration components and if it is changed to follow a similar pattern to that used in the local time the performance is then indistinguishable. {{{ #!cpp //.\boost\date_time\time.hpp time_type operator+=(const time_duration_type& td) { this->time_ = time_system::add_time_duration(this->time_, td); return time_type(time_); } }}} I can only think that maybe this was done to work around an issue and in which case should the same then be applied to the local time implementation? [http://www.nabble.com/user/SendEmail.jtp?type=user&user=627065 email via nabble]" oneill1979 Boost 1.37.0 2732 boost bjam install respects umask build Boost 1.37.0 Boost 1.38.0 Bugs Vladimir Prus assigned 2009-02-05T21:19:52Z 2009-11-10T08:17:53Z "Using bjam to install boost 1.37 the install procedure respects the current umask of the user. This is not the expected behaviour. Other software install routines usually make sure to set the file modes explicitly (for example they use the unix program 'install'). Thus, if you have a umask like 0077 you have by default a boost installation which is only readable by yourself. Again, no other 'make install' or such command behaves like this. I used this command line to install boost under Solaris 10: ./tools/jam/src/bin.solaris/bjam -sICU_PATH=/usr --user-config=user-config.jam --with-test --with-program_options address-model=64 -d3 --prefix=myprefix install " gsauthof@… Boost 1.37.0 2960 Composing argument pack formed with positional arguments, using the comma operator parameter Boost 1.37.0 To Be Determined Bugs Daniel Wallin new 2009-04-19T16:33:51Z 1970-01-01T00:00:00Z "Due to a bug (or perhaps my misusage), I am unable to compose two argument packs, each formed using positional arguments, using the comma operator. news://news.gmane.org:119/grtmb9$tpq$1@ger.gmane.org Compiler : i686-apple-darwin9-gcc-4.0.1 BOOST_PARAMETER_KEYWORD(tag, x) BOOST_PARAMETER_KEYWORD(tag, y) template void f(ArgumentPack const & args){ double x_val = args[x]; double y_val = args[y]; } typedef boost::parameter::parameters< parameter::required > par_x_t; typedef boost::parameter::parameters< parameter::required > par_y_t; double x_val = 9.0; double y_val = 0.1; spec_x_t spec_x; spec_y_t spec_y; f( ( spec_x(x_val),spec_y(y_val)) ); //no match operator[::x] " e_r Boost 1.37.0 3054 boost::python doesn't support implicit intrusive_ptr casts python USE GITHUB Boost 1.37.0 Boost 1.40.0 Bugs troy d. straszheim new 2009-05-20T12:52:44Z 2013-02-06T08:18:30Z "See http://mail.python.org/pipermail/cplusplus-sig/2007-February/011651.html for code that solves this. (the boostPatch namespace contents) I couldn't find anything on Boost.Python in the release notes for 1.38 or 1.39, so I assume it's still in there. Also, for those who need this before it's included in boost::python::class_, a better use of the functions (than the typedeffing in the post above) is: {{{ #!cpp template class myclass : boost::python::class_ { public: template myclass(const char* name, const Constructor& t) : boost::python::class_(name, t) { boostPatch::register_intrusive_ptr_from_python_and_casts( (T *)0, metadata::bases() ); } }; }}} " macke@… Boost 1.37.0 3967 Parsing dates using date_input_facet accepts wrong input date_time Boost 1.37.0 Boost 1.43.0 Bugs az_sw_dude new 2010-03-01T13:17:41Z 2013-06-08T19:41:16Z "Hi! I got no answer on the ML, but I consider this a bug. With the code below I try to automagically determine the date format found in input files. I'd expect the code below to find the date format ""%d.%m.%Y"" for ""05.02.2008"", but I got surprised by obtaining ""%m/%d/%Y"". It seems like date accepts '.' where I said ""expect '/'"", so I think this should be changed. #include #include #include #include #include #include #include #include inline std::string determine_date_format(std::string const & s) { using namespace boost::assign; using namespace boost::gregorian; std::list possible_formats = // TODO: add others here! list_of (""%Y-%m-%d"")(""%Y/%m/%d"")(""%m/%d/%Y"")(""%d.%m.%Y""); bool inform_user = false; BOOST_FOREACH(std::string const & format, possible_formats) { if (inform_user) { std::cout << ""Trying format '"" << format << ""' ..."" << std::endl; } try { date_input_facet * input_facet = new date_input_facet(format.c_str()); std::istringstream iss(s); iss.imbue(std::locale(iss.getloc(), input_facet)); date d(not_a_date_time); iss >> d; if (!iss.fail() && (!d.is_not_a_date())) { return format; } std::cout << ""WARNING: date format '"" << format << ""' does not match '"" << s << ""'."" << std::endl; inform_user = true; } catch(...) { } } std::cout << ""WARNING: date format not recognized. "" << ""Please reconfigure your measurement equipment "" << ""to ISO standard output!"" << std::endl; return """"; } int main() { std::string the_date = ""05.02.2008""; std::string format = determine_date_format(the_date); std::cout << the_date << "" has date-time-format "" << format << std::endl; return 0; } " anonymous Boost 1.37.0 2674 request to make BOOST_PARAMETER_MAX_ARITY re-defineable parameter Boost 1.37.0 Boost 1.38.0 Feature Requests Daniel Wallin new 2009-01-23T14:59:29Z 2014-10-30T19:14:38Z I'd like to be able to increase BOOST_PARAMETER_MAX_ARITY in my library header if needed, and then include the Boost.Parameter library without worrying that the user might have already included Boost.Parameter headers and thus made my attempt to increase the max arity futile. I believe the Boost.Function library has this feature. My use case is trying to apply Boost.Parameter to the boost::signals2::signal class, which currently has 7 template type parameters (but BOOST_PARAMETER_MAX_ARITY defaults to 5). Frank Mori Hess Boost 1.37.0 2692 No concepts supporting the idea of dense uBLAS Boost 1.37.0 To Be Determined Feature Requests Gunter assigned 2009-01-28T20:51:45Z 2009-06-18T08:01:37Z "data() returns a reference to a Storage. However, nowhere in the concepts is a statement saying that &m.data()[0] must to be the address of the first element of the linearly stored data in the Storage. The adjective ""dense"" is used all over, but nowhere is this term given any operational guarantees. Without such guarantees, all the interfaces in, say, the numerics::binding libraries are being built on sand. Related to this is that nothing requires unbounded_array::value_type to be T. The problem boils down to the ublas concepts documentation borrowing from the stl vector concepts which are general enough to support vector. The basic (and inadequate) change is the sprinkling around of the word dense and the phrase ""strict linear order"". Instead you need to explicitly says things like value_type is T and &v[i+j] == &v[i]+j (for reasonable i+j)." dougrm@… Boost 1.37.0 2726 better control over error-handling in Accumulators accumulator Boost 1.37.0 To Be Determined Feature Requests Eric Niebler new 2009-02-04T17:24:19Z 2009-02-04T17:24:19Z "Ticket #2671 describes a scenario where accumulators causes an integral overflow. The simple solution there is to use doubles, but the larger issue is how to accommodate both fast, unchecked integral arithmetic and slower checked arithmetic. This is an open design issue, and it probably makes sense to come up with a uniform solution across all math-related libraries in Boost. " Eric Niebler Boost 1.37.0 2730 Boostbook might place many authors on one line? Documentation Boost 1.37.0 To Be Determined Feature Requests No-Maintainer new 2009-02-05T12:22:26Z 2012-11-08T11:18:09Z "I note that many Boost libraries have many authors. For example the math library, where the seven authors (so far) are listed separately, half of page one is a list of authors, rather widely spaced. The Boost.Traits library ducks the issue by saying 'various authors', but listing them all in the copyright. This doesn't seem ideal. (If we output bibliographic info in future, we also want to be sure that all authors are specified, so putting ""various authors"" will output ""various authors"" as the authors!) So could the authors be better placed on one line? (I also note that the ""Distributed under the Boost Software License, ..."" is in a larger font that I think it need to be?) " Paul A. Bristow Boost 1.37.0 2833 extract result during initialization accumulator Boost 1.37.0 Boost 1.39.0 Feature Requests Eric Niebler new 2009-03-05T20:26:40Z 2009-03-05T20:26:40Z "This is a follow up to: news://news.gmane.org:119/goeic6$q4t$1@ger.gmane.org where I asked : I have an accumulator (a) that takes an initial value (x_), and another (b), whose initial value (x_) depends on that of (a). I would have thought that this is feasible because accumulator_set initializes (a) before (b), but apparently b.x_ is initialized with a garbage value. " e_r Boost 1.37.0 6096 Consider __GNUC__ in and.hpp / or.hpp mpl Boost 1.37.0 To Be Determined Feature Requests Aleksey Gurtovoy new 2011-11-04T22:36:59Z 2011-11-04T22:36:59Z "In boost mpl header files - ""and.hpp"" and ""or.hpp"", we try to undef macros from is0646.h under Windows for processing boost headers. I see that we excluse GCCXML tool under this condition. Since we widely use mingw's 'cpp' to generate dependency files, can we also include __GNUC__ macro as part of this condition? I am attaching the patch for this case." Karthik Rajagopalan Boost 1.38.0 2792 HP aCC rejects string_parse_tree <> in string_parse_tree.hpp date_time Boost 1.38.0 To Be Determined Bugs az_sw_dude new 2009-02-22T10:11:13Z 2013-03-10T17:27:15Z "When trying to use date_time's format_date_parser<> I get errors on string_parse_tree<> template instantiation. The error message says ""incomplete type is not allowed"", the exact compiler version is HP C/aC++ B3910B A.06.20. The core reason for the error is that string_parse_tree<> includes the definition of ""ptree_coll"" and several typedefs above it: template struct string_parse_tree { ... typedef std::multimap ptree_coll; ... typedef typename ptree_coll::value_type value_type; typedef typename ptree_coll::iterator iterator; ... ptree_coll m_next_chars; .. }; AFAIK this is not guaranteed to work by the current C++ standard, because string_parse_tree<> is, generally speaking, incomplete at the point of instantiation of ptree_coll. I asked at comp.lang.c++.moderated, and these are the replies: http://groups.google.ru/group/comp.lang.c++.moderated/browse_thread/thread/f04915083b8f0f93/a11c78689cffb71b " Max Zinal Boost 1.38.0 2793 function types don't work for named template type parameters parameter Boost 1.38.0 Boost 1.39.0 Bugs Daniel Wallin new 2009-02-22T17:16:59Z 2013-01-30T02:19:47Z "See this thread for a more detailed description: http://www.nabble.com/-parameter--function-types-as-named-template-parameters--td21614543.html Dave Abrahams posted a patch for this problem to the mailing list, I will attach it to this ticket." Frank Mori Hess Boost 1.38.0 2801 gregorian_calendar_base: incorrectly assumes that sizeof(int)==sizeof(long) date_time Boost 1.38.0 To Be Determined Bugs James E. King, III assigned 2009-02-25T20:54:04Z 2018-01-18T14:19:55Z "boost::date_time::gregorian_calendar_base() returns an int, but uses several local variables of type unsigned long, leading to warnings about possible loss of data when converting from unsigned long to int on 64 bit OSes that use the LP64 data model. Here is a rewrite of the function that generates no warnings when compiled with -Wshorten-64-to-32 under GCC 4.0.1 on Mac OS 10.5: {{{ template BOOST_DATE_TIME_INLINE int gregorian_calendar_base::week_number(const ymd_type& ymd) { date_int_type_ julianbegin = julian_day_number(ymd_type(ymd.year,1,1)); date_int_type_ juliantoday = julian_day_number(ymd); date_int_type_ day = (julianbegin + 3) % 7; date_int_type_ week = (juliantoday + day - julianbegin + 4)/7; if ((week >= 1) && (week <= 52)) { return static_cast(week); } if ((week == 53)) { if((day==6) ||(day == 5 && is_leap_year(ymd.year))) { return static_cast(week); //under these circumstances week == 53. } else { return 1; //monday - wednesday is in week 1 of next year } } //if the week is not in current year recalculate using the previous year as the beginning year else if (week == 0) { julianbegin = julian_day_number(ymd_type(static_cast(ymd.year-1),1,1)); juliantoday = julian_day_number(ymd); day = (julianbegin + 3) % 7; week = (juliantoday + day - julianbegin + 4)/7; return static_cast(week); } return static_cast(week); //not reachable -- well except if day == 5 and is_leap_year != true } }}} " pelee@… Boost 1.38.0 2804 Add Some Missing Items to the Date_Time Tests date_time Boost 1.38.0 Boost 1.39.0 Bugs az_sw_dude new 2009-02-27T03:30:07Z 2009-02-27T03:36:32Z The attached patch adds five missing tests to ''\libs\date_time\test\gregorian\testdate.cpp'' program. They demonstrate a pitfall in the use of the Date_Time comparison operators. Charles Brockman Boost 1.38.0 2805 Add Documentation to Date_Time to Highlight a Pitfall date_time Boost 1.38.0 Boost 1.39.0 Bugs az_sw_dude new 2009-02-27T03:34:27Z 2009-02-27T03:34:27Z "A note should be added to the Date_Time documentation to warn programmers of a pitfall in the use of the comparison operators. Comparison of a valid date with not_a_date_time may return an unexpected result. In the expression, ''date A < date B'' if A is a valid date and B is ''not_a_date_time'', a Boolean true is returned. A programmer may expect that any comparison of valid date with ''not_a_date_time'' always returns false. In some cases it will return true. In the ''\libs\date_time\xmldoc\date_class.xml'' file in the Operator table of the Gregorian Date System section I suggest the following text. ''Warning: Some comparisons of valid dates and not_a_date_time will return true. See the \libs\date_time\test\gregorian\testdate.cpp program for illustrations of the comparisons.'' The tests for the various comparisons are included in a patch contained in Trac #2804. " Charles Brockman Boost 1.38.0 2812 Tutorial example errors parameter Boost 1.38.0 Boost 1.39.0 Bugs Daniel Wallin new 2009-02-28T09:45:42Z 2009-02-28T09:45:42Z "In the tutorial for Boost parameter there are a number of documentation errors in section 2.1.2 when initially giving the depth_first_search example. 1) The example says ""depth_first_search algorithm is a generic function accepting from one to four arguments by reference"" but clearly the generic function takes 5 arguments with some by value. 2) The third argument listed in the prototype is given as ""typename graph_traits::vertex_descriptor root_vertex"" but probably should be ""typename graph_traits::vertex_descriptor root_vertex"" as there is no 'g' argument in the prototype. These are cosmetic documentation changes which should be made to allow someone who wants to understand the tutorial correctly to do so. " Edward Diener Boost 1.38.0 2838 MPI Python bindings not installed correctly mpi Boost 1.38.0 Boost 1.46.0 Bugs Matthias Troyer assigned 2009-03-09T09:22:55Z 2012-11-03T23:51:39Z "I've successfully built and installed boost.MPI and the Python bindings in my home dir. Unfortunately, the Python module ""mpi.so"" is installed directly in the lib/-path as all the other Boost libs. When setting the PYTHONPATH to point to this location, the boost.mpi python bindings are accessible only via ""import mpi"" from within Python, and not via ""import boost.mpi"", as described in the docs at http://www.boost.org/doc/libs/1_38_0/doc/html/mpi/python.html I think that the Python modules should go to a sudirectory ""boost"" in the lib path, or it should be fixed in the documentation. Otherwise, the boost.mpi Python bindings are gorgeous!" lenzo@… Boost 1.38.0 2881 Macros conflict: BOOST_HAS_FTIME and BOOST_NO_GETSYSTEMTIMEASFILETIME date_time Boost 1.38.0 Boost 1.39.0 Bugs az_sw_dude new 2009-03-23T19:19:18Z 2011-07-13T18:08:22Z "There are two macros related to the WinAPI FILETIME-related functions: BOOST_HAS_FTIME and BOOST_NO_GETSYSTEMTIMEASFILETIME. The first one is documented as the one that is defined if the GetSystemTimeAsFileTime API is available, whereas the second one is defined when it's not (while other functions and the FILETIME type itself are available). On Windows Mobile it is possible to get both these macros defined, which is quite contradictory to the documentation. I believe, docs and tests should be corrected so that BOOST_HAS_FTIME is defined if the FILETIME type is available, and BOOST_NO_GETSYSTEMTIMEASFILETIME is only defined when the GetSystemTimeAsFileTime function is not available. A quick search shows that these macros are only used in Boost.DateTime and in the described meaning." Andrey Semashev Boost 1.38.0 2883 Boost::signals compile problem with GCC 3.4.5 signals Boost 1.38.0 Boost 1.39.0 Bugs Douglas Gregor new 2009-03-23T23:51:19Z 2013-06-12T21:46:23Z "I get the following error when trying to use boost sigals with GCC 3.4.5 for arm: {{{ In file included from /home/tk/centidev/target/staging/include/boost/signals/detail/signal_base.hpp:15, from /home/tk/centidev/target/staging/include/boost/signals/signal_template.hpp:23, from /home/tk/centidev/target/staging/include/boost/signals/signal0.hpp:24, from /home/tk/centidev/target/staging/include/boost/signal.hpp:19, from TableScoreboard.h:4, from TableAssembler.cpp:3: /home/tk/centidev/target/staging/include/boost/signals/detail/named_slot_map.hpp: In member function `boost::signals::detail::connection_slot_pair& boost::signals::detail::named_slot_map_iterator::dereference() const': /home/tk/centidev/target/staging/include/boost/signals/detail/named_slot_map.hpp:114: error: invalid initialization of reference of type 'boost::signals::detail::connection_slot_pair&' from expression of type 'const boost::signals::detail::connection_slot_pair' }}} Thomas" tk@… Boost 1.38.0 2888 python static linking must use defaults for dl and pthread python USE GITHUB Boost 1.38.0 Boost 1.39.0 Bugs Dave Abrahams new 2009-03-26T15:35:55Z 2009-03-26T15:35:55Z "When statically linking boost.python, you will get errors when it also tries to statically link libdl and and pthread.[[BR]] The solution is to change a line in boost_1_38_0/tools/build/v2/tools/python.jam[[BR]] line 657 from case * : return pthread dl[[BR]] to[[BR]] case * : return [[BR]] " niklas@… Boost 1.38.0 2896 Gregorian date input facet do not handle every string form date_time Boost 1.38.0 Boost 1.39.0 Bugs az_sw_dude new 2009-03-27T12:43:12Z 2009-03-27T12:43:12Z "boost::gregorian::date_input_facet do not follow other date facet schems (like local_time_input_facet). The folowing test case can be used to reproduce the trouble." anonymous Boost 1.38.0 2901 Resizing banded matrices uBLAS Boost 1.38.0 Boost 1.42.0 Bugs Gunter new 2009-03-31T15:22:21Z 2009-10-05T22:16:55Z "Similar to #1237 but with banded matrices. When resizing a banded matrix with preserve set to true, I get {{{ Check failed in file /home/britter/include/boost/numeric/ublas/storage.hpp at line 195: i < size_ terminate called after throwing an instance of 'boost::numeric::ublas::bad_index' what(): bad index }}} See attached program. " Burkhard Ritter Boost 1.38.0 2904 boost::date_time io fails simple back-and-forth test date_time Boost 1.38.0 Boost 1.39.0 Bugs az_sw_dude new 2009-04-02T21:18:24Z 2009-04-02T22:44:08Z "set up a stringstream and use boost::io facets to specify a time format. Sent a time_t from a known time through it to get a string (converting to posix_time along the way), then back through to to get a time, and back through to get a string. The string results should always match, and the time_t results always match. Both tests fail. stringstream>> operator does not seem to modify the supplied instance of class boost::posix_time. " mgl@… Boost 1.38.0 2909 [Fix in git] Wrong type signatures? python USE GITHUB Boost 1.38.0 Boost 1.39.0 Bugs troy d. straszheim new 2009-04-03T13:11:45Z 2009-10-12T22:44:10Z "In python/converter/builtin_converters.hpp, I found these lines: BOOST_PYTHON_TO_PYTHON_BY_VALUE(signed BOOST_PYTHON_LONG_LONG, ::PyLong_FromLongLong(x), &PyInt_Type) BOOST_PYTHON_TO_PYTHON_BY_VALUE(unsigned BOOST_PYTHON_LONG_LONG, ::PyLong_FromUnsignedLongLong(x), &PyInt_Type) and, BOOST_PYTHON_TO_PYTHON_BY_VALUE(std::wstring, ::PyUnicode_FromWideChar(x.data(),implicit_cast(x.size())), &PyString_Type) Seems it is a typo. Should the PyInt_Type be PyLong_Type, and the PyString_Type be PyUnicode_Type? These macro argument is used for generate the return value of get_pytype(). And seems get_pytype() is only used to generate docstring. So there's accutally no problem caused by these. But, should these be typo? If so, we'd better fix it. Thanks!" Haoyu Bai Boost 1.38.0 2928 Some relational operators are not listed in synopsis optional Boost 1.38.0 Boost 1.39.0 Bugs Fernando Cacciola new 2009-04-08T18:29:25Z 2013-02-16T00:53:25Z "Direct comparison between optional and T has been supported since Boost 1.34. But such operators are not listed in synopsis in the latest docs. They were added to optional.html in r37126. But they seems to have been missed in r43247. " Kazutoshi Satoda Boost 1.38.0 2939 Possible thread-safety issue with Boost Function function Boost 1.38.0 Boost 1.39.0 Bugs Douglas Gregor new 2009-04-12T04:56:21Z 2009-04-12T04:56:21Z "Hi, I realize this might slip through the mailing lists so I am posting it here: http://article.gmane.org/gmane.comp.lib.boost.devel/188442 I was just looking through the Boost Function source and noticed the following in assign_to: {{{ // Note: it is extremely important that this initialization use // static initialization. Otherwise, we will have a race // condition here in multi-threaded code. See // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/. static vtable_type stored_vtable = { { &manager_type::manage }, &invoker_type::invoke }; }}} However, my copy of the C++ standard seems to say this regarding local statics in section 6.7: The zero-initialization (8.5) of all local objects with static storage duration (3.7.1) is performed before any other initialization takes place. A local object of POD type (3.9) with static storage duration initialized with constant-expressions is initialized before its block is first entered. An implementation is permitted to perform early initialization of other local objects with static storage duration under the same conditions that an implementation is permitted to statically initialize an object with static storage duration in namespace scope. I read this to mean that an implementation may decide to initialize stored_vtable statically or the first time the block is entered. So I think that this means we cannot rely on static initialization behaviour. If you agree, then a simple fix for this might just be: {{{ template struct vtable_static_constructor { static VTable vtable; }; template<...> VTable vtable_static_constructor::vtable = { {&Manager::manage, &Manager::invoke } }; assign_to() { ... vtable_type & stored_vtable = vtable_static_constructor::vtable; ... } }}} If not, could you please point me to where in the standard this is guaranteed to be statically initialized? It would help me decide whether or not to fix some other code that has a similar pattern, if nothing else. Thanks in advance! " boost-trac@… Boost 1.38.0 2944 boost::archive::xml_iarchive hangs, if BOOST_SP_USE_PTHREADS used serialization Boost 1.38.0 Boost 1.39.0 Bugs Joel de Guzman new 2009-04-13T21:53:51Z 2009-04-20T19:36:29Z "I use 'BOOST_SP_USE_PTHREADS' option, with serialization library. When I try to create xml_iarchive, application hangs. Reproduced on: x86_64 Gentoo Linux, x86_64-pc-linux-gnu-4.3.3, glibc: 2.9_p20081201 ARM (Openmoko toolchain): gcc 4.1.2, glibc: 2.6.1 Also tried: x32 Gentoo Linux, i686-pc-linux-gnu-4.1.2, glibc: 2.6.1 - works perfectly, without hangs. Backtrace while the application hang: 0x00007ffb03bf3414 in __lll_lock_wait () from /lib/libpthread.so.0 (gdb) bt #0 0x00007ffb03bf3414 in __lll_lock_wait () from /lib/libpthread.so.0 #1 0x00007ffb03beec50 in _L_lock_55 () from /lib/libpthread.so.0 #2 0x00007ffb03bee53e in pthread_mutex_lock () from /lib/libpthread.so.0 #3 0x0000000000427c43 in boost::detail::sp_counted_base::release (this=0x672140) at /home/distr/boost/x86_64_boost_1_38_0/include/boost-1_38/boost/detail/sp_counted_base_pt.hpp:91 #4 0x0000000000433189 in boost::archive::basic_xml_grammar::init_chset () #5 0x0000000000440ff1 in boost::archive::basic_xml_grammar::basic_xml_grammar () #6 0x0000000000432035 in boost::archive::xml_iarchive_impl::xml_iarchive_impl () #7 0x0000000000427b81 in xml_iarchive (this=0x7fff0d07b840, is=@0x7fff0d07b630, flags=0) at /home/distr/boost/x86_64_boost_1_38_0/include/boost-1_38/boost/archive/xml_iarchive.hpp:119 #8 0x00000000004272fb in test_xmlArchive () at /home/remote_projects/fl-dict/src/test/boost_archive_load_test.cpp:43 #9 0x00000000004273fb in main (argc=1, argv=0x7fff0d07b9c8) at /home/remote_projects/fl-dict/src/test/boost_archive_load_test.cpp:15 " highcatland@… Boost 1.38.0 2990 [fix in git] boost::python::detail::caller implementation should use mpl::deref while fiddling with the signature sequence python USE GITHUB Boost 1.38.0 Boost 1.39.0 Bugs Dave Abrahams new 2009-05-05T05:37:13Z 2009-10-20T02:58:56Z "In boost/python/detail/caller.hpp, to get at the various elements of the call signature sequence, the code directly uses Sig_iterator::type to access the element. This has a side effect of not allowing mpl::list to be used as the sequence, even though it is an MPL front extensible sequence (stated as required for the signature argument of, say, make_function). The solution is to use mpl::deref::type instead of Sig_iterator::type." LiJie Wong Boost 1.38.0 3044 mpl::aux_::iter_fold_if_impl allows deref l_end mpl Boost 1.38.0 Boost 1.40.0 Bugs Aleksey Gurtovoy new 2009-05-18T16:06:03Z 2009-06-06T11:07:10Z "The mpl::aux_::iter_fold_if_impl template: https://svn.boost.org/trac/boost/browser/trunk/boost/mpl/aux_ /iter_fold_if_impl.hpp allows deref'ing of an end iterator. The problem is most easily shown with list because deref is not possible. Apparently, deref of an end iterator from other sequences (e.g. vector or range_c) allow deref of an end iterator. The attached: iter_fold_if_bkprotect.zip illustrates the problem. The attached: iter_fold_if_bkprotect2.zip illustrates the cause. The attached: while.cpp illustrates a solution. However, the while.cpp suffers from the template instantiation depth problem described here: http://www.mywikinet.com/mpl/paper /mpl_paper.html#sequences.unrolling More (*maybe* helpful) details can be found at the following boost ml thread: http://thread.gmane.org/gmane.comp.lib.boost.devel/187289 " cppljevans@… Boost 1.38.0 3077 Reverse iterator compile-time bug in multi_array multi_array Boost 1.38.0 Boost 1.40.0 Bugs Jeremiah Willcock assigned 2009-05-25T10:47:28Z 2010-06-08T22:51:47Z "I'm having some trouble iterating over a 2-dimensional multi_array in reverse order. I'm using boost 1.38 with gcc-4.2.4 and the following code won't compile with the error given below: {{{ #include template< typename It > void iterate_over( It begin, It end ) { while( end != begin ) { begin->end() - begin->begin(); ++begin; } } void test() { boost::multi_array< double, 2 > m; iterate_over( m.begin(), m.end() ); // works fine iterate_over( m.rbegin(), m.rend() ); // causes error } }}} This looks to me like a bug in the implementation of the reverse iterator for multi_array. Am I wrong? It is only a problem when iterator::operator-> is used. The (*begin). notation works fine. /home/john/Dev/ThirdParty/boost/boost_1_38_0/boost/iterator/iterator_facade.hpp: In static member function ‘static typename boost::mpl::if_, Pointer, boost::detail::operator_arrow_proxy >::type boost::detail::operator_arrow_result::make(Reference) [with ValueType = boost::multi_array >, Reference = boost::detail::multi_array::sub_array, Pointer = boost::multi_array >*]’: /home/john/Dev/ThirdParty/boost/boost_1_38_0/boost/iterator/iterator_facade.hpp:648: instantiated from ‘typename boost::detail::operator_arrow_result::value_type, Reference, typename boost::detail::iterator_facade_types::pointer>::type boost::iterator_facade::operator->() const [with Derived = boost::reverse_iterator, boost::detail::multi_array::sub_array > >, Value = boost::multi_array >, CategoryOrTraversal = boost::detail::iterator_category_with_traversal, Reference = boost::detail::multi_array::sub_array, Difference = long int]’ src/sandbox/seqan_sandbox.cpp:12: instantiated from ‘void iterate_over(It, It) [with It = boost::reverse_iterator, boost::detail::multi_array::sub_array > >]’ src/sandbox/seqan_sandbox.cpp:22: instantiated from here /home/john/Dev/ThirdParty/boost/boost_1_38_0/boost/iterator/iterator_facade.hpp:326: error: no matching function for call to ‘implicit_cast(boost::detail::multi_array::sub_array*)’ " John Reid Boost 1.38.0 3112 Tag object initialization not guaranteed legal parameter Boost 1.38.0 Boost 1.40.0 Bugs Daniel Wallin new 2009-05-29T17:53:00Z 2009-05-29T18:31:49Z We should be using this technique: http://tinyurl.com/threadsafe-static-globals Dave Abrahams Boost 1.38.0 3128 comma operator not in reference docs parameter Boost 1.38.0 Boost 1.40.0 Bugs Daniel Wallin new 2009-06-03T17:10:27Z 2009-06-03T17:10:27Z It should be described there. Dave Abrahams Boost 1.38.0 3313 Excessive line length in vector200.hpp typeof Boost 1.38.0 Bugs Peder Holt new 2009-08-03T18:50:50Z 2009-08-03T18:50:50Z The file vector200.hpp, which appears to be an auto-generated file, does not import into the ClearCase configuration management tool properly due to excessive line length. This was observed when using ClearCase on Windows for configuration management of a software project using Boost. ClearCase has a documented per line import maximum of 8000 characters for text files (refer to http://www.ibm.com/developerworks/rational/library/4704.html). In general files with lines exceeding 100+ characters are undesirable for a number of reasons. Since this file appears to be auto-generated, it should be generated such that the lines are much shorter so the file is more compatible with CM tools and other editors that may have troubles with the line length. Lisa Preston Boost 1.38.0 4011 Strange bug may be associated with rounded_transc_opp policy interval Boost 1.38.0 To Be Determined Bugs Boris Gubenko new 2010-03-15T19:54:19Z 2010-06-04T07:35:22Z "When I evaluate the following expression: a = Interval(1.0, 3.0)[[BR]] exp( a * log(0.001) )[[BR]] I receive the result [nan ~ nan] when I select the rounded_transc_opp policy. However, if I select the rounded_transc_exact all goes well and I receive the expected result: [1E-9 ~ 0.001] If I select the rounded_transc_opp policy and evaluate the expression:[[BR]] exp( a * log(0.0001) ) all works well and I receive the expected result: [1E-12 ~ 0.0001] also works well for:[[BR]] exp( a * log(0.0011) ) but not with:[[BR]] exp( a * log(0.00101) ) I hope that someone can look at this problem, since this is really a very strange situation. Keep up with this excellent work and best regards... Vitor " Vitor Vieira Lopes Boost 1.38.0 4612 Boolean type restriction not working parameter Boost 1.38.0 To Be Determined Bugs Daniel Wallin new 2010-08-30T04:18:39Z 2010-08-30T14:38:07Z "The type restriction isn't being enforced for Boolean variables. A code example can be found in this boost thread. http://old.nabble.com/-parameter--Weird-behavior-with-bools-td29539068.html" Ryan McConnehey Boost 1.38.0 4613 Default value for optional Boolean type not being created. parameter Boost 1.38.0 To Be Determined Bugs Daniel Wallin new 2010-08-30T05:32:06Z 2010-08-30T05:32:06Z "If a default Boolean value isn't used in extracting the value from the ArgumentPack a compile error occurs. That means that this code compiles ""m_name(args[_name | false])"" but ""m_name(args[_name])"" doesn't. A code example can be found in this boost thread. http://old.nabble.com/-parameter--Weird-behavior-with-bools-td29539068.html" Ryan McConnehey Boost 1.38.0 6746 Boost fails to build 64-bit on Solaris sparc with toolset=gcc build Boost 1.38.0 To Be Determined Bugs Vladimir Prus new 2012-03-29T21:24:55Z 2013-01-03T17:56:54Z "Boost 1.38.0 is needed in order to build PowerDNS, as PowerDNS specifically looks for libboost_program_options_*gcc*.so. I have tried each and every permutation to convince the Boost build system that it is really OK to use GCC on the sparc platform with Solaris's linker and assembler, but to no avail. The following is used: tools/jam/src/bin.solaris/bjam -d4 -j2 --without-mpi --toolset=gcc --prefix=/opt/boost --libdir=/opt/boost/lib/64 address-model=64 cxxflags=-m64 linkflags=-m64 ...and here is one of many identical failures during the build process: ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthreads -fPIC -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/math/build/gcc-3.4.3/release/address-model-64/threading-multi/expm1.o"" ""libs/math/build/../src/tr1/expm1.cpp"" /usr/ccs/bin/as: error: unknown option '-' /usr/ccs/bin/as: error: unknown option 't' /usr/ccs/bin/as: error: unknown option 'aditional-format' /usr/ccs/bin/as: error: unknown option '6' /usr/ccs/bin/as: error: unknown option '4' /usr/ccs/bin/as: error: unknown option 'A' /usr/ccs/bin/as: error: unknown option '9' usage: /usr/ccs/bin/as [-V] [-Q{y,n}] [-q] [-s] [-S] [-K {pic,PIC}] [-o objfile] [-L] [-T] [-P [[-Yc,path] [-Ipath] [-Dname] [-Dname=def] [-Uname]]...] [-m [-Ym,path]] [-n] [-ul] [-xF] [-m32] [-m64] [-xarch={v7,v8,v8a,v8plus,v8plusa,v8plusb,v9,v9a,v9b,sparc,sparcvis,sparcvis2,sparcvis3,sparcfmaf,sparcima}] [-xcode={pic13,pic32}] file.s... 0.000129 sec system; 0.003178 sec user ...failed gcc.compile.c++ bin.v2/libs/math/build/gcc-3.4.3/release/address-model-64/threading-multi/expm1.o... Upgrading to newer version of Boost has been unsuccessful, as PowerDNS's ./configure specifically looks for library version in the .so file name, and this has changed sometime after the 1.38.0 revision. Where is the linker getting the ""-t aditional-format 64A9' from, and why does this happen only on sparc?" tripivceta@… Boost 1.38.0 12444 build failure of boost::date_time::string_parse_tree on HP-UX 11i v3 date_time Boost 1.38.0 To Be Determined Bugs az_sw_dude new 2016-09-09T05:05:58Z 2016-09-09T05:05:58Z "OS: HP-UX B.11.31 U ia64 \\ Compiler: aCC: HP C/aC++ B3910B A.06.15 [May 16 2007] Test exposing the problem: {{{ #include boost::posix_time::time_input_facet const x(""""); }}} Compilation (`aCC -c test.cc`) output: {{{ ""/opt/aCC/include_std/utility"", line 100: error #2070: incomplete type is not allowed second_type second; ^ detected during: instantiation of class ""std::pair<_TypeT, _TypeU> [with _TypeT=const char, _TypeU=boost::date_time::string_parse_tree]"" at line 97 of ""/opt/aCC/include_std/rw/tree"" instantiation of class ""__rw::__rw_rb_tree_node<_Alloc, _Val, _Key, _KeyOf> [with _Alloc=std::allocator>>, _Val=std::pair>, _Key=char, _KeyOf=__rw::__select1st>, char>]"" at line 282 of ""/opt/aCC/include_std/rw/tree"" instantiation of class ""__rw::__rb_tree<_Key, _Val, _KeyOf, _Comp, _Alloc> [with _Key=char, _Val=std::pair>, _KeyOf=__rw::__select1st>, char>, _Comp=std::less, _Alloc=std::allocator>>]"" at line 361 of ""/opt/aCC/include_std/map"" instantiation of class ""std::multimap<_Key, _TypeT, _Compare, _Allocator> [with _Key=char, _TypeT=boost::date_time::string_parse_tree, _Compare=std::less, _Allocator=std::allocator>>]"" at line 90 of ""/opt/boost/include/boost/date_time/string_parse_tree.hpp"" instantiation of class ""boost::date_time::string_parse_tree [with charT=char]"" at line 165 of ""/opt/boost/include/boost/date_time/format_date_parser.hpp"" instantiation of class ""boost::date_time::format_date_parser [with date_type=boost::gregorian::date, charT=char]"" at line 719 of ""/opt/boost/include/boost/date_time/date_facet.hpp"" instantiation of class ""boost::date_time::date_input_facet [with date_type=boost::gregorian::date, CharT=char, InItrT=std::istreambuf_iterator>]"" at line 657 of ""/opt/boost/include/boost/date_time/time_facet.hpp"" instantiation of class ""boost::date_time::time_input_facet [with time_type=boost::posix_time::ptime, CharT=char, InItrT=std::istreambuf_iterator>]"" at line 3 of ""test.cc"" }}}" kostrzewa@… Boost 1.38.0 1207 "Method ""from_julian_day_number"" (class gregorian_calendar) not documented" date_time Boost 1.38.0 Boost 1.51.0 Feature Requests az_sw_dude assigned 2007-08-23T10:19:03Z 2012-07-01T17:53:56Z "please could you put the method gregorian_calendar::from_julian_day_number() in the documentation ? library: date_time thanks gizmo" thom_schu@… Boost 1.38.0 2746 Please allow specifying the library SONAME in Jamroot build Boost 1.38.0 Boost 1.39.0 Feature Requests Vladimir Prus assigned 2009-02-11T02:11:36Z 2009-11-09T18:03:08Z "In working on packaging the luabind library (which utilizes Boost.Jam) for Debian, I found the way that the library SONAME is passed to the linker is not ""correct."" It seems like since the SONAME is something that should ideally be managed by the library developer, it would be good if Boost.Jam allowed the library SONAME to be specified in the Jamroot file (for operating systems that have a notion of a SONAME). Here is the related thread from the luabind-user mailing list: http://news.gmane.org/find-root.php?message_id=%3c20090131051842.GA15718%40connexer.com%3e Thanks to some help from volodya in IRC, we worked up the patch from the first message in the above thread. However, I think that some sort of configuration variable, that if set, allowed specifying the SONAME would be better. In the absence of the SONAME being specified in the Jamroot file, the current behavior could be kept as default." roberto@… Boost 1.38.0 2758 Move container_device right inside Iostreams library iostreams Boost 1.38.0 Boost 1.39.0 Feature Requests Jonathan Turkanis new 2009-02-13T09:38:07Z 2009-02-13T09:38:47Z It will be useful to have container_source/sink/device classes (from libs/iostreams/example/container_device.hpp) right inside the Iostreams library. anonymous Boost 1.38.0 2778 Request for forward declarations header asio Boost 1.38.0 To Be Determined Feature Requests chris_kohlhoff new 2009-02-18T16:17:16Z 2010-01-12T22:23:01Z "I'm trying to implement a library that does something over the network. It exposes an interface that allows to supply local and remote host addresses to work with. However, as ASIO is header-only and depends on system headers, such as windows.h, I don't want to force the users of my library to include the whole implementation of ASIO and the system headers by using my library interface. A header with forward declarations of the most commonly used ASIO types could help me to achieve this goal. In particular, forward declarations of IP address classes would be helpful. " Andrey Semashev Boost 1.38.0 2806 Link to cross-compile instructions from Getting Started Getting Started Guide Boost 1.38.0 Boost 1.39.0 Feature Requests Dave Abrahams new 2009-02-27T07:36:41Z 2009-02-27T12:16:06Z Every now and then someone asks for cross-compilation instructions on the boost mailing lists. I do cross-compilation occasionally, too, and would like to find the instructions with a few clicks rather than digging deep into the boost-build documentation. A newbie user wouldn't even know where to look for. Therefore, I suggest the Getting Started guide would link to http://www.boost.org/boost-build2/doc/html/bbv2/tasks/crosscompile.html anonymous Boost 1.38.0 2811 date_time iostream dependencies date_time Boost 1.38.0 Boost 1.39.0 Feature Requests az_sw_dude new 2009-02-27T23:46:24Z 2009-02-27T23:46:24Z "For footprint and performance reasons our codebase uses boost with BOOST_NO_IOSTREAM. However, date_time has some iostream dependency in the form of std::ostringstream used for formatting string outputs. For example, the method partial_date::to_string uses std::ostringstream to convert an integer to a string. An alternative is as follows: {{{ //! Returns string suitable for use in POSIX time zone string /*! Returns string formatted with up to 3 digits: * Jan-01 == ""0"" * Feb-29 == ""58"" * Dec-31 == ""365"" */ virtual std::string to_string() const { date_type d(2004, month_, day_); unsigned short c = d.day_of_year() - 1; // numbered 0-365 while day_of_year is 1 based... std::string ret; if (c/100) { ret += '0' + c/100; c = c%100; } if (c/10) { ret += '0' + c/10; c = c%10; } ret += '0' + c; return ret; } }}} Would you be likely to accept a patch that simply omits all the iostream-dependent API, if BOOST_NO_IOSTREAM is defined? Is there a boost-friendly alternative to std::ostringstream? " Nigel T Stewart Boost 1.38.0 2836 Request boost::optional::optional_assign_to, optional_move_to, optional_swap optional Boost 1.38.0 Boost 1.39.0 Feature Requests niels_dekker assigned 2009-03-07T11:25:11Z 2009-03-07T12:46:48Z "I request the three member functions template< class U > bool boost::optional::optional_assign_to(U& t) const; template< class U > bool boost::optional::optional_move_to(U& t); bool boost::optional::optional_swap(T& t); which, if !*this, return false, and otherwise return true and are equivalent to t=**this; t=**this; and *this may have any value after the move std::swap( t, **this ); " aschoedl@… Boost 1.38.0 2875 Windows: ip::tcp::acceptor::local_endpoint() cannot be used in socket connect asio Boost 1.38.0 To Be Determined Feature Requests chris_kohlhoff assigned 2009-03-20T06:19:50Z 2009-04-09T13:05:18Z "On linux the local_endpoint() function returns an endpoint similar to 0.0.0.0:1234. A socket which is given this endpoint to connect to will connect successfully. A similar endpoint is returned on Windows, however the socket connection is not successful. I am currently working around this problem by inserting loopback as the address to connect to. For the sake of consistency between platforms it may be worthwhile including a similar substitution within the socket's connect operation if 0.0.0.0 is detected." Benjamin Carlyle Boost 1.38.0 2911 shared_from_this free function smart_ptr Boost 1.38.0 To Be Determined Feature Requests Frank Mori Hess new 2009-04-03T21:27:21Z 2009-12-01T01:49:22Z "Attached is an implementation of a free shared_from_this function, plus a non-template enable_shared_from_this_base class which can only be used with the free shared_from_this function. The free function will also work with the usual enable_shared_from_this template. It is implemented on top of the existing enable_shared_from_this class, and so requires no modification of the existing smart_ptr code. This scheme has the advantage of simplicity, since the ""curiously recurring template pattern"" is not needed. It also ""just works"" if you have a class hierarchy that looks like ""X is derived from Y is derived from enable_shared_from_this_base"" and want to use shared_from_this with both X and Y. I've only tried it with gcc 4.3. " fhess Boost 1.38.0 2914 Support for cumulative parameters in a doxyfile build Boost 1.38.0 To Be Determined Feature Requests René Rivera new 2009-04-05T11:44:56Z 2010-03-04T16:22:24Z "It would be nice if it was possible to specify cumulative parameters as arguments to . Aliases for instance really require this. E.g.: {{{ DOXYGEN_PARAMS = ... ALIASES+=defModule{1}=""\""\module{\1} \defgroup group_class_\1 \1\"""" ALIASES+=module{1}=""\""\ingroup group_class_\1 \\n
Module:  \ref group_class_\1
\"""" ... ; doxygen doc.html : [ glob include/*/*.hpp ] # or whatever : $(DOXYGEN_PARAMS) ; }}} Currently the parser chokes on the += construct; it expects = always. I have tinkered with doxygen.jam in my local BBv2 dir, but I am very unsure about the correctness of what I'm doing. FWIW here is the patch for what I currently use... {{{ Index: tools/doxygen.jam =================================================================== --- tools/doxygen.jam (revision 52181) +++ tools/doxygen.jam (working copy) @@ -197,11 +197,11 @@ # Translate into command line flags. for local param in [ feature.get-values : $(properties) ] { - local namevalue = [ regex.match ([^=]*)=(.*) : $(param) ] ; - text += ""$(namevalue[1]) = $(namevalue[2])"" ; + local namevalue = [ regex.match ([^+=]*)([+]?=)(.*) : $(param) ] ; + text += ""$(namevalue[1]) $(namevalue[2]) $(namevalue[3])"" ; if $(namevalue[1]) = OUTPUT_DIRECTORY { - output-dir = ""$(namevalue[2])"" ; + output-dir = ""$(namevalue[3])"" ; } } }}} " brian@… Boost 1.38.0 2915 Request for allowing ParameterSpec to be defined by an MPL sequence parameter Boost 1.38.0 Boost 1.39.0 Feature Requests Daniel Wallin new 2009-04-05T16:25:42Z 2009-06-08T01:31:21Z "May I please suggest that a metafunction be provided that maps an mpl sequence such as typedef mpl::vector IN; //each r is of the form required or required to the template class boost::parameter::parameters instantiated with the elements of that sequence: typedef parameter::parameters< r1, ... rn > OUT; This need arises when we can generate IN automatically, for example: typedef mpl::transform,meta_r>::type IN; Thanks." e_r Boost 1.38.0 2968 Add a BOOST_BUILD_DIR Environment variable build Boost 1.38.0 Boost 1.39.0 Feature Requests Vladimir Prus new 2009-04-25T17:10:04Z 2009-04-25T17:10:04Z "To set the global build dir it would be very convenient to have a BOOST_BUILD_DIR environment variable that has the same semantic as the --build-dir= command line switch. It would be equally nice to be able to specify it in the *-config.jam files, but a first glance it looks as if this would come too late in the start-up process." Roland Schwarz Boost 1.38.0 3040 add ability to reset an accumulator_set accumulator Boost 1.38.0 Boost 1.40.0 Feature Requests Eric Niebler new 2009-05-15T21:39:18Z 2009-05-15T21:39:18Z See discussion [http://groups.google.com/group/boost-list/browse_thread/thread/aaede77988f827db?pli=1 here] Eric Niebler Boost 1.38.0 3049 libs/mpl/preprocessed need README on purpose and howto mpl Boost 1.38.0 Boost 1.40.0 Feature Requests Aleksey Gurtovoy new 2009-05-19T14:57:23Z 2014-01-13T22:33:55Z "After application of recent patch file: https://svn.boost.org/trac/boost/attachment/ticket /3044/iter_fold_if.patch an attempt to run the test resulted in an error msg: gcc.compile.c++ ../../../bin.v2/libs/mpl/test/iter_fold_if.test /gcc-4.2/debug/iter_fold_if.o In file included from iter_fold_if.cpp:14: ../../../boost/mpl/iter_fold_if.hpp:86: error: wrong number of template arguments (5, should be 6) ../../../boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp:96: error: provided for 'template struct boost::mpl::aux::iter_fold_if_impl' This message indicates need to regenerate the preprocessed files from the programs in /mpl/lib/preprocessed; however, there's no README file in that directory providing instructions on how to do that. It would be very helpful if one were provided. " cppljevans@… Boost 1.38.0 3053 asio::placeholders not compatible with std::tr1::bind asio Boost 1.38.0 To Be Determined Feature Requests chris_kohlhoff new 2009-05-20T09:18:09Z 2009-06-27T08:03:06Z "If I use a placeholder from `boost::asio::placeholders` with `std::tr1::bind` from ``, I get loads of compiler output, concluding with this: {{{ /usr/include/c++/4.3/tr1_impl/functional:1138: error: no match for call to '(std::tr1::_Mem_fn) (Connection*&, boost::arg<1> (*&)())' /usr/include/c++/4.3/tr1_impl/functional:551: note: candidates are: _Res std::tr1::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void, _Class = Connection, _ArgTypes = const boost::system::error_code&] /usr/include/c++/4.3/tr1_impl/functional:556: note: _Res std::tr1::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void, _Class = Connection, _ArgTypes = const boost::system::error_code&] /usr/include/c++/4.3/tr1_impl/functional:1138: error: return-statement with a value, in function returning 'void' }}} With `Connection` a self-defined class. If I use `boost::bind` instead of `std::tr1::bind`, it works. To me, this seems like the placeholders from asio are not usable with `bind` from TR1. Is there any way to fix this in Boost, perhaps using BOOST_HAS_TR1_BIND in the asio headers?" sdrongel@… Boost 1.38.0 3114 Modified interface to allow even lazier return types for defaults parameter Boost 1.38.0 Boost 1.42.0 Feature Requests Jeremiah Willcock new 2009-05-30T23:51:19Z 2010-01-09T19:56:50Z There are some use cases where the return type of operator() in a default computation class is not valid in some cases when that default is not used. The current interface to such classes does not allow that case; see the message at http://lists.boost.org/Archives/boost/2009/05/152009.php for more information. The attached patch allows a special member type (that must be void) to be used to change the interface to pass a single int argument to operator(), while keeping the old no-parameter interface for function objects without the special tag. The tag could also have been implemented as a traits class used with enable_if. The patch passes all of the Boost.Parameter tests except two (which appear to freeze up). I only changed the normal path through the code, and not the compatibility code which I am unable to test. A test for the new functionality added by the patch is also attached. Jeremiah Willcock Boost 1.38.0 2781 Add python exception info extractor python USE GITHUB Boost 1.38.0 Boost 1.39.0 Patches Dave Abrahams new 2009-02-19T13:54:29Z 2018-01-22T06:34:57Z "Something like this is useful when embedding python, and it took me almost an entire day to figure out how to do this. (Having not used boost::python before, I got many crashes when trying to extract data again.) Example: {{{ try { boost::python::eval(...); } catch (boost::python::error_already_set&) { std::string msg = handle_pyerror(); std::cerr << ""Error runnin python code: "" << msg; } }}} Implementation: {{{ #!cpp std::string handle_pyerror() { using namespace boost::python; std::ostringstream os; os << ""Python error:\n "" << std::flush; PyObject *type = 0, *val = 0, *tb = 0; PyErr_Fetch(&type, &val, &tb); handle<> e_val(val), e_type(type), e_tb(allow_null(tb)); try { object t = extract(e_type.get()); object t_name = t.attr(""__name__""); std::string typestr = extract(t_name); os << typestr << std::flush; } catch (error_already_set const &) { os << ""Internal error getting error type:\n""; PyErr_Print(); } os << "": ""; try { object v = extract(e_val.get()); std::string valuestr = extract(v.attr(""__str__"")()); os << valuestr << std::flush; } catch (error_already_set const &) { os << ""Internal error getting value type:\n""; PyErr_Print(); } if (tb) { try { object tb_list = import(""traceback"").attr(""format_tb"")(e_tb); object tb_str = str("""").attr(""join"")(tb_list); std::string str = extract(tb_str); os << ""\nTraceback (recent call last):\n"" << str; } catch (error_already_set const &) { os << ""Internal error getting traceback:\n""; PyErr_Print(); } } else { os << std::endl; } return os.str(); } }}} I'm sure it could be done better, but I'm sure this would help quite a bit. A wrapper for all python calls that translated python errors into C++-exceptions with proper contents would be very nice, but I can live with this." macke@… Boost 1.38.0 2956 vxWorks POSIX quirks for date_time date_time Boost 1.38.0 Boost 1.39.0 Patches az_sw_dude new 2009-04-18T20:10:47Z 2013-06-12T21:44:49Z "vxWorks is almost a unix-like platform, that supports the POSIX realtime extensions and a lot of POSIX stuff.. but its weird. It apparently doesn't support gettimeofday. I modified microsec_time_clock to support a situation where gettimeofday isn't available but clock_gettime is. vxWorks has localtime_r, but it is defined as ""extern int localtime_r (const time_t *_tod, struct tm *_result);""... so it needs some hand holding to work correctly. same with gmtime_r Of course, this patch also requires the user to setup a config that defines BOOST_HAS_CLOCK_GETTIME, but I'm going to submit a separate patch for vxWorks platform config" Dustin Spicuzza Boost 1.38.0 2958 [patch] changes to make asio compile on vxWorks asio Boost 1.38.0 Boost 1.39.0 Patches chris_kohlhoff new 2009-04-18T22:03:37Z 2009-04-18T22:04:48Z "An explanation of some of the changes: socket/pipe interrupter: Despite that vxWorks has a pipe facility, it appears that you must create a named pipe, and then open the file, which is a bit different than the unix pipe function. Since its not clear to me how many different interrupters may be created by asio, its far easier to use the select_interrupter instead (and it works just as well). socket_ops: for whatever reason the arguments to its socket related functions take an int, and a socklen_t is an unsigned int. there are also a number of functions where a non-const arg is passed that apparently is typically a const arg on other systems. socket_ops/descriptor_ops: when running as a kernel module, apparently open and ioctl have three fixed arguments, with the third argument being an integer. outside of kernel modules it appears to have the traditional API. Patch from ticket #2917 is required for vxWorks as well, since it does not support serial ports via termios. There are patches to other boost libraries required also, those have been submitted in other bugs. " Dustin Spicuzza Boost 1.39.0 3165 wrong project-config.jam generated for intel-linux build Boost 1.39.0 Boost 1.42.0 Bugs Vladimir Prus new 2009-06-11T06:22:00Z 2009-11-10T08:27:13Z Per http://permalink.gmane.org/gmane.comp.lib.boost.user/48455, if using the intel-linux toolset, bootstrap.sh generates wrong code to check if intel-linux is already initialized, which leads to double-initialization. Vladimir Prus Boost 1.39.0 3194 compiler warnings in VC9 crc Boost 1.39.0 Boost 1.40.0 Bugs Daryle Walker new 2009-06-20T01:29:13Z 2011-01-14T23:22:15Z "The following code under VC9 with warning level 4 produces the warnings below. Warnings are not allowed on my project, and rather than wrapping boost includes with a #pragma directive, I'd rather these warnings just be suppressed in the code that's causing them. boost::uint32_t GenerateChecksum( const char* data, size_t length ) { boost::crc_32_type computer; computer = std::for_each( data, data + length, computer ); return computer(); } 2>C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(377) : warning C4245: 'initializing' : conversion from 'int' to 'const boost::detail::mask_uint_t<8>::least', signed/unsigned mismatch 2>C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(400) : warning C4245: 'initializing' : conversion from 'int' to 'const boost::detail::mask_uint_t<16>::least', signed/unsigned mismatch 2>C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(574) : warning C4244: 'return' : conversion from 'unsigned int' to 'unsigned char', possible loss of data 2> C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(574) : while compiling class template member function 'unsigned char boost::detail::crc_helper::index(unsigned int,unsigned char)' 2> with 2> [ 2> Bits=32, 2> DoReflect=true 2> ] 2> C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(836) : see reference to class template instantiation 'boost::detail::crc_helper' being compiled 2> with 2> [ 2> Bits=32, 2> DoReflect=true 2> ] 2> C:\Documents and Settings\Administrator\My Documents\Development\development\third_party\boost\1_39_0\boost/crc.hpp(836) : while compiling class template member function 'boost::crc_optimal::crc_optimal(unsigned int)' 2> with 2> [ 2> Bits=32, 2> TruncPoly=79764919, 2> InitRem=-1, 2> FinalXor=-1, 2> ReflectIn=true, 2> ReflectRem=true 2> ] 2> ..\..\..\..\components\libs\checksum\source\Checksum.cpp(12) : see reference to class template instantiation 'boost::crc_optimal' being compiled 2> with 2> [ 2> Bits=32, 2> TruncPoly=79764919, 2> InitRem=-1, 2> FinalXor=-1, 2> ReflectIn=true, 2> ReflectRem=true 2> ]" kfriddile@… Boost 1.39.0 3196 compiler warnings in VC9 concept_check Boost 1.39.0 Boost 1.40.0 Bugs jsiek new 2009-06-20T02:44:21Z 2011-06-10T08:26:33Z "The following code in boost/concept/detail/msvc.hpp generates a warning stating that 'x' is an unreferenced formal parameter under VC9 at warning level 4 when failed() isn't invoked. Since this already appears to be an msvc-specific file, can it's contents be wrapped in a #pragma warning( disable : 4100 ) to suppress the warning? template struct check { virtual void failed(Model* x) { x->~Model(); } };" kfriddile@… Boost 1.39.0 3217 inconsistent from_xxx_string() name for date and ptime date_time Boost 1.39.0 Boost 1.40.0 Bugs az_sw_dude new 2009-06-25T21:21:47Z 2009-06-25T21:21:47Z The date and ptime class both have a function that constructs an instance from an ISO formatted string. However, date names this function from_undelimited_string() and ptime from_iso_string(). This is a unnecessary inconsistency. Either name would work for me though my preference is the iso variant. """LeJacq, Jean Pierre"" " Boost 1.39.0 3219 restrict1 or mutable_restrict1 uBLAS Boost 1.39.0 To Be Determined Bugs Gunter new 2009-06-26T08:54:56Z 2009-10-05T22:22:36Z "hi, when you compile the Bayes++ library with Boost (for 1.39 and 1.38 versions), there is a bug with uBlas : In boost/numeric/ublas/symmetric.hpp ln1145 : i = triangular_type::mutable_restrict1 (i, j); ln1175 : j = triangular_type::mutable_restrict2 (i, j); In boost/numeric/ublas/functional.hpp ln1730 there is a ""// FIXME: this should not be used at all"" for mutable_restrict1 and so. I get the following error message : error C2660: 'boost::numeric::ublas::detail::transposed_structure::mutable_restrict1' : la fonction ne prend pas 2 arguments D:\Program Files\CEA\lcviExtern_test\boost_1_39_0\boost\numeric\ublas\symmetric.hpp 1145 " julien michot Boost 1.39.0 3221 Collection concept documentation missing reverse_iterator utility Boost 1.39.0 Boost 1.40.0 Bugs jsiek new 2009-06-26T14:14:28Z 2013-02-04T22:45:10Z The ReversibleCollection concept should list reverse_iterator as an associated type required by the concept, with a little 1-sentence description of what it needs to to (like the listings for the associated types of a Collection). fhess Boost 1.39.0 3222 const-correctness and documentation bugs multi_array Boost 1.39.0 Boost 1.40.0 Bugs Ronald Garcia new 2009-06-26T15:47:00Z 2009-06-26T15:47:00Z "I am able to modify a const multi_array through a multi_array_ref. For example: const boost::multi_array myarray(boost::extents[2][2]); boost::multi_array_ref myarrayref(myarray); myarrayref[0][1] = 2; IMO, trying to create a multi_array_ref from a const multi_array should fail to compile, only a const_multi_array_ref should work. Also, the reference doesn't include the public inheritance between multi_array, multi_array_ref, and const_multi_array in their class synopses. It is important because it seems to be the only reason you can do conversions from multi_array to multi_array_ref or const_multi_array_ref. " fhess Boost 1.39.0 3239 duplicate case value in error_code.cpp on mipsel system Boost 1.39.0 Boost 1.40.0 Bugs markus_werle new 2009-07-02T20:23:52Z 2009-07-20T13:33:51Z "Compiler: gcc version 4.1.2 Target: mipsel-linux-uclibc Error: libs/system/src/error_code.cpp:223: error: duplicate case value libs/system/src/error_code.cpp:179: error: previously used here libs/system/src/error_code.cpp:232: error: duplicate case value libs/system/src/error_code.cpp:177: error: previously used here Solution? # if ECONNRESET != ENOTRECOVERABLE case ENOTRECOVERABLE: return make_error_condition( state_not_recoverable ); # endif // ECONNRESET != ENOTRECOVERABLE # if ECONNABORTED != EOWNERDEAD case EOWNERDEAD: return make_error_condition( owner_dead ); # endif // ECONNABORTED != EOWNERDEAD Thank you :)" der_felix@… Boost 1.39.0 3240 Boostbook documentation is built under the current working directory. build Boost 1.39.0 To Be Determined Bugs Vladimir Prus new 2009-07-03T10:07:48Z 2009-07-03T10:07:48Z "For a demonstration, change to `$BOOST_ROOT`, and run: bjam libs/static_assert/doc/ The documentation is built in `$BOOST_ROOT/html` when I'd expect it to be built in `$BOOST_ROOT/libs/static_assert/doc/html`. The css file is installed to `$BOOST_ROOT/libs/static_assert/doc/html` so the links to it are broken. Also, for some other documentation, links are broken unless it's built in the correct location. If this is fixed, the asio documentation build will have to be fixed as it relies on the current behaviour. In `doc/Jamfile.v2` an alias is used which builds the documentation in `doc/html`, so ideally there should be a way to preserve that - perhaps a parameter to specify the destination, in a similar manner to `install`. This isn't a priority as it doesn't create any real problems in practice but it would be nice as it would make it easy to create a Jamfile which builds all the boostbook documentation, including 'standalone' documentation." Daniel James Boost 1.39.0 3247 Multicast join group does not honor interface specification asio Boost 1.39.0 Boost 1.40.0 Bugs chris_kohlhoff new 2009-07-06T21:18:46Z 2013-03-22T10:15:55Z "I'm working with the Multicast receiver example at: http://www.boost.org/doc/libs/1_35_0/doc/html/boost_asio/example/multicast/receiver.cpp Notice that you specify the listen_address as you create the endpoint that is bound to the socket. Later when you call socket::set_option with the multicast_address, I would expect the listen_address to be honored. The current implementation uses INET_ANY for the interface in the multicast subscription. This means the multicast messages may arrive on one interface while you are listening for them on another one. I can't think of any case in which you would want to specify an IP for the receive, but not for the join_group and it certainly shouldn't be the default behavior when you use the example code as a guide. Workaround: There is a different constructor for the join_group object that does produce the desired behavior, but it is not obvious that you should need it. Also it does not accept boost::asio::ip::addresses as arguments (which would make sense) but requires that you ""convert"" them to ip4 (or ip6) addresses. Seems awkward. " Dale Wilson Boost 1.39.0 3248 xlc warnings in MPL mpl Boost 1.39.0 Boost 1.40.0 Bugs Aleksey Gurtovoy new 2009-07-07T00:10:05Z 2012-03-03T18:57:26Z "xlc 10.1 throws the following warnings when using mpl::set: ""/usr/local/include/boost/mpl/set/aux_/set0.hpp"", line 63.6: 1540-0095 (W) The friend function declaration ""operator||"" will cause an error when the enclosing template class is instantiated with arguments that declare a friend function that does not match an existing definition. The function declares only one function because it is not a template but the function type depends on one or more template parameters. ""/usr/local/include/boost/mpl/set/aux_/set0.hpp"", line 64.6: 1540-0095 (W) The friend function declaration ""operator%"" will cause an error when the enclosing template class is instantiated with arguments that declare a friend function that does not match an existing definition. The function declares only one function because it is not a template but the function type depends on one or more template parameters. " Ioannis Papadopoulos Boost 1.39.0 3301 Problem building boost with ICU (since version 1.39.0) Building Boost Boost 1.39.0 To Be Determined Bugs Vladimir Prus new 2009-07-30T05:42:27Z 2010-06-06T15:29:12Z "I have tried build boost 1.39.0 with MSVS 8.0, including regex library and with ICU support. The build string was {{{ bjam -j2 -sHAVE_ICU=1 --without-python --with-regex --build-dir=""D:\Temp\BoostBuild"" --toolset=msvc-8.0 --build-type=complete address-model=32 stage }}} (version 1.38.0 was allright with this build string). This raised an error: {{{ error: link=shared together with runtime-link=static is not allowed error: such property combination is either impossible error: or too dangerious to be of any use }}} Then I tried to narrow the building settings and use static linking only: {{{ bjam --toolset=msvc-8.0 --builddir=""D:\Temp\BoostBuild"" address-model=32 link=static runtime-link=static threading=multi stage debug release --with-regex -sHAVE_ICU=1 }}} This also did raise the same error, despite shared linking wasn't demanded explicitly. The problem comes when trying to build boost with ICU. Without ICU it seems beeing ok, but I need unicode support in regex. " Yana A. Kireyonok Boost 1.39.0 3318 boost/python/detail/caller.hpp doesn't compile (no member named 'get_pytype') python USE GITHUB Boost 1.39.0 Boost 1.40.0 Bugs troy d. straszheim new 2009-08-06T10:57:51Z 2011-09-08T20:09:35Z "When compiling vegastrike-0.5.0 against boost 1.39.0 (./configure --with-boost=system to use the system boost instead of internal copy), the build breaks on errors in the boost/python/detail/caller.hpp header: {{{ In file included from /usr/include/boost/python/object/function_handle.hpp:9, from /usr/include/boost/python/converter/arg_to_python.hpp:20, from /usr/include/boost/python/call.hpp:16, from /usr/include/boost/python/object_core.hpp:13, from /usr/include/boost/python/object.hpp:10, from src/python/python_class.h:24, from src/python/briefing_wrapper.cpp:4: /usr/include/boost/python/detail/caller.hpp: In static member function 'static const PyTypeObject* boost::python::detail::converter_target_type::get_pytype() [with ResultConverter = boost::python::to_python_value]': /usr/include/boost/python/detail/caller.hpp:242: instantiated from 'static boost::python::detail::py_func_sig_info boost::python::detail::caller_arity<1u>::impl::signature() [with F = Vector (*)(int), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector2]' /usr/include/boost/python/object/py_function.hpp:48: instantiated from 'boost::python::detail::py_func_sig_info boost::python::objects::caller_py_function_impl::signature() const [with Caller = boost::python::detail::caller >]' src/python/briefing_wrapper.cpp:59: instantiated from here /usr/include/boost/python/detail/caller.hpp:102: error: 'struct boost::python::detail::caller_arity<1u>::impl::operator()(PyObject*, PyObject*) [with F = Vector (*)(int), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector2]::result_converter' has no member named 'get_pytype' make[1]: *** [src/python/briefing_wrapper.o] Error 1 }}} Labelling this as regression since vegastrike is known to compile with boost 1.36.0. I'm using GCC 4.4.0, glibc 2.10.1, python 2.6.1 on Exherbo Linux " Ingmar Vanhassel Boost 1.39.0 3340 boost.python.numeric docs out-of-date python USE GITHUB Boost 1.39.0 Boost 1.40.0 Bugs Dave Abrahams new 2009-08-13T16:21:07Z 2009-08-13T16:21:07Z "Reading http://www.boost.org/doc/libs/1_39_0/libs/python/doc/v2/numeric.html#array-spec I run into a number of invalid / outdated URLs. Notably, the above page starts with ""Provides access to the array types of Numerical Python's Numeric and NumArray modules"", but in one of the followup URLs I find ""numarray is being phased out and replaced by numpy"". Thus my questions: Other than a fix to the above docs, does boost.python need any adjustments to work with numpy ? In fact, what is the relationship between the above (old) modules and numpy ? Reading some follow-up docs it appears as if the numpy array types grew out of Numeric / NumArray. Sorry for those somewhat tangential questions. I believe at least some clarification on the boost.python documentation as to what exact array types it is able to bind to would be very helpful. " Stefan Seefeld Boost 1.39.0 3342 vector_c should use maximum integral constant type mpl Boost 1.39.0 Boost 1.40.0 Bugs Aleksey Gurtovoy new 2009-08-14T06:21:21Z 2009-08-14T06:21:21Z "It looks like currently long is built in, which leads to problems on 32 bit architectures with sizeofs int = long < int64_t. How it's defined currently: {{{ #!cpp template< typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX, ... > struct vector_c; }}} I believe the maximum integral type (e.g. int64_t) should be used instead of long. Example that shows the problem: {{{ #!cpp const int64_t max_int = integer_traits::const_max; const int64_t max_int_plus_1 = max_int + 1; BOOST_MPL_ASSERT(( equal< vector_c< int64_t, 1 > , vector< integral_c< int64_t, 1 > > > )); BOOST_MPL_ASSERT(( equal< vector_c< int64_t, max_int > , vector< integral_c< int64_t, max_int > > > )); BOOST_MPL_ASSERT(( equal< vector_c< int64_t, max_int_plus_1 > , vector< integral_c< int64_t, max_int_plus_1 > > > )); }}} The first assert passes, while the second and third fail with the following error messages (removed repetition of 2147483647l for readability): {{{ test.h:149: error: ************mpl::equal, mpl::vector>, is_same >::************' test.h:153: error: ************mpl::equal, mpl::vector>, is_same >::************' }}}" Maxim Yanchenko Boost 1.39.0 3353 warning C4244: Py_ssize_t to unsigned int python USE GITHUB Boost 1.39.0 Boost 1.40.0 Bugs Dave Abrahams new 2009-08-18T20:01:58Z 2017-09-03T20:44:27Z "I am seeing a compiler warning regarding an unsafe type conversion: {{{ 1>c:\program files\boost\boost_1_39\boost\python\detail\caller.hpp(55) : warning C4244: 'return' : conversion from 'Py_ssize_t' to 'unsigned int', possible loss of data }}} Visual Studio 2005 Note that this may be a known issue or regression, as it was discussed 2 years ago here: http://lists.boost.org/Archives/boost/2007/04/120377.php " davidm@… Boost 1.39.0 3363 linking 2 files compiled with different NDEBUG causes segfault date_time Boost 1.39.0 Boost 1.40.0 Bugs az_sw_dude new 2009-08-25T05:00:32Z 2011-02-21T04:29:58Z "Linking y1.o and y2.o compiled as below causes the resulting executable to segfault and show valgrind errors. x1.o defines NDEBUG before including a boost header, x2.o doesn't. If both define NDEBUG, or both don't then linking them produces an executable that runs, and shows no valgrind errors. This is y1.cpp: #define NDEBUG 1 #include #include void foobar() { boost::posix_time::time_duration td(0, 0, 1, 0); std::stringstream ss; ss << td; } void bar(void); int main() { bar(); return 0; } This is y2.cpp: #include void bar(void) { std::cerr<> i; std::cout << ""Pos after read: "" << is.tellg() << std::endl; } std::cout << ""Pos after dtor: "" << is.tellg() << std::endl; }}} Output: {{{ Pos after read: 4 Pos after dtor: 11 }}} (sizeof(int) is 4, archive file length is 11)" Andrey Upadyshev Boost 1.39.0 3484 [Test] documentation and thread safety test Boost 1.39.0 Boost 1.41.0 Bugs Gennadiy Rozental new 2009-09-23T11:09:27Z 2009-09-27T02:15:38Z "Today I spend half a day to reveal that Boost.Test is not thread safe :) Please point it explicitly in documentation. (When MT, BOOST_ERROR, for example, cause unknown exception but only after thread exit, and only 1 time for 10 runs. This makes bugs extremely difficult to locate, and since most Boost libraries are thread-safe, Boost.Test is the last thing to check)." bstarostin@… Boost 1.39.0 4913 file_descriptor_impl::read doesn't handle EINTR iostreams Boost 1.39.0 To Be Determined Bugs Jonathan Turkanis new 2010-11-30T16:11:53Z 2010-11-30T16:22:46Z "when using boost::iostreams::stream_buffer, reads from the stream may unnecessarily set the badbit flag. the reason is that in the underlying call to read() the EINTR condition is not handled. the read() should be restarted in this case. i'm attaching a non tested patch. it does the same thing that libstdc++ does (function __basic_file::xsgetn). this is easy to reproduce in gdb. here's why: http://sourceware.org/gdb/onlinedocs/gdb/Interrupted-System-Calls.html" Todor Buyukliev Boost 1.39.0 5545 ptr_container: unused parameter warnings if exceptions and asserts disabled ptr_container Boost 1.39.0 To Be Determined Bugs Thorsten Ottosen new 2011-05-16T12:02:38Z 2011-05-16T12:02:38Z "With exceptions and asserts both disabled, `ptr_container_detail::reversible_ptr_container<>::enforce_null_policy()` generates unused-parameter warnings. Both its parameters are used only within an invocation of `BOOST_PTR_CONTAINER_THROW_EXCEPTION()`; with exceptions disabled, that expands to a `BOOST_ASSERT()`; with asserts disabled, that in turn becomes just `(void)0` (or equivalent). One way to fix this would be to make `BOOST_PTR_CONTAINER_THROW_EXCEPTION` expand to `BOOST_VERIFY` instead of `BOOST_ASSERT`, so that the parameters are still evaluated even when exceptions and asserts are disabled. This should make no difference when exceptions are enabled, or when exceptions are disabled but asserts are enabled. Minimal example: {{{ $ cat test.cpp #include void foo(int *p) { boost::ptr_vector().push_back(p); } $ g++ -W -Wall -fno-exceptions -Iboost -DNDEBUG -c test.cpp In file included from boost/boost/ptr_container/ptr_sequence_adapter.hpp:20, from boost/boost/ptr_container/ptr_vector.hpp:20, from test.cpp:1: boost/boost/ptr_container/detail/reversible_ptr_container.hpp: In instantiation of 'static void boost::ptr_container_detail::reversible_ptr_container::enforce_null_policy(const typename Config::value_type*, const char*) [with Config = boost::ptr_container_detail::sequence_config > >, CloneAllocator = boost::heap_clone_allocator]': boost/boost/ptr_container/ptr_sequence_adapter.hpp:246: instantiated from 'void boost::ptr_sequence_adapter::push_back(typename boost::ptr_container_detail::reversible_ptr_container, CloneAllocator>::value_type) [with T = int, VoidPtrSeq = std::vector >, CloneAllocator = boost::heap_clone_allocator]' test.cpp:5: instantiated from here boost/boost/ptr_container/detail/reversible_ptr_container.hpp:260: warning: unused parameter 'x' boost/boost/ptr_container/detail/reversible_ptr_container.hpp:260: warning: unused parameter 'msg' }}} (g++ will not emit the warnings if the boost headers are found in the system include directories.)" timb@… Boost 1.39.0 8861 boost 1.39 io_service_pool accept hangs asio Boost 1.39.0 To Be Determined Bugs chris_kohlhoff new 2013-07-19T14:18:07Z 2013-07-19T14:26:56Z "O.S.: Centos 5.4 64 bit Boost version: 1.39 Symptom: With io_service-per-CPU and thread pool size 4, after the sever accepted at 8th connection, it cannot accept any connections afterwards. How to reproduce it: (1) Get the server2 example at http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/example/http/server2/ (2) Modify connection.cpp to support persistent connection: void connection::handle_write(const boost::system::error_code& e) { if (!e) { // Initiate graceful connection closure. //boost::system::error_code ignored_ec; //socket_.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignored_ec); start(); } (3) Modify the server.cpp to use different acceptor_ constructor server::server(const std::string& address, const std::string& port, const std::string& doc_root, std::size_t io_service_pool_size) : io_service_pool_(io_service_pool_size), // acceptor_(io_service_pool_.get_io_service()), acceptor_( io_service_pool_.get_io_service(), boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), atoi(port.c_str()))), new_connection_(new connection( io_service_pool_.get_io_service(), request_handler_)), request_handler_(doc_root) { // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). /* boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 1025); acceptor_.open(endpoint.protocol()); acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); acceptor_.bind(endpoint); acceptor_.listen(); */ acceptor_.async_accept(new_connection_->socket(), boost::bind(&server::handle_accept, this, boost::asio::placeholders::error)); } (4) The client test harness create threads each second. In the thread, it will connect to the server, send a request and receive the response (both request/response should be small enough for one read/write). After that, the thread will sleep 1000 seconds without closing the connection. (5) The server cannot accept any connections after 8th requests. " bill Boost 1.39.0 373 LEDA graph adaptors for undirected graphs graph Boost 1.39.0 To Be Determined Feature Requests Jeremiah Willcock reopened 2005-03-22T15:33:33Z 2012-01-04T23:32:03Z "{{{ The LEDA graph adaptors in the BGL seem to work properly for directed graphs (the LEDA type GRAPH<...>), but there are no corresponding adaptors for the undirected LEDA graph type (UGRAPH<...>). Undirected LEDA graphs follow a very different model than the undirected graphs in the BGL, which will require some special machinery. The LEDA type UGRAPH<...> is actually just a class derived from GRAPH<...> that applies the ""make_undirected()"" member function upon initialization. make_undirected() moves all of the in-edges of each vertex to the out-edges list. This has several unfortunate consequences: 1) The in-degree of an undirected LEDA graph is always zero, even when the out-degree is greater than zero. The in_edges list is therefore empty. 2) When traversing the list of out-edges for a vertex u, the edges returned may have u as their target but not their source. This breaks an important invariant in the BGL, which mandates that source(e, g)==u if e came from out_edges(u, g). Similarly for in-edges. Thus, an undirected LEDA graph adaptor will need to introduce special adaptors for the out_edge_iterator and in_edge_iterator types, which return a new edge_descriptor type for LEDA that can swap the source and target of a LEDA edge as needed. Additionally, graph-mutating operations (such as add_edge) may need to ensure that the graph remains undirected, as if make_undirected() had been called. }}}" Douglas Gregor Boost 1.39.0 3129 Return types of Parameter ArgumentPack creation functions should be documented parameter Boost 1.39.0 Boost 1.40.0 Feature Requests Daniel Wallin new 2009-06-03T17:57:16Z 2009-06-03T17:57:16Z The return types of functions such as operator= on keywords, operator, on ArgumentPacks, and the empty ArgumentPack are not documented. This information is necessary to write functions that return ArgumentPacks. This could be provided by a traits class that allows the underlying implementations of these constructs to be changed later. Jeremiah Willcock Boost 1.39.0 3131 DCCP protocol support in Boost.Asio asio Boost 1.39.0 Boost 1.40.0 Feature Requests chris_kohlhoff new 2009-06-04T08:45:27Z 2009-07-10T10:35:44Z "DCCP is a connected datagram protocol, which can be seen to occupy the niche between UDP and TCP. Newer versions of glibc enable support of this protocol to some extent, so I decided, it may be handy to have support for it in Asio as well. Considering that it only operates on connected sockets, I hacked up new basic_dccp_socket/dccp_socket_service classes, which are datagram in nature, but do not support unconnected operation. One problem I haven't though about the way to address (hopefully, somebody will help me out with this) is concept of DCCP service codes. Each DCCP socket must be associated with one or several service codes. Information about the desired service codes must be communicated somehow down the pipe (either through an appropriate change to the ""resolver"" or by some other means). If ignored, service code on sockets default to 0 and everything works fine, but it is not an intended approach to DCCP use. " oakad@… Boost 1.39.0 3132 Provide conversions to time_t date_time Boost 1.39.0 Feature Requests az_sw_dude assigned 2009-06-04T09:23:12Z 2012-07-01T18:11:19Z "Extracted from #889. ==========8<============ Also why no conversions to time_t? It would be nice not to have include the header outside of translation units. :) ==========>8============ Need to provide conversion function from Boost.DateTime types to std::time_t." Andrey Semashev Boost 1.39.0 3144 Support unicode punctuation quickbook Boost 1.39.0 To Be Determined Feature Requests Daniel James new 2009-06-06T13:47:00Z 2014-04-09T02:19:44Z "Spirit 1's punct_p uses the standard C locale `ispunct`. So use something that supports unicode punctuation. Maybe also add a way to choose the locale to use and look for anywhere else that the locale matters. [http://tinyurl.com/35j57v David Abrahams wrote]: > It seems like Quickbook defines ""punctuation"" as whatever the 'C' > locale says it is. As a result, none of the following foo's are > italicized: {{{ /foo/—a generic name used in programming—came to being after WWII. “/foo/” came into being after WWII. }}} > This fact (if I have it right) should be documented. > > [QB should be fixed to handle unicode input.] " Daniel James Boost 1.39.0 3150 boost.asio: async_copy(in, out, ...) for POSIX sendfile() support asio Boost 1.39.0 To Be Determined Feature Requests chris_kohlhoff new 2009-06-08T13:00:57Z 2009-08-11T09:43:27Z "hey guys, i wanted to use boost and boost.asio in order to implement a web service, however, when transmitting static files, i feel not welcome in just memcpy'ing the file into RAM and copying back into kernel space for transmission over TCP/IP. that's where POSIX sendfile() comes into play. it takes an input file descriptor (local file e.g.), an output file descriptor (socket e.g.), offset and count, and transfers data directly from input to output *without* leaving kernel space, this is highly recommented e.g. when sending local files to sockets in HA software. just like async_read/async_write, i imagine that it could be possible in providing an return_type async_copy(input, output, count, finish_callback, ...); would you mind?" trapni@… Boost 1.39.0 3152 Obtaining a minimum s-t cut edge set graph Boost 1.39.0 To Be Determined Feature Requests Douglas Gregor new 2009-06-09T07:17:52Z 2010-12-08T19:44:37Z "The boost graph library offers a set of algorithms to solve linear max-flow problems, among them push-relabel and kolmogorov max-flow algorithms. Often, the application of the max-flow algorithm is in order to solve for a minimum edge cut set separating nodes s and t. Right now, obtaining a minimum edge cut set is not supported in the boost graph library. Thus one of the main applications of solving max flow problems is not catered for by boost graph. Limited support for this functionality is available in the kolmogorov_max_flow algorithm by means of a color map mapping vertices to black, white and gray states. However, this is specific to the kolmogorov max flow algorithm whereas the general feature to obtain the minimum cut set is so important such that it should be an own feature supported by all max flow algorithms in the library. Additionally, the documentation or code of the colormap in the kolmogorov max flow algorithm is wrong; there are connected but undecided states (gray) and applying the white-nonwhite or black-nonblack separation suggested in the documentation does not always yield a minimum cut set. Thanks for considering." nowozin@… Boost 1.39.0 3153 Can only disable range checking by defining BOOST_DISABLE_ASSERTS macro multi_array Boost 1.39.0 Boost 1.40.0 Feature Requests Ronald Garcia new 2009-06-09T11:40:56Z 2009-06-09T12:09:20Z Defining BOOST_DISABLE_ASSERTS disables boost asserts compilation unit wide. It would be nice to have finer grained control over the range checking in multi_array via a multi_array specific macro. John Reid Boost 1.39.0 3154 Documentation does not specify support (or lack of) for negative strides multi_array Boost 1.39.0 Boost 1.40.0 Feature Requests Ronald Garcia new 2009-06-09T11:44:35Z 2009-06-09T11:44:35Z "Are negative strides supported by the multi_array library? The documentation does not mention them explicitly. Anecdotal evidence suggests that they work in some cases when range checking is disabled. See: [http://article.gmane.org/gmane.comp.lib.boost.devel/190214]" John Reid Boost 1.39.0 3188 concepts for immutable types uBLAS Boost 1.39.0 To Be Determined Feature Requests Gunter new 2009-06-18T07:56:28Z 2009-06-18T07:56:28Z "Currently all concepts are written for mutable objects although all containers and expressions can be either constant or mutable. I suggest to split the current concepts in basic concepts that contain the operations for both constant and mutable classes and special concepts only for mutable classes (which are a refinement of the constant concepts)." Gunter Boost 1.39.0 3223 number of dimensions as static constant multi_array Boost 1.39.0 Boost 1.40.0 Feature Requests Ronald Garcia new 2009-06-26T15:48:15Z 2012-01-13T15:48:06Z multi_array and friends should provide the number of dimensions as a static member constant, so it is available at compile time and can be used in generic programming. I assume the num_dimensions() non-static member function was put in the design with the idea that the number of dimensions of a multi_array object might be dynamically changed. But since the multi array concept and classes doen't support changing the number of dimensions, it doesn't provide anything useful over a static constant. fhess Boost 1.39.0 3224 shape() should return a RandomAccessCollection multi_array Boost 1.39.0 Boost 1.40.0 Feature Requests Ronald Garcia new 2009-06-26T15:53:08Z 2009-06-26T15:53:08Z "Has there ever been any thought to making multi_array::shape() return something that models the Collection concept (RandomAccessCollection in particular I suppose) rather than a raw pointer? This would allow the return value from shape() to be passed directly to multi_array::reshape() or multi_array::resize(), for added convenience. It would also allow a debug assertion to be added to make sure you don't try to access beyond the end of the array returned by shape(). From looking at the multi_array code, it looks like it would be relatively easy to add a new function called maybe ""size()"" which would replace ""shape()"" (which could be kept but deprecated) where size() would return a const reference to the boost::array used internally to store the extent_list_. " fhess Boost 1.39.0 3265 parse vectors program_options Boost 1.39.0 Boost 1.40.0 Feature Requests Vladimir Prus new 2009-07-15T03:09:11Z 2012-12-27T10:21:09Z "As discussed on the boost users mailinglist, when a user specified a vector as return target in their options_description, that is: {{{(""opt"", po::value&fA), """")}}} instead of {{{(""vecopt"", po::value>&vfa), """")}}} a simple syntax for specifying such a vector (that is, an option that can occur multiple times), on the command line, in a config file or even in an environment variable (sic!) can be used. Compare (for command line) [--test ""(1 2 3)""] with [--test 1 --test 2 --test 3]. Adding support for this syntax in the validate() function for vectors ensures that the braces (feel free to change them to another symbol that makes better sense to you) will only be processed specially when the user specified a vector as output variable. It will not break any existing option input systems defined by users. Note that it will still be possible to specify options multiple times, the values of which will be accumulated in the vector. One could even supply multiple vector-syntax inputs for the same option, which would then get concatenated together. The code is not yet totally finished, I need to add support for handling vectors of strings, marked as TODO in the code. proposed diff: {{{ Index: value_semantic.hpp =================================================================== --- value_semantic.hpp (revision 54915) +++ value_semantic.hpp (working copy) @@ -8,6 +8,8 @@ #include +#include + namespace boost { namespace program_options { extern BOOST_PROGRAM_OPTIONS_DECL std::string arg; @@ -124,7 +126,8 @@ #endif /** Validates sequences. Allows multiple values per option occurrence - and multiple occurrences. */ + and multiple occurrences. This function is only called when user + supplied vector as datatype in option_description */ template void validate(boost::any& v, const std::vector >& s, @@ -142,11 +145,37 @@ /* We call validate so that if user provided a validator for class T, we use it even when parsing vector. */ - boost::any a; - std::vector > v; - v.push_back(s[i]); - validate(a, v, (T*)0, 0); - tv->push_back(boost::any_cast(a)); + + vector> value; + + // test if vector notation is used in input + if (*s[i].begin() == '(' && *s[i].rbegin() == ')') + { + // test if it is a vector of strings + if (is_same::value||is_same::value) + { + /** TODO: needs special treatment, cant simply split + on space character + For now, proceed as before */ + value.push_back(s[i]); + } + else + { + split( value, s[i].substr(1, s[i].size()-2), is_any_of( "" "") ); + } + } + else + value.push_back(s[i]); + + // validate option values + for (unsigned j = 0; j < value.size(); j++) + { + boost::any a; + std::vector > v; + v.push_back(value[j]); + validate(a, v, (T*)0, 0); + tv->push_back(boost::any_cast(a)); + } } catch(const bad_lexical_cast& /*e*/) { boost::throw_exception(invalid_option_value(s[i])); }}}" Diederick C. Niehorster Boost 1.39.0 3343 [Program options] add option to place description on the next line in output program_options Boost 1.39.0 To Be Determined Feature Requests Vladimir Prus new 2009-08-14T10:54:53Z 2015-03-30T12:56:24Z "If some param has long length and default value, then description of such param (and other params) has ugly output - very narrow text column.[[BR]] If it is possible then please deal with this issue.[[BR]][[BR]] For example, description of some option could be placed on the second line after its-name-and-default-value line." rshmelev@… Boost 1.39.0 3030 [crc] optimization of crc_optimal::process_block crc Boost 1.39.0 Boost 1.40.0 Patches Daryle Walker new 2009-05-14T21:18:29Z 2012-02-26T12:09:37Z Function 'process_block()' can be easily optimized (I got about 20% in performance on ARM9/GCC 3.4.3/4.2.0) qehgt0@… Boost 1.39.0 3362 PySte crashes with TypeError python USE GITHUB Boost 1.39.0 Boost 1.40.0 Patches Dave Abrahams new 2009-08-24T21:00:49Z 2014-02-18T14:13:48Z "Certain C++ declarations can create unnamed classes, which cause GCCXML output to omit the name field. This in turn will trigger the following nasty exception (only the last part of the long traceback is shown): {{{ File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 350, in ParsePointerType type = self.GetType(element.get('type')) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 126, in GetType decl = self.GetDecl(id) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 108, in GetDecl self.ParseElement(id, elem) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 70, in ParseElement func(id, element) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 319, in ParseStruct self.ParseClass(id, element) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 306, in ParseClass self.AddDecl(class_) File ""C:\Python26\lib\site-packages\Pyste\GCCXMLParser.py"", line 57, in AddDecl if decl.FullName() in self._names: File ""C:\Python26\lib\site-packages\Pyste\declarations.py"", line 49, in FullName return namespace + self.name TypeError: cannot concatenate 'str' and 'NoneType' objects }}} The fix is quite simple: change {{{ def ParseClass(self, id, element): name = element.get('name') }}} to {{{ def ParseClass(self, id, element): name = element.get('name', id) }}} on line 290 of GCCXMLParser.py." nneonneo@… Boost 1.40.0 3383 no ptr_list::splice ptr_container Boost 1.40.0 Boost 1.41.0 Bugs Thorsten Ottosen new 2009-09-01T14:20:10Z 2009-09-04T07:18:50Z "ptr_list doesn't offer an equivalent to std::list::splice. it does offer ptr_sequence_adapter::transfer(), but that doesn't give any guarantee of constant time complexity, and as far as I can see transfering all the contents of a ptr_list into another is in fact implemented in linear complexity. " anonymous Boost 1.40.0 3406 False strong guarantee in documentation ptr_container Boost 1.40.0 Boost 1.41.0 Bugs Thorsten Ottosen new 2009-09-05T17:04:26Z 2009-09-05T17:04:26Z "For many functions inserting pointers into a pointer container, the documentation says that they provide strong exception-safety guarantee while they are actually not. Instead, they perform delete on the passed pointer if an exception is thrown. I propose the wording like this; ""When an exception is thrown, nothing happens except performing delete x."" Note that replacing it with ""basic guarantee"" is over relaxing. One should be able to assume the contents of the container are unchanged when an exception is thrown. This was first posted on the mailing list. http://lists.boost.org/Archives/boost/2009/08/155078.php " Kazutoshi Satoda Boost 1.40.0 3430 Build boost.regex shared-link 1.40 under mingw 3.4 build Boost 1.40.0 Boost 1.41.0 Bugs Vladimir Prus new 2009-09-09T22:24:14Z 2009-11-16T17:08:07Z "I try build boost.regex under mingw 3.4 (include in Qt SDK) I add mingw to PATH enviroment variable, than run: bootstrap.bat bjam.exe --build_type=complete --toolset=gcc --with-regex --with-program_options variant=release link=shared runtime-link=shared stage bjam build static lib version of boost.regex. It i use msvc2008 console tool, and use toolset ""msvc-9.0"" shared version build correct. It's like on bug. Thank you!" Oleg Tsarev Boost 1.40.0 3450 [fix in git] Bug into boost::python::stl_input_iterator python USE GITHUB Boost 1.40.0 Boost 1.41.0 Bugs troy d. straszheim assigned 2009-09-15T07:53:33Z 2009-09-21T07:59:44Z "I noticed that if you try to traverse more than once the range (begin,end) obtained with the `stl_input_iterator`, you don't get the expected results.[[BR]] [[BR]] Please, look at the attached code (rangemodule.cpp) and at the usage from the python console (python_console.txt).[[BR]] [[BR]] The problem is given by the call to the `std::distance` function.[[BR]] If you build with `-DWORK_AROUND` the problem disappears, but I need to call `std::distance`, because it is the original class that calls it (and I prefer not to modify it simply for building a python extension)." micdestefano@… Boost 1.40.0 3482 ptr_sequence_adapter documentation erratum ptr_container Boost 1.40.0 Bugs Thorsten Ottosen new 2009-09-23T09:14:08Z 2009-09-23T09:14:08Z "[http://www.boost.org/doc/libs/1_40_0/libs/ptr_container/doc/ptr_sequence_adapter.html] Semantics: construct/copy/destroy * template< class !InputIterator > void assign( !InputIterator first, !InputIterator last ); * Requirements: '''('''first,last''']''' is a valid range there is should be '''['''first, last''')''' half-open interval" Igor Pavlov Boost 1.40.0 3490 Boost.Parameter should not depend on Boost.Python parameter Boost 1.40.0 Boost 1.41.0 Bugs troy d. straszheim new 2009-09-27T02:17:31Z 2010-01-19T20:08:36Z "The header boost/parameter/aux_/maybe.hpp includes . This introduces a dependency for Boost.Parameter on Boost.Python. Worse: it depends on a '''detail''' of Boost.Python. Vendors such as Debian often split out Boost.Python from the mainstream, and this causes problems for us; c.f. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=548503 " smr@… Boost 1.40.0 3530 MPL components missing ADL barrier mpl Boost 1.40.0 Boost 1.41.0 Bugs Aleksey Gurtovoy new 2009-10-17T09:40:54Z 2009-10-17T09:40:54Z "mpl::size (among others) are not ADL protected which leads to ambiguity in soem scenario where MPL components are used as tempalte parameters and a size() function is defined. As there is already a ADL barrier system usable in MPL, the fix should be only to use it around those components." Joel Falcou Boost 1.40.0 3531 initial_path is not thread-safe filesystem Boost 1.40.0 Boost 1.41.0 Bugs Beman Dawes reopened 2009-10-19T09:10:50Z 2016-06-27T13:36:20Z "The initial_path template function uses function-local static variable and thus is not thread-safe. The documentation states the recommendadion to call initial_path from the beginning of the main function. However, following it is not sufficient because: 1. If the application consists of several modules (dll or so), on many architectures each module will contain its own copy of the static variable defined in initial_path. Each copy will be initialized as needed, when initial_path is called from within the corresponding module. 2. The threads may already be running when initial_path is called. This may be true regardless of whether initial_path is called from main or some another place in a dll. What makes the problem worse is that there are two such functions, actually: initial_path< path >() and initial_path< wpath >(). Each of them will have the described problem. " Andrey Semashev Boost 1.40.0 3540 [fix in git] use boost::aligned_storage rather than boost::python::aligned_storage python USE GITHUB Boost 1.40.0 Boost 1.41.0 Bugs troy d. straszheim new 2009-10-22T02:50:55Z 2009-10-22T04:04:19Z Looks like duplicated code that could be factored out. Also the parameter library depends on boost/python/detail/referent_storage, see ticket #3490, this causes packaging problems. troy d. straszheim Boost 1.40.0 3547 Valgrind finds errors into compressed_matrix serialization uBLAS Boost 1.40.0 Boost 1.42.0 Bugs Gunter new 2009-10-23T13:14:36Z 2009-10-28T22:21:43Z "I tried to write a compressed matrix to an archive and to re-read it from the archive.[[BR]] Without valgrind, the program seems to run correctly, but, if run with valgrind, it outputs some errors.[[BR]] [[BR]] I attached the source code and the valgrind output.[[BR]] I ran valgrind with this command: {{{ valgrind ./compressed_mtx_ser test.arch >& valgrind.out }}} It seems that the serialization function tries to write not itialized bytes to file." micdestefano@… Boost 1.40.0 3550 specify toolset to bootstrap.bat Building Boost Boost 1.40.0 Boost 1.46.0 Bugs Vladimir Prus assigned 2009-10-23T15:14:14Z 2010-12-19T22:05:03Z "Hi, calling ""bootstrap.bat"" results in successful compilation of boost_1_40_0\tools\jam\src\bin.ntx86_64\bjam.exe but this is not where the bootstrap.bat expects it to be, as it only supports x86 as it seems. BTW: tools\jam\src\build.bat somehow finds my VS2010beta and uses that for compilation (although I'd like it to use my production VS9) and it seems I have no control of telling ""bootstrap.bat"" to use a custom toolset (this is supported by build.bat) cheers Chris" bielow@… Boost 1.40.0 3564 bjam creates wrong library name when toolset choice is invalid Building Boost Boost 1.40.0 Boost 1.42.0 Bugs Vladimir Prus assigned 2009-10-26T15:25:57Z 2009-11-10T07:11:18Z "Hi, I just called boost using ""bjam address-model=64 install --with-math link=static toolset=msvc-9 variant=debug"" which creates libraries without any VC version number: --> libboost_math_tr1l-vc-mt-gd-1_40.lib which should be --> libboost_math_tr1l-vc90-mt-gd-1_40.lib This leads to auto-linking errors. The documentation at multiple points simply states that appending the MSVC version number to the toolset will work, however the correct syntax for the call is: ""toolset=msvc-9.0"" and not ""toolset=msvc-9"" The documentation for valid numbers is somewhat hidden as well (http://www.boost.org/boost-build2/doc/html/bbv2/reference/tools.html#bbv2.reference.tools.compiler.msvc). At least the toolset docu (http://www.boost.org/doc/libs/1_40_0/more/getting_started/windows.html#identify-your-toolset) could use the above link! So, is it possible to introduce white-lists for the toolset options to avoid this kind of error?! " bielow@… Boost 1.40.0 3572 mapped_file: reading/writing mapped memory can throw (structured) exceptions? (windows) iostreams Boost 1.40.0 Boost 1.41.0 Bugs Jonathan Turkanis new 2009-10-28T11:48:58Z 2009-10-28T12:15:26Z "msdn: ""Reading and Writing From a File View"" (http://msdn.microsoft.com/en-us/library/aa366801(VS.85).aspx) ""Reading from or writing to a file view can cause an EXCEPTION_IN_PAGE_ERROR exception. For example, accessing a mapped file that resides on a remote server can generate an exception if the connection to the server is lost. Exceptions can also occur because of a full disk, an underlying device failure, or a memory allocation failure. When writing to a file view, exceptions can also occur because the file is shared and a different process has locked a byte range. To guard against exceptions due to input and output (I/O) errors, all attempts to access memory mapped files should be wrapped in structured exception handlers"" DWORD dwLength; __try { dwLength = *((LPDWORD) lpMapAddress); } __except(GetExceptionCode()==EXCEPTION_IN_PAGE_ERROR ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) { // Failed to read from the view. } ... so it should be mentioned in the documentation? (windows specific) " xurux1-mail@… Boost 1.40.0 3607 no error reporting when parsing ptime with user-defined facets (with bugfix) date_time Boost 1.40.0 Boost 1.41.0 Bugs az_sw_dude new 2009-11-11T10:15:32Z 2009-11-11T10:15:32Z "When parsing date/time with facets mismatches doe not get reported (e.g. vial failbit) reproduceable testcase: parse ""20090101"" with facet ""%Y-%m-%dT%H:%M:%S%F"" yields correctly parsed ptime ""1-Oct-2009"" but should not. the patch: adds check for testing of seperator characters to match format and actual parsed string. Maybe the additional check should be applied to different locations in the source code, which I cannot judge at this point." Thomas.Lemm@… Boost 1.40.0 3609 select_reactor, result of select() isn't checked for error asio Boost 1.40.0 Boost 1.41.0 Bugs chris_kohlhoff new 2009-11-11T12:05:13Z 2011-01-24T09:39:58Z "The problem is in select_reactor::run() (boost\asio\detail\select_reactor.hpp). Related issue: [http://sourceforge.net/tracker/?func=detail&aid=2893275&group_id=122478&atid=694037] " pavel@… Boost 1.40.0 3625 python detection randomly broken build Boost 1.40.0 To Be Determined Bugs Vladimir Prus new 2009-11-15T15:49:49Z 2010-06-07T09:52:58Z "We had at least two bug reports that python detection does not work on windows. In both cases, removing the {{{ if [ version.check-jam-version 3 1 17 ] || ( [ os.name ] != NT ) }}} block in python.jam:probe fixed that. One case was definitely mingw-built bjam, the other case, for all appearences, is MSVC. Log for the second case is attached. " Vladimir Prus Boost 1.40.0 3690 regex depends on pthread library when boost is built with threading=single build Boost 1.40.0 Boost 1.42.0 Bugs Vladimir Prus new 2009-11-28T06:19:27Z 2009-12-03T18:24:26Z "regex depends on pthread library when boost is built with threading=single static_mutex.cpp uses the functions pthread_mutex_unlock and pthread_mutex_lock. This creates a dependancy on pthreads which should not exist when compiled with threading=single. This is, in particular, a problem when static linking on AIX. It appears that BOOST_HAS_THREADS is still being set when threading=single is set on the bjam command line." jdccdevel@… Boost 1.40.0 4155 function docstring signatures include self argument python USE GITHUB Boost 1.40.0 Boost 1.43.0 Bugs Dave Abrahams new 2010-04-27T20:41:51Z 2010-06-14T14:31:36Z "boost::python generates Python signatures, but these include a useless (and confusing) arg1 arguments for the class's self. I don't believe that python documentation should generally show this because people know that they are class methods. For example: http://www.murrayc.com/temp/glom_1_14_pydoc.html I'm using boost::python 1.40 in Ubuntu Karmic. I can't find any list of what's changed since then." murrayc@… Boost 1.40.0 5477 xlC 6.0 - ptr_vector error ptr_container Boost 1.40.0 To Be Determined Bugs Thorsten Ottosen new 2011-04-15T11:39:19Z 2011-04-15T11:39:19Z "Hi, The attached testcase fails on xlC 6.0 but compiles well on xlC 9.0 xlC 6.0 % xlC -qversion C for AIX version 6.0.0.0 % xlC -q64 -I../3rd_party/boost/1_40_0 boost_ptr_vec.cpp ""boost_ptr_vec.cpp"", line 5.16: 1540-0198 (W) The omitted keyword ""private"" is assumed for base class ""boost::noncopyable"". ""../3rd_party/boost/1_40_0/boost/ptr_container/ptr_vector.hpp"", line 45.9: 1540-0400 (S) ""boost::ptr_vector::release"" has a conflicting declaration. ""../3rd_party/boost/1_40_0/boost/ptr_container/ptr_vector.hpp"", line 45.9: 1540-0425 (I) ""release"" is defined on line 45 of ""../3rd_party/boost/1_40_0/boost/ptr_container/ptr_vector.hpp"". xlC 9.0: % xlC -qversion IBM XL C/C++ Enterprise Edition for AIX, V9.0 Version: 09.00.0000.0012 xlC -q64 -I/remote/sesnightly/p4/depot/cats/31/3rd_party/boost/1_40_0 boost_ptr_vec.cpp ""boost_ptr_vec.cpp"", line 5.16: 1540-0198 (W) The omitted keyword ""private"" is assumed for base class ""boost::noncopyable"". Is there any patch to make it work on xlC 6.0? Thanks, Radha" radha.nitt@… Boost 1.40.0 3396 add a sparse_view class that wraps pre-allocated data into a matrix expression uBLAS Boost 1.40.0 Boost 1.42.0 Feature Requests Gunter assigned 2009-09-03T20:16:06Z 2009-10-06T23:13:48Z "Provide a way to use ublas with pre-allocated data. Implement a matrix view of a CRS matrix as proof of concept. Details: * given 3 arrays: row pointers, column indices, values (http://www.netlib.org/utk/papers/templates/node90.html) * provide a wrapper that fulfills the immutable part of the matrix expression Further tasks: * split the current matrix and vector concepts into immutable and mutable parts in order to gain a ""read-only view"" concept and a full featured ""expression"" concept * improve traits mechanism and apply it where possible to automatically see a fixed size C-array as vector view or matrix view * add necessary tests " Gunter Boost 1.40.0 3398 boost::posix_time::time_duration accesser for obtaining milliseconds date_time Boost 1.40.0 Boost 1.41.0 Feature Requests az_sw_dude new 2009-09-03T22:08:17Z 2010-12-08T06:37:34Z "Hey guys: It would be really nice to get the milliseconds of time in boost::posix_time::time_duration. There is only an option to get the total_milliseconds(), which gives the result of the total milliseconds that have passed in that day. Although I can take this and compute hours, minutes, seconds and milliseconds from it, it is a bit of a pain in the ass to do it that way. It would be much nicer if I could just call a function to give me the millisecond remainder from seconds. You have accessers like this for hours, minutes, and seconds, so why not milliseconds?" Raymond Chandler III Boost 1.40.0 3423 Diagnostic of errors. program_options Boost 1.40.0 Boost 1.42.0 Feature Requests Sascha Ochsenknecht reopened 2009-09-08T11:22:54Z 2010-05-11T14:21:39Z "1. Some classes of errors (for example ""unknown_option"") are not remembered parameters transferred in the constructor. It does not allow to generate non standard diagnostics (for example not in English). 2. In a class ""multiple_occurrences"" there is no diagnostics for what parameter the error is found out. " Alex Bukreev Boost 1.40.0 3446 [boost] [fusion] transform does not return a mutable view fusion Boost 1.40.0 Boost 1.41.0 Feature Requests Joel de Guzman new 2009-09-14T05:03:53Z 2009-09-21T18:40:45Z Based on the documentation (and my own experience), it doesn't appear that transform will return a mutable transform_view, since transform receives its sequence argument always by const reference. Is this intentional, or an oversight? It seems like there's no loss in providing 2 overloads of transform, one accepting a const reference and one accepting a non-const reference. jhellrung@… Boost 1.40.0 3457 introduce move semantics to container types uBLAS Boost 1.40.0 Boost 1.41.0 Feature Requests Gunter new 2009-09-16T21:54:30Z 2009-10-06T22:35:55Z "I am writing many routines where I would strongly prefer: {{{matrix f(const matrix& in)}}} to {{{void f(const matrix& in, matrix& out )}}} There has been a lot of discussion about this from the C++ groups: * The move library to support this in C++03 * http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/ Also, I see that this is native to MTL: http://www.osl.iu.edu/research/mtl/mtl4/doc/matrix_assignment.html#move_semantics" Gunter Boost 1.40.0 3478 Min cut interface for BGL graph Boost 1.40.0 To Be Determined Feature Requests Andrew Sutton assigned 2009-09-22T14:00:56Z 2010-12-08T19:44:44Z "1) The max flow can be obtained with: (any of the max_flow algorithms, kolmogorov is just used as an example) double flow = kolmogorov_max_flow(g, SourceNode, SinkNode); It would be nice to also interpret this max flow as a min cut. I.e. be able to tell which nodes of g belong to the ""source side"" of the graph and which nodes belong to the ""sink side""? Maybe something like a std::vector GetSourceSideNodes(); //return the IDs of the nodes on the source side std::vector GetSinkSideNodes();//return the IDs of the nodes on the sink side std::vector GetCutEdges(); // return the IDs of the edges which were cut 2) Allow the min cut algorithm to accept multiple sources/sinks. The cut should simply be the minimum sum of edges that can be severed to split the graph so that all of the sinks are on one side of the cut and all of the sources are on the other side of the cut. 3) Find the minimum cut that partitions the graph into two parts without specifying a source/sink? I.e. the minimum of all of the possible source/sink pairs minium cuts. 4) Currently you must use a bidirectional graph, and specify an edge_reverse_t in the graph traits, then set the reverse edge for every edge. a) this is pretty complicated for someone who is unfamiliar with generic programming. b) If an undirected graph is used, the algorithm should automatically take care of adding these reverse edges if they are required for the cut to be performed. 5) VERY simple examples (actually constructing a graph (not reading it from file) with < 10 nodes) should be provided to demonstrate all of these cases." David Doria Boost 1.40.0 3483 non-null requirement in ptr_vector::transfer ptr_container Boost 1.40.0 Feature Requests Thorsten Ottosen assigned 2009-09-23T09:40:17Z 2011-03-31T20:52:16Z "[http://www.boost.org/doc/libs/1_40_0/libs/ptr_container/doc/ptr_vector.html#c-array-support] is it possible to remove non-null requirement for ''from'' argument in ptr_vector::transfer method?" Igor Pavlov Boost 1.40.0 3488 A better way to make python functions that take arbitrary number of args than raw_function python USE GITHUB Boost 1.40.0 To Be Determined Feature Requests Dave Abrahams new 2009-09-25T20:48:31Z 2009-09-25T21:31:27Z "raw_function can handle only C++ functions that take two args (tuple, dict) and seems to cause static assert if a keyword-expression is passed to def thus causing a lot of manual code if one wants to make it take named arguments or default arguments. It would be nice if there was a way to make such functions closer to defs in python itself, something like this: {{{ void foo(int arg1, int arg2, tuple args, dict kw); def(""foo"", foo, (arg(""arg1"") = 1, arg(""arg2"") = 2, arg(""*args""), arg(""**kw"")) // that would pass extra positional args in foo's third arg and extra keyword args to foo's fourth arg }}} " loonycyborg Boost 1.40.0 3510 Introduce new diag function for creating diagonal matrices and for returning the diagonal of a matrix uBLAS Boost 1.40.0 Boost 1.41.0 Feature Requests Gunter new 2009-10-05T08:37:10Z 2009-10-05T08:37:10Z "Introduce a new '''diag''' free function in the spirit of the MATLAB's ''diag'' function and Mathematica's ''DiagonalMatrix function''. Basically it allows both the creation of a ''generalized'' diagonal matrix and the creation of a ''diagonal'' view of an existing matrix. A ''generalized'' k-th diagonal matrix is a special kind of matrix which has all elements set to zero but the ones on its k-th diagonal. The integer k is the offset from the main diagonal, that is: * k = 0: the elements on the main diagonal can be different from zero. * k > 0: only the elements on the k-th upper diagonal can be different from zero. * k < 0: only the elements on the k-th lower diagonal can be different from zero. A generalized diagonal matrix can be a rectangular matrix. Here below is a list of the requested cases: * Create a square diagonal matrix M with vector V being the k-th diagonal {{{M = diag(v,k)}}} * Like the above, but M has layout l (e.g., column major) {{{M = diag(v,k,l)}}} * Create a rectangular diagonal matrix M of size mXn with vector V being the k-th diagonal {{{M = diag(v,m,n,k)}}} * Like the above, but M has layout l (e.g., column major) {{{M = diag(v,m,n,k,l)}}} * Create a diagonal view of the k-th diagonal of matrix M {{{v = diag(M,k)}}} " marco.guazzone@… Boost 1.40.0 3519 It should be possible to use consts as external placeholder variables. xpressive Boost 1.40.0 To Be Determined Feature Requests Eric Niebler assigned 2009-10-12T15:26:05Z 2010-10-06T18:18:53Z "The right-and-side of placeholder let-expressions are not declared as const, so common use-cases like: {{{ placeholder _i; smatch what; what.let(_i = 1); }}} or: {{{ placeholder _p; smatch what; what.let(_p = this); }}} fail to compile. It would be nice to have some way to specify a placeholder for non-mutable data. Perhaps: {{{ placeholder _i; }}} (suggested by Eric Niebler) " ami.ganguli@… Boost 1.40.0 3624 quote0 is missing mpl Boost 1.40.0 Boost 1.41.0 Feature Requests Aleksey Gurtovoy new 2009-11-15T15:23:01Z 2009-11-15T15:33:25Z "quote0 is missing but maybe needed in case we want to turn a meta-function like : struct foo { typedef float type; } in a meta-function class." Joel Falcou Boost 1.40.0 3627 boost::asio::async_read() cannot be used with null_buffers() asio Boost 1.40.0 To Be Determined Feature Requests chris_kohlhoff new 2009-11-16T09:55:23Z 2010-01-12T21:46:23Z "An attempt to use async_read() with null_buffers() causes the handler to be invoked even when the underlying file descriptor is not yet available for reading. The following test demonstrates the problem void test_async_read() { struct local { static void on_ready(boost::system::error_code const& error, int* invoked) { BOOST_CHECK(!error); *invoked = 1; } }; int p[2]; int const s = pipe(p); BOOST_CHECK(0 == s); boost::asio::io_service ios; boost::asio::posix::stream_descriptor sd(ios, p[0]); ios.reset(); int invoked = 0; boost::asio::async_read(sd, boost::asio::null_buffers(), boost::bind(&local::on_ready, _1, &invoked)); ios.poll_one(); BOOST_CHECK(!invoked); // doesn't pass } This test doesn't pass on linux using either epoll or select multiplexing mechanism. This test also doesn't pass on freebsd using either kqueue or select multiplexing mechanism." Dmitry Goncharov Boost 1.40.0 3713 no straightforward way to convert fractional number of seconds to time duration date_time Boost 1.40.0 Boost 1.42.0 Feature Requests az_sw_dude new 2009-12-03T20:12:46Z 2010-12-08T20:48:58Z "It should be possible to just build a time duration for given number of seconds for double or float parameters. Current best way suggested on IRC is 'milliseconds (1000 * num_seconds)', but it feels like doing extra unneeded work. Besides, this way I need to choose between milli/micro/nano weighing precision loss vs. potential overflow on 32-bit machines. Boost, knowing how many ticks are in a second, could do this better. What I'm actually trying to do is to call timed_wait() on a condition. Currently, I have to condition.timed_wait (lock, milliseconds (1000 * num_seconds)); where as if double was implicitly convertible to time duration I could just condition.timed_wait (lock, num_seconds); which is cleaner and more explicit." Paul Pogonyshev Boost 1.40.0 3728 boost::ublas headers cause multiple warnings with -Wshadow uBLAS Boost 1.40.0 Boost 1.42.0 Patches Gunter new 2009-12-07T22:51:29Z 2010-03-27T06:01:34Z The headers in boost::ublas often make use of local variables that shadow functions or other local variables. Eliminating these warnings simply requires changing the variable names. marc.schafer@… Boost 1.40.0 3408 gamma distribution's quantile performance math Boost 1.40.0 Boost 1.41.0 Tasks John Maddock assigned 2009-09-06T18:50:32Z 2009-10-06T17:13:28Z "Hi there, I have created a test which times the performance of boost::math::quantile( ... ) when using a gamma distribution. I ran it against source code we use here at work, for ages. It can be found here: http://people.sc.fsu.edu/~burkardt/cpp_src/dcdflib/dcdflib.html The old source code is about 2x times faster than the boost version. MS Visual Studio 2005: boost: 35.4sec att_bell:19sec Intel 11.1: boost: 21.4sec att_bell: 11.2sec Question is if there is a way to incorporate such a function into boost::math? As far, as I can tell the results are almost identical. Here the code: #include #include #include double min_mean = 2000; // 2,000 double max_mean = 500000000; //500,000,000 double min_std = 10000; // 10,000 double max_std = 100000000; // 100,000,000 double min_max = 600000000; // 600,000,000 double max_max = 1000000000; // 1,000,000,000 const std::size_t max_year = 5000000; // 5,000,000 const double right = 0.999; const double left = 0.001; inline double get_rand() { return static_cast< double >( std::rand() ) / static_cast< double >( RAND_MAX ); } inline void boost_( boost::math::gamma_distribution<>& d, double q ) { double value = boost::math::quantile( d, q ); } inline void att_bell( double alpha, double beta, double q ) { double q_Minus1 = 1 - q; double value = 0.0; double bound = 0.0; int which = 2; int status = 0; cdfgam( &which , &q , &q_Minus1 , &value , &alpha , &beta , &status , &bound ); } int main() { // boost { std::srand( 0 ); boost::timer timer; for( std::size_t y = 0; y < max_year; ++y ) { if(( y % 100000 ) == 0 ) std::cout << y << std::endl; double mean = get_rand() * ( max_mean - min_mean ) + min_mean; double std = get_rand() * ( max_std - min_std ) + min_std; double alpha = mean * mean / std / std; // shape parameter double beta = mean / alpha; // scale parameter boost::math::gamma_distribution<> d( alpha, beta ); boost_( d, right ); boost_( d, left ); } std::cout << ""Boost - Time elapsed: "" << timer.elapsed() << "" sec"" << std::endl; } // att bell { std::srand( 0 ); boost::timer timer; for( std::size_t y = 0; y < max_year; ++y ) { if(( y % 100000 ) == 0 ) std::cout << y << std::endl; double mean = get_rand() * ( max_mean - min_mean ) + min_mean; double std = get_rand() * ( max_std - min_std ) + min_std; double alpha = mean * mean / std / std; // shape parameter double beta = mean / alpha; // scale parameter att_bell( alpha, beta, right ); att_bell( alpha, beta, left ); } std::cout << ""ATT Bell - Time elapsed: "" << timer.elapsed() << "" sec"" << std::endl; } return 0; } " chhenning@… Boost 1.40.0 4790 Suggest improvement to mpl::string documentation mpl Boost 1.40.0 To Be Determined Tasks Aleksey Gurtovoy new 2010-10-26T03:31:27Z 2010-10-26T03:34:05Z " I suggest adding a warning to the documentation for mpl::string regarding multi-byte character types. Specifically, I was unable to compile the example: typedef mpl::string<'hell','o wo','rld'> hello; typedef mpl::push_back >::type hello2; BOOST_ASSERT(0 == std::strcmp(mpl::c_str::value, ""hello world!"")); Using g++ 4.4.3 I got: error: multi-character character constant Comprehending the problem involved investigating/learning the following points: what is a multi-character literal the warning in g++ can be disabled with -Wno-multichar (I always use -Werror, hence all warnings generate errors) the maximum length of a multi-character literal on my system is 4 characters The latter two points are OS specific and therefore don't seem appropriate for the mpl::string documentation, and the first point may I guess be regarded as expected prior knowledge (though a one sentence summary would save a lot of time since they appear to be not so widely known). But I do recommend adding a caveat beside the example code regarding possible problems compiling multi-character literals, and the alternative equivalent example with the characters independently ('h','e','l', ...). I also recommend including a warning regarding their implementation-dependent nature (based on what the g++ manual has to say; copied below) since they appear likely to propagate portability problems. -Wno-multichar Do not warn if a multicharacter constant ('FOOF') is used. Usually they indicate a typo in the user's code, as they have implementation-defined values, and should not be used in portable code. I hope this comment is useful. I am repeatedly awed by the cunning majesty of all the boost libraries I have explored and the MPL may be, for me, at the peak in that respect. " Joshua Hale Boost 1.41.0 3109 time_duration::total_seconds() - overflow date_time Boost 1.41.0 To Be Determined Bugs az_sw_dude new 2009-05-29T14:30:21Z 2016-08-02T05:45:20Z "time_duration::total_seconds() overflow value minimal sample (based on boost example) ////////////////////////////////////////////////////////////// #include #include int main() { using namespace boost::gregorian; using namespace boost::local_time; using namespace boost::posix_time; date in_date(2039, 10, 04); time_duration td(12,14,32); std::string z(""PST-8PDT,M4.1.0,M10.1.0""); time_zone_ptr zone(new posix_time_zone(z)); local_date_time my_time(in_date, td, zone, local_date_time::NOT_DATE_TIME_ON_ERROR); std::cout << my_time << std::endl; // ptime time_t_epoch( date(1970,1,1) ); std::cout << time_t_epoch << std::endl; // time_duration diff = my_time.utc_time() - time_t_epoch; std::cout << ""Seconds diff: "" << diff.total_seconds() << std::endl; return 0; } ////////////////////////////////////////////////////////////// " ioni@… Boost 1.41.0 3653 converter collisions behave differently debug|release python USE GITHUB Boost 1.41.0 Boost 1.42.0 Bugs Dave Abrahams new 2009-11-20T21:02:41Z 2009-11-20T21:02:41Z "from a thread on the c++-sig list titled ""dynamic compile and to-Python converter..."" The 'worst' and most common scenario is, precisely put: more than one python extension module over which we have no control has wrapped type T. We need to use them simultaneously. For instance, here are two modules that both wrap vector. With assertions enabled, this happens: >>> import converter_collisions1_ext >>> import converter_collisions2_ext python: /home/troy/Projects/boost/src/libs/python/src/converter/registry.cpp:212: void boost::python::converter::registry::insert(PyObject* (*)(const void*), boost::python::type_info, const PyTypeObject* (*)()): Assertion `slot->m_to_python == 0' failed. zsh: abort python delightfully, without assertions there is only a warning: >>> import converter_collisions1_ext >>> import converter_collisions2_ext __main__:1: RuntimeWarning: to-Python converter for std::vector > already registered; second conversion method ignored. So one resolution is to remove the 'assert' that triggers this crash and leave the semantics as-is: second and later converter registrations are warned about and ignored. I'm simply suggesting we give the user more control over this behavior, because in a number of situations (it is up to the user to determine what they are) such control would be useful. " troy d. straszheim Boost 1.41.0 3675 Boost.Parameter passing function pointers parameter Boost 1.41.0 Boost 1.42.0 Bugs Daniel Wallin new 2009-11-26T16:10:03Z 2010-01-08T14:02:55Z "When passing function pointers with Boost.Parameter on Boost 1.41 on MacPorts, there are errors. Apparently, somewhere the function type gets a ""const"" and that breaks stuff. That's the error message: {{{ bash-3.2$ make CXXFLAGS=-I/opt/local/include test g++ -I/opt/local/include test.cc -o test /opt/local/include/boost/parameter/aux_/arg_list.hpp: In constructor 'boost::parameter::aux::arg_list::arg_list(A0&, A1&, A2&, A3&, A4&) [with A0 = void ()(int)const, A1 = boost::parameter::void_, A2 = boost::parameter::void_, A3 = boost::parameter::void_, A4 = boost::parameter::void_, TaggedArg = boost::parameter::aux::tagged_argument, Next = boost::parameter::aux::empty_arg_list]': /opt/local/include/boost/parameter/parameters.hpp:876: instantiated from 'typename boost::mpl::first, typename boost::parameter::aux::make_deduced_items > > > > >::type, boost::parameter::aux::tag_keyword_arg, mpl_::bool_ >::type>::type boost::parameter::parameters::operator()(A0&) const [with A0 = void ()(int)const, PS0 = boost::parameter::required >, PS1 = boost::parameter::void_, PS2 = boost::parameter::void_, PS3 = boost::parameter::void_, PS4 = boost::parameter::void_]' test.cc:9: instantiated from 'typename boost_param_result_14testfn::type>::type testfn(const ParameterArgumentType0&, typename boost::parameter::aux::match::type) [with ParameterArgumentType0 = void ()(int)]' test.cc:20: instantiated from here /opt/local/include/boost/parameter/aux_/arg_list.hpp:208: error: no matching function for call to 'boost::parameter::aux::tagged_argument::tagged_argument(void (&)(int)const)' /opt/local/include/boost/parameter/aux_/tagged_argument.hpp:37: note: candidates are: boost::parameter::aux::tagged_argument::tagged_argument(Arg&) [with Keyword = tag::par, Arg = void ()(int)] /opt/local/include/boost/parameter/aux_/tagged_argument.hpp:32: note: boost::parameter::aux::tagged_argument::tagged_argument(const boost::parameter::aux::tagged_argument&) make: *** [test] Error 1 bash-3.2$ }}} The example compiles on Linux just fine. I will attach the example if I find out how to do it. Please provide a workaround for the time until the fix for this hits the shelves. " Aristid Breitkreuz Boost 1.41.0 3683 Build fails on MacOS build Boost 1.41.0 Boost 1.42.0 Bugs Vladimir Prus new 2009-11-27T16:28:30Z 2010-03-06T08:37:37Z "It looks like BB is using some option (-R) that's unknown to the default Mac toolset {{{ $ bjam gcc --build-dir=/tmp/build --debug-configuration notice: found boost-build.jam at /Users/dave/src/boost/boost-build.jam notice: loading Boost.Build from /Users/dave/src/boost/tools/build/v2 notice: Searching /etc /Users/dave /Users/dave/src/boost/tools/build/v2 /usr/share/boost-build /Users/dave/src/boost/tools/build/v2/kernel /Users/dave/src/boost/tools/build/v2/util /Users/dave/src/boost/tools/build/v2/build /Users/dave/src/boost/tools/build/v2/tools /Users/dave/src/boost/tools/build/v2/contrib /Users/dave/src/boost/tools/build/v2/. for site-config configuration file site-config.jam . notice: Loading site-config configuration file site-config.jam from /Users/dave/src/boost/tools/build/v2/site-config.jam . notice: Searching /Users/dave /Users/dave/src/boost/tools/build/v2 /usr/share/boost-build /Users/dave/src/boost/tools/build/v2/kernel /Users/dave/src/boost/tools/build/v2/util /Users/dave/src/boost/tools/build/v2/build /Users/dave/src/boost/tools/build/v2/tools /Users/dave/src/boost/tools/build/v2/contrib /Users/dave/src/boost/tools/build/v2/. for user-config configuration file user-config.jam . notice: Loading user-config configuration file user-config.jam from /Users/dave/user-config.jam . docutils-dir= tools-dir= /opt/local/Library/Frameworks/Python.framework/Versions/2.5/bin notice: will use 'g++' for gcc, condition gcc-4.2 notice: using gcc libraries :: gcc-4.2 :: /opt/local/bin /opt/local/lib /opt/local/lib32 /opt/local/lib64 notice: using gcc archiver :: gcc-4.2 :: ar warning: toolset gcc initialization: can not find tool windres warning: initialized from /Users/dave/src/boost/tools/build/v2/build/project.jam:884 notice: using rc compiler :: gcc-4.2 :: as notice: will use 'g++' for gcc, condition gcc-4.4 notice: using gcc libraries :: gcc-4.4 :: /opt/local/bin /opt/local/lib /opt/local/lib32 /opt/local/lib64 notice: using gcc archiver :: gcc-4.4 :: ar warning: toolset gcc initialization: can not find tool windres warning: initialized from /Users/dave/src/boost/tools/build/v2/build/project.jam:884 notice: using rc compiler :: gcc-4.4 :: as notice: iostreams: using prebuilt zlib notice: iostreams: using prebuilt bzip2 notice: [python-cfg] Configuring python... notice: [python-cfg] Checking interpreter command ""python""... notice: [python-cfg] running command '""python"" -c ""from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" 2>&1' notice: [python-cfg] ...requested configuration matched! notice: [python-cfg] Details of this Python configuration: notice: [python-cfg] interpreter command: ""python"" notice: [python-cfg] include path: ""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6"" notice: [python-cfg] library path: ""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config"" ""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib"" notice: [python-cfg] framework directory is ""/opt/local/Library/Frameworks/Python.framework"" ...patience... ...patience... ...found 2711 targets... ...updating 434 targets... gcc.link /tmp/build/boost/bin.v2/libs/python/test/exec.test/gcc-4.2/debug/exec ld: unknown option: -R collect2: ld returned 1 exit status ""g++"" -L""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib"" -L""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config"" -Wl,-R -Wl,""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib"" -Wl,-R -Wl,""/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config"" -o ""/tmp/build/boost/bin.v2/libs/python/test/exec.test/gcc-4.2/debug/exec"" -Wl,--start-group ""/tmp/build/boost/bin.v2/libs/python/test/exec.test/gcc-4.2/debug/exec.o"" ""/tmp/build/boost/bin.v2/libs/python/build/gcc-4.2/debug/link-static/libboost_python.a"" -Wl,-Bstatic -lpython2.6 -Wl,-Bdynamic -lpython2.6 -Wl,--end-group -g ...failed gcc.link /tmp/build/boost/bin.v2/libs/python/test/exec.test/gcc-4.2/debug/exec... }}} " Dave Abrahams Boost 1.41.0 3710 error incorrect when calling boost::python function via functools.partial python USE GITHUB Boost 1.41.0 Boost 1.42.0 Bugs troy d. straszheim new 2009-12-03T18:54:50Z 2009-12-03T21:14:03Z "Neal Becker wrote: > Has anyone noticed that a function created with boost::python using > args() to give keyword arguments doesn't seem to work with functools.partial keyword arguments (but does with positional args)? > > For example, I have this function: > class_ > (""uniform_real"", ""Uniform float distribution"", bp::init( > (bp::arg (""rng""), > bp::arg (""min""), > bp::arg (""max""))... > > Then: > from functools import partial > f = partial (uniform_real, rng=rng1) << using keyword doesn't work > f (1,2) > ArgumentError: Python argument types in > uniform_real.__init__(uniform_real, int, int) > did not match C++ signature: > __init__(_object*, boost::random::mersenne_twister {lvalue} rng, double min, double max) > > But this works: > from functools import partial > f = partial (uniform_real, rng1) << pos arg does work > > In [27]: f(1,2) > Out[27]: uniform_real(1,2) > That doesn't work for pure python functions either: >>> def f(x,y,z): return x*100 + y*10 + z ... >>> from functools import partial as p >>> p(f,x=1)(2,3) Traceback (most recent call last): File """", line 1, in TypeError: f() got multiple values for keyword argument 'x' >>> p(f,x=1)(y=2,z=3) 123 >>> p(f,1)(2,3) 123 The error message is misleading for sure. Boost.python is going through a list of overloads and trying them in order; if it runs out of overloads, it says nothing matched." anonymous Boost 1.41.0 3716 Application crash when using Boost.Python in a plug-in DLL for that application python USE GITHUB Boost 1.41.0 Boost 1.42.0 Bugs Dave Abrahams new 2009-12-04T17:42:53Z 2010-04-20T17:57:02Z "I am developping a DLL for a Win32 application that already host a Python interpreter (Python 2.5.x) which I extend using Boost.Python. As far as Boost.Python is concerned, the sequence of operations (which I can't change) is : 1. App calls Py_Initialize 2. App loads my DLL 3. my DLL extend Python with a ""boost module"" (such as the ""Hello World"" example in the documentation 4. App notifies my DLL that it is about to be unloaded 5. App unloads my DLL 6. App calls Py_Finalize... and crash! The application doesn't use Boost.Python, and doesn't even share the C run-time (i.e. different heaps). Whether I use static or dynamic linking of Boost.Python doesn't seem relevant in that case. Yes, I know, Boost.Python doc states that Py_Finalize should not be called. But in that case, it IS called after my DLL is unloaded and I can't do anything about it (and I'd like to use Boost.Python in such a scenario). Cause : I manage to pinpoint where it fails from Py_Finalize. At that point, the 'Boost.Python.function' python object (defined in the function_type global variable in libs/python/src/object/function.cpp) is internally referenced by Python (by base class type among other things) and Python eventually tries to access it (at least change its ref count I guess). However, since the DLL is already unloaded, the memory that held the global variable is not mapped anymore. Resolution : Not being a Python expert, I haven't found a way to remove references to that 'Boost.Python.function' when my DLL is notified about being unloaded. I'd be glad to know if there is. However, it was fairly simple to get Python to allocate this object in its own heap, so that it lives as long as the interpreter. Attached is the patch file for that fix. I can't tell though how ""clean"" or not is copying a complete 'PyTypeObject' structure instance over a somewhat-already-initialized instance from PyObject_New()... but that seems to work. Note that to avoid the crash, I also need to ""undef"" all function definitions from the boost module with PyObject_DelAttr() (else Py_Finalize accesses them but they're from a heap that was deallocated from memory when the DLL was unloaded). That does not however require any modification to Boost.Python." Emmanuel Giasson Boost 1.41.0 3740 Documentation error in the MPL Reference manual mpl Boost 1.41.0 Boost 1.42.0 Bugs Joel Falcou new 2009-12-09T00:46:12Z 2011-04-10T11:31:09Z "In the MPL Reference Manual, for the miscellaneous data type void_, the synopsis shows a template class called ""is_void"". The name of the actual class in the boost/mpl/void.hpp header file is ""is_void_"". The documentation should be corrected." Edward Diener Boost 1.41.0 3769 darwin.jam: should include framework paths build Boost 1.41.0 Boost 1.42.0 Bugs Vladimir Prus new 2009-12-14T08:11:04Z 2012-03-08T16:32:59Z As -F is used to find include files, should include -F. See #3767 to see how it is used to work with Qt. Sohail Somani Boost 1.41.0 3779 Warning using less_equal points to bug mpl Boost 1.41.0 Boost 1.42.0 Bugs Aleksey Gurtovoy new 2009-12-19T07:18:17Z 2018-04-25T09:22:18Z "Compiling the following metafunction using VC9 gives a warning which suggests an mpl bug: #include #include #include namespace nmspace { struct ResultTypeIntegerValues { typedef boost::mpl::long_<0L> lzero; typedef boost::mpl::long_::const_min> lmin; typedef boost::mpl::less_equal::type type; }; } with warning: c:\utilities\boost\boost_1_40_0\boost\mpl\aux_\integral_wrapper.hpp(73) : warning C4307: '-' : integral constant overflow 1> c:\utilities\boost\boost_1_40_0\boost\mpl\aux_\preprocessed\plain\less_equal.hpp(60) : see reference to class template instantiation 'boost::mpl::long_' being compiled 1> with 1> [ 1> N=-2147483648 1> ] 1> c:\utilities\boost\boost_1_40_0\boost\mpl\aux_\preprocessed\plain\less_equal.hpp(70) : see reference to class template instantiation 'boost::mpl::less_equal_tag' being compiled 1> with 1> [ 1> T=nmspace::ResultTypeIntegerValues::lmin 1> ] 1> c:\programming\programs\xxx\yyy.h(64) : see reference to class template instantiation 'boost::mpl::less_equal' being compiled 1> with 1> [ 1> N1=nmspace::ResultTypeIntegerValues::lmin, 1> N2=nmspace::ResultTypeIntegerValues::lzero 1> ] The same warning occurs using Boost 1.41. As Steve Watanabe pointed out the problem looks to be: typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; which overflows when one is already at the minimal value. It seems mpl has to take into account the minimal value when using prior and probably the maximal value when using next. In any case I see nothing wrong in the code and therefore I do not think an overflow condition should not be taking place." Edward Diener Boost 1.41.0 3786 Incoherent views of various storage order multi_array Boost 1.41.0 To Be Determined Bugs Ronald Garcia new 2009-12-21T06:15:33Z 2009-12-21T06:15:33Z "I have a 256x258 array with only the first 256 lines of interest. The flatten memory block contains then 256 interesting values, 2 craps, 256 interesting values, 2 craps, etc. I want to access each column of the interesting block, then each line. For this I use : 1. a view of the array with limited range in the second dimension 2. a view of line-major ordered array reference to the same block of memory, with limited range in the first dimension Here is a test code: {{{ #!cpp #include #include ""boost/multi_array.hpp"" using namespace boost; using namespace std; int main () { // Create a 2D array that is 256 x 258 typedef multi_array array_type; typedef multi_array_ref ref_type; typedef array_type::array_view<2>::type view_type; array paddedExt = {256,258}; array_type A(paddedExt); /*Initialize the whole memory block with -1 */ fill(A.origin(), A.origin()+A.num_elements(),-1.0); /*Fill the usefull part of the array by accessing data by column*/ view_type B = A[indices[range()][range(0,256)]]; for(view_type::iterator i=B.begin(); i!=B.end(); ++i) for(view_type::subarray<1>::type::iterator j=i->begin(); j!=i->end(); ++j) *j = 1.0; /*Access usefull data by line*/ paddedExt[0]=258; paddedExt[1]=256; ref_type C(A.origin(), paddedExt, fortran_storage_order); view_type D = C[indices[range(0,256)][range()]]; for(view_type::iterator i=D.begin(); i!=D.end(); ++i) for(view_type::subarray<1>::type::iterator j=i->begin(); j!=i->end(); ++j) output(*j); return EXIT_SUCCESS; } }}} This outputs a pretty high number of -1 ! More precisely, we have : * 256 values * 2 craps, 254 values * 2 values, 2 craps, 252 values * 4 values, 2 craps, 250 values * etc. * the last 2*256 good values are not output It's like the views have lost their index_bases somewhere on the way. I compiled and run this test under winXP, mingw32, gcc 3.4.5" Mathieu Leocmach Boost 1.41.0 3789 boost::object_pool::free() is very slow. pool Boost 1.41.0 To Be Determined Bugs John Maddock new 2009-12-22T07:03:36Z 2016-07-29T05:17:08Z " boost::object_pool::free() Design is very bad。The main problem is in : [void * simple_segregated_storage::find_prev(void * const ptr)] Whenever a user to delete a node, we must traverse to the previous nodes from list head. Means, if we have created 10,000 objects and 9,000 removed from the ground, then when the user to delete the first 9001 objects, he would traverse the list from scratch 9,000 times." Dai Yun Boost 1.41.0 3791 incorrect postcondition in documentation mpl Boost 1.41.0 Boost 1.42.0 Bugs Aleksey Gurtovoy new 2009-12-22T14:20:40Z 2009-12-22T14:20:40Z "I don't think the following postcondition for ""insert"" on associative sequences is correct: typedef insert::type r; Postcondition: size::value == size::value + 1. if r contains x, size::value == size::value " anonymous Boost 1.41.0 3813 program_options::options_description.add() permits duplicate options program_options Boost 1.41.0 Boost 1.42.0 Bugs Sascha Ochsenknecht new 2010-01-03T17:00:42Z 2011-12-16T09:23:23Z "The documentations for options_description.add() says it will through duplicate_variable_error for duplicate short or long options. I have check versions 1.32.0 and 1.41.0, and both permit this code: {{{ #include #include namespace po = boost::program_options; int main() { po::options_description opts; opts.add_options() (""help"", ""first --help"") (""help"", ""second --help"") ; opts.add_options() (""alpha,a"", ""first -a"") (""apple,a"", ""second -a"") ; std::cout << opts; return 0; } }}} Producing this output: {{{ --help first --help --help second --help -a [ --alpha ] first -a -a [ --apple ] second -a }}} " Matthew Wesley Boost 1.41.0 3874 [map0 / insert] inserting into map0 does not work without including map10.hpp mpl Boost 1.41.0 Boost 1.42.0 Bugs Aleksey Gurtovoy new 2010-01-29T01:02:00Z 2010-06-05T20:51:46Z "The following does not compile on MSVC9: {{{ #include #include #include typedef boost::mpl::insert< boost::mpl::map0<>, boost::mpl::pair< void, void > >::type map1_type; typedef boost::mpl::insert< map1_type, boost::mpl::pair< int, int > >::type map2_type; int main() { } }}} The compiler output is {{{ 1>------ Build started: Project: test, Configuration: Debug Win32 ------ 1>Compiling... 1>main.cpp 1>d:\boost_1_41_0\boost\mpl\insert.hpp(32) : error C2903: 'apply' : symbol is neither a class template nor a function template 1> d:\test\main.cpp(13) : see reference to class template instantiation 'boost::mpl::insert' being compiled 1> with 1> [ 1> Sequence=map1_type, 1> Pos_or_T=boost::mpl::pair 1> ] 1>d:\boost_1_41_0\boost\mpl\insert.hpp(32) : error C2039: 'apply' : is not a member of 'boost::mpl::insert_impl' 1> d:\boost_1_41_0\boost\mpl\aux_\insert_impl.hpp(64) : see declaration of 'boost::mpl::insert_impl' 1>d:\boost_1_41_0\boost\mpl\insert.hpp(32) : error C2955: 'boost::mpl::apply' : use of class template requires template argument list 1> d:\boost_1_41_0\boost\mpl\aux_\preprocessed\plain\apply.hpp(134) : see declaration of 'boost::mpl::apply' 1>d:\boost_1_41_0\boost\mpl\insert.hpp(32) : error C2143: syntax error : missing ',' before '<' 1>d:\test\main.cpp(13) : error C2039: 'type' : is not a member of 'boost::mpl::insert' 1> with 1> [ 1> Sequence=map1_type, 1> Pos_or_T=boost::mpl::pair 1> ] 1>d:\test\main.cpp(13) : error C2146: syntax error : missing ';' before identifier 'map2_type' 1>d:\test\main.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>d:\test\main.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>Build log was saved at ""file://d:\test\Debug\BuildLog.htm"" 1>test - 8 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== }}} A fix (which took me a while to figure out, since the above error message didn't give me any clues) is to include . I think either a note should be made in the documentation for insert, the error message should be more helpful (maybe a comment in mpl/insert.hpp line 32???), or the above code should ""just work""." Jeffrey Hellrung Boost 1.41.0 3877 I don't see any doc for is_lvalue_iterator (and related metafunctions) iterator Boost 1.41.0 Boost 1.42.0 Bugs jeffrey.hellrung new 2010-01-29T11:42:35Z 2012-11-21T19:43:15Z subject says it all anonymous Boost 1.41.0 4239 Python on OSX is shipped as a Framework python USE GITHUB Boost 1.41.0 Boost 1.43.0 Bugs Dave Abrahams new 2010-05-19T19:05:45Z 2010-05-19T19:05:45Z "On OSX 10.5 at least, Python is shipped as a framework which requires Boost to include Python using the #include syntax. I'm not sure which version of OSX started doing this but this patch fixed the problem for me on 10.5 and 10.6." Sohail Somani Boost 1.41.0 5584 gzip_decompressor sometimes truncates data iostreams Boost 1.41.0 To Be Determined Bugs Jonathan Turkanis new 2011-05-31T18:57:14Z 2011-10-16T18:21:49Z "Th following trivial sample program `boost_gunzip.cc` only decompresses files partially. This issue only appears for a minority of the files. {{{ #include #include #include #include #include int main(int argc, const char *argv[]) { if (argc != 2) { std::cerr << ""need exactly one argument"" << std::endl; return 1; } boost::iostreams::filtering_istream in; in.push(boost::iostreams::gzip_decompressor()); in.push(boost::iostreams::file_source(argv[1], std::ios_base::in | std::ios_base::binary)); while (in.good()) { char c = in.get(); if (in.good()) std::cout << c; } }; }}} In the following example, `gzip_decompressor` misses 113 bytes: {{{ ~$ cat <(for i in `seq 0 100`; do echo 'Mon May 30 23:17:43 EDT 2011'; done) > /tmp/a ~$ md5sum /tmp/a 040fce9cef21c343fd9ab2aecf1515e3 /tmp/a ~$ wc -c /tmp/a 2929 /tmp/a ~$ gzip /tmp/a ~$ md5sum /tmp/a.gz 46bd5683f86075e30124c5a6a1d2f83d /tmp/a.gz ~$ zcat /tmp/a.gz | wc -c 2929 ~$ ./boost_gunzip /tmp/a.gz | wc -c 2816 }}} This is on a RHEL 6.1 64bit system, i.e., using `boost-iostreams-1.41.0-11.el6.x86_64`. " Hans-Andreas Engel Boost 1.41.0 6992 accumulator's median feature skips 1st two data points. accumulator Boost 1.41.0 To Be Determined Bugs Eric Niebler assigned 2012-06-16T01:10:15Z 2016-12-14T11:44:04Z "Hi, I used accumulator's median feature to calculate mean/median of input data. I also used armadillo library's mean/median. The mean from two libraries always agree. However the medians don't. I tried to give 1,2,3,4,5 input data to the program. and found accumulator's median outputs 0 if the number of input data is 1 or 2. It starts to output non-zero median if given more than 2 data points however, first two data points are not used. Please check what is going on. Thanks, yu" polyactis@… Boost 1.41.0 10810 Property tree XML parser eats whitespace of text elements property_tree Boost 1.41.0 To Be Determined Bugs Sebastian Redl new 2014-11-21T20:15:08Z 2014-11-21T20:15:08Z "The trim_whitespace flag converts this XML: {{{#!xml Whitespace matters }}} into this: {{{#!xml Whitespace matters }}} While the deletion of whitespace in elements that contain other elements is fine, I would consider it a bug to delete whitespace in elements that contain only text. It wouldn't do this to attributes, so it shouldn't do it to text elements. I believe that the cause is that the boost version of rapidxml combines the two flags `parse_trim_whitespace` and `parse_normalize_whitespace` into one, `trim_whitespace`." ahaferburg@… Boost 1.41.0 3504 deadline_timer (based on UTC time) is not suitable for communication timeouts asio Boost 1.41.0 To Be Determined Feature Requests chris_kohlhoff reopened 2009-10-02T07:36:59Z 2016-12-27T13:39:31Z "If you use the deadline_timer to make a polling every 10th second, it will be heavely affected if someone adjust the system clock with date command, or if the time is adjusted automaticly by NTP. Uses as this should use a timer that cannot make jumps like that. I solved this by making a new time_traits called monotone_time. It uses GetTickCount() for windows and clock_gettime(CLOCK_MONOTONIC, ...) for linux. See attachment. To use it your timer must be a monotone_timer instead of a deadline_timer. You can use both types of timers in you application. I hope this can be a part of a future release of boost::asio" Bjarne Laursen Boost 1.41.0 3673 boost python and weak_ptr from a shared_ptr argument python USE GITHUB Boost 1.41.0 Boost 1.43.0 Feature Requests troy d. straszheim assigned 2009-11-26T07:22:57Z 2013-06-11T18:44:38Z "if you save a weak_ptr of a shared_ptr passed to you by python, it expires almost immediately (see use of aliasing constructor in shared_ptr_from_python.hpp). See also mail from Jahn Fuchs on c++-sig list subject: boost python and weak_ptr from a shared_ptr argument" troy d. straszheim Boost 1.41.0 3699 boost::asio support allocator parameter asio Boost 1.41.0 Boost 1.42.0 Feature Requests chris_kohlhoff new 2009-11-30T16:00:50Z 2009-11-30T16:00:50Z "Hello boost::asio should support different allocators. If boost::asio supported different allocators, it would be very useful in writing performance code, and would be more C++ compliant. Thanks." anonymous Boost 1.41.0 3720 templated comparison operators optional Boost 1.41.0 Boost 1.42.0 Feature Requests Fernando Cacciola new 2009-12-05T03:30:44Z 2009-12-05T03:30:44Z "template inline bool operator == ( optional const& x, optional const& y ) ; and all other comparison operators should be replaced by template bool operator==(optional const &,optional const &); so optionals of different but comparable types can be compared. " anonymous Boost 1.41.0 3732 Detect platform to choose delimiter to use for reading options from command line program_options Boost 1.41.0 Feature Requests Vladimir Prus new 2009-12-08T15:03:00Z 2009-12-09T11:24:07Z "POSIX systems usually use - or -- as a ""delimiter"" when reading options from command lines. For e.g. the 'ls' program on a linux system: {{{ ls --help .... -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print octal escapes for nongraphic characters --block-size=SIZE use SIZE-byte blocks --help print this .... }}} Windows usually uses the / character instead, for e.g. for dir: dir /?: Typically, the '/' is the delimiter. {{{ ... /B Uses bare format (no heading information or summary). ... }}} It would be useful to have the library recognize the platform on which it is begin compiled (or even better, the platform being targeted) and use the default for that platform for reading options from the command line. " anonymous Boost 1.41.0 3733 Detect platform to choose the conventional option for help program_options Boost 1.41.0 Feature Requests Vladimir Prus new 2009-12-08T15:09:01Z 2009-12-09T10:39:14Z "on POSIX, the --help option is typically used for printing usage information. on Windows, the /? is the typical option for that. It would be cleaner if the user could check with some function whether the is set or not instead of explicitly checking for the ""help"" string {{{ if (vm.count(""help"")) }}} to decide when to print usage information." hicham@… Boost 1.41.0 3738 adding support of other systems of time and converting from each one to other date_time Boost 1.41.0 Boost 1.42.0 Feature Requests az_sw_dude new 2009-12-08T23:30:57Z 2009-12-08T23:30:57Z "For ex. I need GPS time system. Short description is available at http://leapsecond.com/java/gpsclock.htm In gps it is rather convenient to have converting function from gps time in form of weeks cycles days and seconds (see example at site above noted) to UTC time. More information can be obtained from various gps-related sites or you can ask me, I'll help according to my knowledge. Leap second is noted in the library documentation, but really there is not any support. I guess that it is better to make function to set current leap seconds value since it is not predictable. " serggzz@… Boost 1.41.0 3745 Remove deprecated class tokenizer Boost 1.41.0 Boost 1.42.0 Feature Requests jsiek new 2009-12-10T10:51:18Z 2009-12-10T10:51:18Z "According to http://www.boost.org/doc/libs/1_41_0/libs/tokenizer/char_delimiters_separator.htm char_delemiters_separator is a deprecated class and wasn't removed because of compatibility. There is no reason to keep going with this compatibility when the char_separator offers the same functionality. Currently it makes you to declare a new type definition for tokenizer> instead of using the one from boost. Thank you." anonymous Boost 1.41.0 3767 Support for Frameworks on OSX + Qt4 build Boost 1.41.0 Boost 1.42.0 Feature Requests Vladimir Prus new 2009-12-14T04:00:46Z 2009-12-14T09:05:02Z "When using Cocoa with Qt4.5 onwards, we need to use the Qt framework bundles rather than linking to the dynamic libraries. This is because a NIB file needs to be loaded to properly handle menus. I think a new feature qt-cocoa (yes/no) would be enough from the user's point of view. I can provide testing if needed. I tried to add it myself but failed miserably! " Sohail Somani Boost 1.41.0 3790 parameterize SBO size on boost::function function Boost 1.41.0 Boost 1.42.0 Feature Requests Douglas Gregor new 2009-12-22T13:37:05Z 2009-12-22T13:37:05Z "http://lists.boost.org/boost-users/2009/12/54250.php * It would be really nice to parameterize the SBO size like this: {{{ template class function; }}} * Saving that it would be useful to have a constructor to allow you to change the allocator like this: {{{ template functionN(const functionN&, Allocator); }}} " Christopher Hite Boost 1.41.0 3776 libs/python/src/object/class.cpp treats string constant as char* python USE GITHUB Boost 1.41.0 Boost 1.42.0 Patches Dave Abrahams new 2009-12-18T00:29:59Z 2010-12-23T13:29:25Z "gcc gives the following warnings: libs/python/src/object/class.cpp: In function ‘int boost::python::property_init(PyObject*, PyObject*, PyObject*)’: libs/python/src/object/class.cpp:79: warning: deprecated conversion from string constant to ‘char*’ libs/python/src/object/class.cpp:79: warning: deprecated conversion from string constant to ‘char*’ libs/python/src/object/class.cpp:79: warning: deprecated conversion from string constant to ‘char*’ libs/python/src/object/class.cpp:79: warning: deprecated conversion from string constant to ‘char*’ " anonymous Boost 1.41.0 3792 Boolean Metafunction for determining whether a type has been registered typeof Boost 1.41.0 Boost 1.42.0 Support Requests Peder Holt new 2009-12-23T17:40:54Z 2009-12-23T17:40:54Z The typeof library should have a boolean metafunction which can be used to determine whether a type has been registered or not. This would greatly aid in using typeof in template metaprogramming. Edward Diener Boost 1.41.0 3841 error: Empty path passed to 'make-UNIX' Building Boost Boost 1.41.0 Boost 1.42.0 Support Requests Vladimir Prus new 2010-01-14T17:30:32Z 2010-01-14T17:30:32Z "macos 10.5.7 xcode 3.1.4 compiler: gcc 4.0.1 boost: 1.41.0 bjam 3.1.17 1. i have installed boost into /usr/local/boost 2. compilation succeeded 3. bjam was copied to /usr/bin 3. but when i try to run bjam in folder on other drive (only Jamroot.jam is in folder, BOOST_ROOT and BOOST_BUILD_PATH variables are set in local environment) to build my project, then i get these errors: /usr/local/boost/tools/build/v2/util/path.jam:528: in make-UNIX from module path error: Empty path passed to 'make-UNIX' /usr/local/boost/tools/build/v2/util/path.jam:44: in path.make from module path /usr/local/boost/tools/build/v2/build/targets.jam:395: in find-really from module object(project-target)@39 /usr/local/boost/tools/build/v2/build/targets.jam:428: in object(project-target)@39.find from module object(project-target)@39 /usr/local/boost/tools/build/v2/build-system.jam:666: in load from module build-system /usr/local/boost/tools/build/v2/kernel/modules.jam:283: in import from module modules /usr/local/boost/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module /usr/local/boost/tools/build/v2/boost-build.jam:8: in module scope from module how can i fix this problem? -- Sergey " i509lancome-tm@… Boost 1.41.0 3918 MPI std::string serialization mpi Boost 1.41.0 Support Requests Matthias Troyer new 2010-02-11T12:36:59Z 2013-01-01T11:09:35Z "I'm new in MPI and cluster computations. I have 2 machines on gentoo (amd64 and x86), both with openmpi-1.4.1 and boost-1.41.0 . 'Heterogeneous' flags is set. I'm trying to run example at http://www.boost.org/doc/libs/1_41_0/doc/html/mpi/tutorial.html#mpi.nonblocking and it work when i run it in two processes at one machine, but it throws an exception, if i use both (-npernode 1). I didn't fully understand what serialization does, but on separate machine it work with or without it (i'm talking about header boost/serialization/string.hpp), with using both of machines, i always have exception. I don't mark that message as bug, i really think i'm just doing something wrong." Ghost99 Boost 1.42.0 3904 installing boost 1.42 does not update all include files in the destination directory build Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-02-05T21:49:53Z 2010-06-07T09:51:06Z "Having previously installed boost 1_41_0 on CentOS 5.4 (x86_64 bit), I built and installed boost 1_42_0. Some include files were not updated, because test programs I tried to compile outside the boost 1_42_0 tree would not compile. Once I removed the destination directory /opt/local/boost, and re-installed boost 1_42_0, my test programs did compile." Joe VanAndel Boost 1.42.0 3926 thread_specific_ptr + dlopen library causes a SIGSEGV. thread Boost 1.42.0 Bugs viboes reopened 2010-02-12T23:05:31Z 2016-03-31T22:13:53Z "hi, i've discovered that using thread_specific_ptr in shared library dlopened from thread causes a gpf.[[BR]] please consider following scenario: [[BR]][[BR]] spawn thread[[BR]] dlopen a shared library with thread_specific_ptr[[BR]] dlclose the library[[BR]] terminate the thread[[BR]] [[BR]] observe the gpf[[BR]] [[BR]] {{{ Program received signal SIGSEGV, Segmentation fault. 0x00007ffff62b7400 in ?? () (gdb) bt #0 0x00007ffff62b7400 in ?? () #1 0x00007ffff7221f79 in __nptl_deallocate_tsd () at pthread_create.c:154 #2 0x00007ffff722291b in start_thread (arg=) at pthread_create.c:304 #3 0x00007ffff6f9293d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #4 0x0000000000000000 in ?? () }}} afaics the pthread (user provided) destructor keyed to pthread specific data is called on dlunloaded code.[[BR]][[BR]] BR,[[BR]] Pawel. " pluto@… Boost 1.42.0 3935 stream does not throw an exception and not set fail/bad bits when file is wrong iostreams Boost 1.42.0 Boost 1.43.0 Bugs Jonathan Turkanis new 2010-02-16T13:28:02Z 2014-11-05T04:30:42Z "I'm trying to write some content to a new file using boost::stream class. Unfortunately errors/failures during opening the file are ignored by boost library. See attached test.cpp file for snippet. Above program is started as non root user and have not access for file /wrong.txt Result is:[[BR]] mariusz@ppbw:~/boost-1.42$ ./test [[BR]] boost ver:1_42 [[BR]] 0 0[[BR]] nothing thrown[[BR]] mariusz@ppbw:~/boost-1.42$ ls /[[BR]] bin dev initrd.img lost+found opt sbin tmp vmlinuz[[BR]] boot etc initrd.img.old media proc srv usr vmlinuz.old[[BR]] cdrom home lib mnt root sys var[[BR]] mariusz@ppbw:~/boost-1.42$ ldd ./test[[BR]] linux-gate.so.1 => (0xb7fc4000)[[BR]] libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7eb0000)[[BR]] libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e8a000)[[BR]] libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7e6c000)[[BR]] libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d0e000)[[BR]] /lib/ld-linux.so.2 (0xb7faa000)[[BR]] mariusz@ppbw:~/boost-1.42$ [[BR]] Similar program using std::ofstream works as I expected: - console prints: 1 0[[BR]] - exception is thrown [[BR]] I made tests using:[[BR]] boost 1.42[[BR]] Ubuntu 8.10 intrepid[[BR]] g++ (Debian 4.3.2-1.1) 4.3.2[[BR]]" zxspeccy.cpp@… Boost 1.42.0 3936 [xpressive] stack overflow. xpressive Boost 1.42.0 Boost 1.43.0 Bugs Eric Niebler assigned 2010-02-16T14:56:20Z 2010-02-17T00:06:35Z "The following simple program fires a stack overflow exception in xpressive. It's seems too simple to be causing such problems. {{{#include ""stdafx.h"" #include #include using namespace boost::xpressive; int _tmain(int argc, _TCHAR* argv[]) { sregex rx = ~(set='{', '}', ','); sregex rx2 = +rx; std::string s(10000, 'a'); regex_search(s, rx2); return 0; }}}} I'm using MSVC 2005. The problem only occurs if the string is large." shewitt.au@… Boost 1.42.0 3948 Conflict between concept_check and shared_ptr concept_check Boost 1.42.0 Boost 1.43.0 Bugs jsiek new 2010-02-19T21:49:02Z 2010-02-19T21:49:02Z "Hello, The following code compiled with MSVC 2005 or 2008 : {{{ #include namespace boost { template< typename T > class some_type {}; template< typename T1, typename T2 > bool operator<( const some_type< T1 >&, const some_type< T2 >& ); } class c {}; BOOST_CONCEPT_ASSERT((boost::LessThanComparable< c >)); }}} Produces the following error : {{{ 1>C:\Users\Mat\Desktop\dev\include\boost/concept_check.hpp(242) : error C2784: 'bool boost::operator <(const boost::some_type &,const boost::some_type &)' : could not deduce template argument for 'const boost::some_type &' from 'c' 1> ..\..\src\tests\turtle_test\concept_check_test.cpp(19) : see declaration of 'boost::operator <' 1> C:\Users\Mat\Desktop\dev\include\boost/concept_check.hpp(241) : while compiling class template member function 'boost::LessThanComparable::~LessThanComparable(void)' ... }}} Changing the namespace from boost to anything else (for instance nm) produces the correct error output e.g. : {{{ 1>C:\Users\Mat\Desktop\dev\include\boost/concept_check.hpp(242) : error C2676: binary '<' : 'c' does not define this operator or a conversion to a type acceptable to the predefined operator 1> C:\Users\Mat\Desktop\dev\include\boost/concept_check.hpp(241) : while compiling class template member function 'boost::LessThanComparable::~LessThanComparable(void)' ... }}} This use case is actually quite common because for instance in boost::shared_ptr there is such a construct, in the boost namespace of course. Therefore the following code exhibits the same problem : {{{ #include #include class c {}; BOOST_CONCEPT_ASSERT((boost::LessThanComparable< c >)); }}} Maybe enclosing the concept check code into another level of namespace would prove enough to protect from the lookup ? Thank you !" m.champlon@… Boost 1.42.0 3954 fusion algorithms must be overloaded for const and non-const arguments fusion Boost 1.42.0 Boost 1.43.0 Bugs Joel de Guzman new 2010-02-23T08:38:32Z 2010-02-23T08:38:53Z "Several fusion algorithms (e.g. pop_front, reverse) take their arguments by const reference unconditionally. This is inconsistent with the result_of templates for these algorithms which are sensitive to the const-ness of their arguments. For consistency and correctness, all fusion algorithms must have overloads that take their arguments by non-const reference. " Eric Niebler Boost 1.42.0 3982 mpl::at documentation out of sync with code mpl Boost 1.42.0 Boost 1.43.0 Bugs Aleksey Gurtovoy new 2010-03-06T11:03:41Z 2016-03-07T19:26:50Z "Documentation of mpl::at indicates that it can take either 2 or 3 template parameters, but in fact only takes just 2. The documentation indicates a third template parameter to forward a default if lookup fails to find a match. This option does not exist. Code or Documentation should be amended. If there will be no 3 template parameter option, the following would be nice to have in the documentation, as how to achieve a default when no match is found: typename boost::mpl::eval_if< typename boost::mpl::has_key< Map, Key >::type , boost::mpl::at< Map, Key > , boost::mpl::identity< Default > >::type " manfred.doudar@… Boost 1.42.0 3993 target-os=linux should imply threadapi=posix build Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-03-09T21:14:01Z 2010-06-07T09:27:58Z Trying to do crosscompile from windows host to linux target results in windows.h included in Boost.Thread. Should default to posix threadapi in this case. Vladimir Prus Boost 1.42.0 4028 fusion::begin and fusion::end lead to problems with ADL-based begin and end functions for ranges fusion Boost 1.42.0 To Be Determined Bugs Joel de Guzman reopened 2010-03-19T11:05:17Z 2013-07-02T11:56:21Z "In C++0x, begin and end for ranges (that extract the beginning iterator and the past-the-end one, respectively) are to be found through ADL. This causes problems when fusion is an associated namespace (as for example in the case {{{ iterator_range< some_iterator< fusion::vector<> > > }}}), since the begin and end of the fusion namespace will be considered by ADL, and that results in an error because a range is not a fusion sequence. I see two (three) solutions:[[BR]] - Mask fusion::begin and fusion::end with SFINAE so that they are only available if the argument is a fusion sequence. That means however that we can't have a fusion sequence that is at the same time a range, even though this could have some uses.[[BR]] - Rename fusion::begin and fusion::end to something else.[[BR]] (- Ask the standard people to reconsider)" Mathias Gaunard Boost 1.42.0 4040 Program Options has issues with options that support multiple tokens when using multiple parsers program_options Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-03-24T18:23:45Z 2010-03-24T18:23:45Z "If you have an option that allows multiple tokens and give that option at both command line and config file, only the tokens listed on the command line are saved. I fixed this issue by changing: {{{ // If option has final value, skip this assignment if (xm.m_final.count(name)) continue; const option_description& d = desc.find(name, false, false, false); }}} to: {{{ const option_description& d = desc.find(name, false, false, false); // If option has final value, skip this assignment if ((xm.m_final.count(name)) && (d.semantic()->max_tokens() <= 1)) continue; }}} in boost::program_options::store() function in the file boost/libs/program_options/src/variables_map.cpp." Devin Crumb Boost 1.42.0 4064 std::bad_cast should be thrown with BOOST_THROW_EXCEPTION statechart Boost 1.42.0 Boost 1.46.0 Bugs Andreas Huber assigned 2010-04-04T10:33:25Z 2010-11-06T08:11:07Z "Also, other try/catch/throw statements should be put into appropriate #ifndef blocks. Reported by Thomas Mathys." Andreas Huber Boost 1.42.0 4133 std::logic_error as a base class for program_options::error program_options Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-21T13:15:21Z 2011-06-28T14:39:10Z """19.1 Exception classes 1 The Standard C + + library provides classes to be used to report certain errors (17.4.4.8) in C + + programs. In the error model reflected in these classes, errors are divided into two broad categories: logic errors and runtime errors. 2 The distinguishing characteristic of logic errors is that they are due to errors in the internal logic of the pro- gram. In theory, they are preventable. 3 By contrast, runtime errors are due to events beyond the scope of the program. They cannot be easily pre- dicted in advance. The header defines several types of predefined exceptions for reporting errors in a C + + program. These exceptions are related by inheritance."" From what POV po::unknown_option is 'due to errors in the internal logic of the program'? All po:: errors should be separated into two groups (runtime and logic) or std::exception should be used as a base class." anonymous Boost 1.42.0 4147 Use target-os instead of os in Jamfiles build Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-24T18:29:02Z 2010-06-07T09:50:21Z "In many of the Jamfiles in Boost, the ""os"" property is used to add libraries and defines appropriate to the target operating system. But the ""os"" property doesn't give the target operating system; it gives the build operating system. The ""target-os"" property gives the target operating system. So these Jamfiles do the wrong thing when cross-compiling. According to Vladimir Prus on the Boost-build mailing list: ""Yes, in most cases 'target-os' should be used. Please file bugs for libraries that use 'os'."" The full list of Boost libraries that appear to have this problem is: asio iostreams thread I generated this list by doing ""grep 'import os'"" and filtering out the python files, so it may not be all that accurate. " Steve Soule Boost 1.42.0 4148 bootstrap.bat generates project-config.jam file as Unicode (UTF-16) build Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-24T20:07:51Z 2011-03-31T00:57:51Z "On modern Windows (that is using Unicode console by default) the bootstrap.bat generates project-config.jam file as Unicode (UTF-16). Boost is not able to read this file and is writing: project-config.jam:1: syntax error at EOF Solution is to modify bootstrap.bat to force the generation of ASCII file instead of Unicode: Old line: ECHO using %toolset% ; > project-config.jam New line: cmd /a /c ECHO using %toolset% ; > project-config.jam This small change will force the usage of ANSI output. Reference: http://www.netikka.net/tsneti/info/tscmd028.htm#ansivsunicode cmd /a /c echo using %toolset% ; > project-config.jam " Sorin Sbarnea Boost 1.42.0 4150 bool_switch() is exception-unsafe program_options Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-25T18:07:26Z 2010-04-25T18:07:26Z " bool_switch() function leaks memory if typed_value::default_value() throws exception" anonymous Boost 1.42.0 4151 option_description::option_description(3 args) is exception-unsafe program_options Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-26T06:01:09Z 2010-04-26T06:26:42Z "Given the code in libs/program_options/src/options_description.cpp: {{{ option_description:: option_description(const char* name, const value_semantic* s, const char* description) : m_description(description), m_value_semantic(s) { this->set_name(name); } }}} s leaks in case if initialization of m_description throws. The simplest cure is to make option::description::m_value_semantic member to be before all other members." anonymous Boost 1.42.0 4153 Add symlink support for bjam on Windows build Boost 1.42.0 Boost 1.43.0 Bugs Vladimir Prus new 2010-04-27T09:28:53Z 2014-11-14T01:31:24Z "Currently bjam does not supports symlinks under Windows and it does copy the files instead. This is doubling the required disk space for boost libraries (overhead of ~1.4GB). Windows does supports several types of symlinks and hardlinks. The problem is that there are several limitations that require to make a wise decision regarding implementation: NT symlinks are limited to 32 per path so we cannot use them for libraries. Instead we can create hardlinks because they do not have this limitation. Now regarding hardlinks: * NTFS is required (not FAT32 support but this shouldn't be a real limitation in 2010). The same limitation would apply if you have FAT32 on Linux. * Hardlink can be created using two options: fsutil hardlink create (XP+, but requires Admin rights), or mklink /H (Vista+, requires 'Create symbolic link' privilege that by default is assigned to Administrators group.) I could easily patch symlink.jab file to use mklink or fsutil but I don't know if the above limitation are a blocking issue for accepting the patch. If this is true what would be the requirements for adding this feature to bjam? I'm not sure if I can check the current partition type and privileges using jam but I could easily check if mklink fails and fallback to copy. " Sorin Sbarnea Boost 1.42.0 4179 time_duration::operator*(int) has no versions for double and int64_t causing implicit truncating them to int32_t date_time Boost 1.42.0 Boost 1.43.0 Bugs James E. King, III new 2010-05-03T02:47:05Z 2018-08-02T11:28:58Z "time_duration::operator*(int) has no versions for double and int64_t causing implicit truncating them to int32_t {{{ std::cout << boost::posix_time::microseconds(1) * 1e8 << std::endl; std::cout << boost::posix_time::microseconds(1) * 1e9 << std::endl; std::cout << boost::posix_time::microseconds(1) * 1e10 << std::endl; std::cout << boost::posix_time::microseconds(1) * 1e11 << std::endl; }}} {{{ 00:01:40 00:16:40 00:23:30.065408 00:20:15.752192 }}}" anonymous Boost 1.42.0 4856 compilation error: boost::local_time::local_microsec_clock::local_time() date_time Boost 1.42.0 To Be Determined Bugs az_sw_dude new 2010-11-15T13:11:55Z 2011-07-01T10:53:52Z "just simple call: boost::local_time::local_microsec_clock::local_time() produces compilation error: /usr/include/boost/date_time/microsec_time_clock.hpp:116: error: no matching function for call to 'boost::local_time::local_date_time_base >::local_date_time_base(boost::gregorian::date&, boost::posix_time::time_duration&)' ------------------------------------------ platform ubuntu linux 10.10 x64 compiler: gcc 4.4.5 boost ver: 1.42 I have information from other party that the same problem occurs under MS Windows, with visual studio and boost 1.44 " dobrov0@… Boost 1.42.0 7561 bzip2_compressor does not play nicely with either direction of filtering_stream iostreams Boost 1.42.0 To Be Determined Bugs Jonathan Turkanis new 2012-10-24T08:38:43Z 2012-10-24T08:38:43Z "With boost::iostreams::filtering_stream, bzip2_compressor's output is always empty. With boost::iostreams::filtering_stream, bzip2_compressor segfaults on an empty input. I'm attaching a program that on my machine reproduces this issue. Bugs that seem related: #2411, #3348, #5237" Alexander van Gessel (AI0867) Boost 1.42.0 3943 LSB compliance for ASIO asio Boost 1.42.0 To Be Determined Feature Requests chris_kohlhoff new 2010-02-18T01:35:38Z 2010-03-18T20:07:41Z ASIO uses ioctls which LSB considers unportable. It would be useful if ASIO could instead switch to using alternates like fcntl where possible and degrade gracefully for LSB compliance. Sohail Somani Boost 1.42.0 3949 "filesystem::rename() ""does not exist"" check is sometimes unwanted" filesystem Boost 1.42.0 Boost 1.43.0 Feature Requests Beman Dawes new 2010-02-19T22:01:03Z 2010-02-19T22:01:03Z "POSIX allows to rename/move a file over another, unlike Windows. Currently, Boost (according to source code) explicitly adds a check against this, using an exists() call. However, sometimes POSIX behavior is desired, to avoid extra remove() call. Moreover, since exist()/remove()/rename() is inherently non-atomic (as are all filesystem operation), this unnecessarily (on POSIX) creates another race-condition point. Request: change rename prototype to rename(from, to, overwrite = false) and adjust code accordingly. If 'overwrite' is false (default) it will work just as now, so the change is fully backward-compatible. If overwrite is 'true', POSIX implementation will just omit its exist() check, while Windows implementation will call remove(to) and catch errors." Paul Pogonyshev Boost 1.42.0 3965 missing functions last_access_time() and last_status_change_time() filesystem Boost 1.42.0 Boost 1.43.0 Feature Requests Beman Dawes assigned 2010-02-28T05:35:24Z 2012-04-20T13:03:10Z "In Boost.Filesystem I can find a function: template std::time_t last_write_time(const Path& p); which is corresponding to st_mtime (last modification time) of the stat structure. Within the stat structure, their are also st_atime and st_ctime defined, but there are no corresponding functions. Is there a special reason for that? Couldn't they be added? template std::time_t last_access_time(const Path& p); template std::time_t last_status_change_time(const Path& p); Cheers, Sascha " Sascha Ochsenknecht Boost 1.42.0 4035 "Milliseconds separated by other char than ""."" cannot be parsed by date_time_io" date_time Boost 1.42.0 Boost 1.43.0 Feature Requests az_sw_dude new 2010-03-23T11:29:53Z 2010-03-23T11:29:53Z "We have input data in the form of: 11:16:27:000 representing hour:minutes:seconds:milliseconds Currently, there seems to be no way of defining a format string to parse this. ""%f"" always expects a dot character starting the substring." stefan.moebius@… Boost 1.42.0 4037 Create is_multi_array and is_const_multi_array type trait multi_array Boost 1.42.0 To Be Determined Feature Requests Ronald Garcia new 2010-03-23T15:34:44Z 2010-03-23T15:34:44Z "Please consider creating Boost.TypeTraits-like is_multi_array and is_const_multi_array. It seems that the current concept checks are not usable for SFINAE purposes, e.g. using the Enable = void boost::enable_if trick. Arises from discussions about getting MultiArray plugged into uBlas: http://lists.boost.org/MailArchives/ublas/2010/03/4107.php" Rhys Ulerich Boost 1.42.0 4045 MultiArray implementation from base, extents, strides multi_array Boost 1.42.0 To Be Determined Feature Requests Ronald Garcia new 2010-03-25T14:38:28Z 2010-03-25T19:42:21Z "It would be useful to have a multi_array_ref constructor or some other MultiArray implementation that can accept explicit stride information rather than storage order information. The former is more flexible and can accomplish things the latter cannot (see example below). ---- I sent the following question to boost-users (http://lists.boost.org/boost-users/2010/03/57634.php): I'd like to obtain an N-dimensional MultiArray implementation given a base pointer, N extents, and N strides. My use case requires padding the stride in one dimension in a way seemingly not obtainable taking views of the usual boost::multi_array_ref. Code like the following would be ideal {{{ boost::array extents = { 2, 3, 4 }; boost::array strides = { 1, 2, 7 }; // Note 7 not 6 boost::scoped_array raw(new int[extents[2]*strides[2]]); using boost::detail::multi_array::multi_array_view; multi_array_view a(raw.get(), extents, strides); }}} except that the appropriate constructor in multi_array_view is private (boost/multi_array/view.hpp:442). boost::detail::multi_array::sub_array would also be ideal if it's constructor was accessible (boost/multi_array/subarray.hpp:370). I can make either accessible by #defining BOOST_NO_MEMBER_TEMPLATE_FRIENDS, but that's evil. Am I missing something in Boost.MultiArray? Or is there no publicly accessible way to provide a custom stride list?" Rhys Ulerich Boost 1.42.0 4057 Patch to allow posix_time::ptime to have boost::gregorian::days overloaded operators date_time Boost 1.42.0 Boost 1.43.0 Feature Requests az_sw_dude new 2010-04-02T03:53:09Z 2010-12-02T08:44:08Z "Within boost/date_time/posix_time/date_duration_operators.hpp, there are overloaded operators for months and years, but not days. I found out this was missing while trying to use ptime for some things. I wanted to contribute a patch. The patch will allow operators +, -, +=, -= for gregorian days. I am using gentoo's dev-libs/boost-1.42 at this time. My apologies if I'm out of date. Please apply my patch directly to the file. Again, my apologies if I'm not complying with some format. I don't often contribute patches to projects." adam.preble@… Boost 1.42.0 4063 Add debugging support statechart Boost 1.42.0 Boost 1.47.0 Feature Requests Andreas Huber assigned 2010-04-04T09:48:56Z 2010-11-06T08:09:26Z See Andreas Huber Boost 1.42.0 4097 limited support for detecting platform build Boost 1.42.0 Boost 1.43.0 Feature Requests Vladimir Prus new 2010-04-13T18:15:05Z 2013-06-12T21:36:59Z "I some assembler code is required by a library - boost.build has some limited support to detect platform features. For instance it is necessary to know for which architecture the lib should be build. The builtin properties and are optional properties (so a developer can not rely on it). Additinaly the binary format has to be known. Suggestion: new builtin property with values like elf, windowspe, mach-o." k-oli@… Boost 1.42.0 4111 Support for windmc tool build Boost 1.42.0 Boost 1.44.0 Feature Requests Vladimir Prus new 2010-04-18T09:20:32Z 2014-04-05T02:46:29Z "It would be good if Boost.Build recognized the windmc tool that is available for MinGW and Cygwin toolsets. The documentation mentions[1] the mc-compiler feature that is supposed to alleviate the problem, but apparently this option doesn't work. [1] http://www.boost.org/doc/tools/build/doc/html/bbv2/reference/tools.html " Andrey Semashev Boost 1.42.0 4142 Option names should be constructible from strings program_options Boost 1.42.0 Boost 1.43.0 Feature Requests Vladimir Prus new 2010-04-22T22:33:13Z 2011-10-01T13:05:15Z "The constructor and set_name methods of option_description take only const char pointers and not strings. (Likewise for the option_description_easy_init operator().) Currently code such as the below fails to compile {{{ std::string help=""help""; po::options_description desc(""Allowed options""); desc.add_options() (HELP, ""produce help message""); }}} We use strings for easy reuse them when checking the variable map of parsed options. This came up on the dev list last month, and Vladimir said he'd look into why overloads for strings didn't already exist.([http://lists.boost.org/Archives/boost/2010/03/162646.php]) I assume you haven't had time, so here's a more persistent reminder. " afoglia@… Boost 1.42.0 4144 boost::program_options::parse_enviornment lacks allow_unregistered program_options Boost 1.42.0 Boost 1.43.0 Feature Requests Vladimir Prus new 2010-04-24T04:47:28Z 2010-04-24T04:47:28Z "allow_unregistered should be an option for the parse_environment parser. Given a suite of tools that share some but not all options, parse_environment forces all programs to register all possible options. Given a suite of tools progb and progc such that: progb --opta --optb progc --opta --optc are valid options to parse, using parse_environment(desc, ""PREFIX_"") will only work for PREFIX_OPTA. If PREFIX_OPTB or PREFIX_OPTC are set the other program will fail." dan@… Boost 1.42.0 4189 Add better support for non-default constructible function objects iterator Boost 1.42.0 Boost 1.43.0 Feature Requests jeffrey.hellrung new 2010-05-04T22:43:03Z 2013-08-23T07:29:19Z boost::transform_iterator is required to be default constructible, but not all function objects are. For example, boost::mem_fn_t is not default constructible. To allow transform_iterator to model DefaultConstructible with any function object type, Peter Dimov suggested using boost::optional. Thanks to Samuel Debionne for identifying and reporting the problem. Daniel Walker Boost 1.42.0 5442 Create CSR graph from GraphViz file graph Boost 1.42.0 To Be Determined Feature Requests Andrew Sutton new 2011-04-08T15:40:57Z 2012-03-04T20:21:24Z "From the 3 graph classes available so far in the BGL (adjacency_list, adjacency_matrix and compressed_sparse_row_graph), CSR is the only one that cannot be created with read_graphviz, which requires a MutableGraph). However, it will be great to have such a possibility, even by using a different function." Johan Oudinet Boost 1.42.0 3930 More flexible dynamic linking for python module on OS X python USE GITHUB Boost 1.42.0 To Be Determined Patches Dave Abrahams new 2010-02-14T14:38:03Z 2013-07-29T15:32:17Z "See http://trac.mapnik.org/ticket/453/. Without these patches to python.jam and darwin.jam, boost.python refused to build with the following error for me on OS X 10.6 (Snow Leopard), even when I set my path to use a version of Python (from Sage) which was compiled with UCS4. With these changes, you can build against both system Python (UCS2) and Sage Python (UCS4). This should probably be incorporated directly into boost, it took me several hours of headaches to figure this out. {{{ Undefined symbols: ""_PyUnicodeUCS4_FromEncodedObject"", referenced from: _encode_string_unaryfunc in builtin_converters.o ""_PyUnicodeUCS4_AsWideChar"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, std::allocator >, boost::python::converter::(anonymous namespace)::wstring_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*)in builtin_converters.o ld: symbol(s) not found collect2: ld returned 1 exit status }}}" Cyrus Omar Boost 1.42.0 4033 optimized matrix products uBLAS Boost 1.42.0 Boost 1.43.0 Patches Gunter assigned 2010-03-22T21:38:27Z 2010-03-29T06:58:56Z "proposal from Jörn Ungermann: '''Abstract''' The (lacking) performance of sparse-matrix products was quite often noted on this list. Currently there are several functions which implement matrix products. Each is efficient under certain conditions only and some of them are not even documented. I think it important for users to have one (near-)optimal function only. The attached file contains an improved axpy_prod that matches the performance of ""prod"", ""axpy_prod"" and ""sparse_prod"" and is thereby optimal for all matrix types. '''Details''' The optimal choice of kernel for a matrix product depends on the properties of all involved matrices. The current implementations specialize only on the type of target matrix. By also determining the kernel depending on the source matrices, one can choose the most efficient kernel. My aim was to create a single function to match the performance of prod, axpy_prod and sparse_prod for all combinations of compressed_matrix/matrix and column/row-majority. The other matrix types should also be handled efficiently by my product, too, but I did check it only spuriously, as it should be obvious that those types are more suited for matrix setup, not for actual calculation. My axpy_prod implementation (called axpy_prod2 in the attached file) does not offer support for the undocumented triangular_expression stuff contained in the original axpy_prod, which however seems to be buggy in the current code for dense matrices. The kernels are largely based on existing kernels with one or two new ones being thrown in. They are as abstract as possible to handle arbitrary expressions efficiently. Specializing, e.g. directly on compressed_matrix would give another very significant performance boost, but also many more additional kernels, possibly more than could be maintained, especially as the transposedness might have to be handled explicitly, too. It would be very nice, if someone could rewrite prod/prec_prod to handle matrix products in the same way as my axpy_prod2 does, but I did not look deep enough into the expression-templates to do this myself or to even know if this were possible. In fact, I'd propose to have two sets of interfaces: 1) One convenient one, possibly compromising efficiency [[BR]] 2) One modeled closely after C-BLAS, delivering utmost efficiency. The latter one could then be *very easily* overloaded by the numeric bindings for dense matrices. I added a possible generic implementation for a gemm call that could be trivially overloaded for dense matrices and forwarded to, e.g., ATLAS numeric bindings. If one could achieve the same efficiency and automatic (i.e. by including a header) coupling to numeric bindings using only *one* interface, I'd prefer that naturally. However currently, we have not just two, but too many product functions (prod, prec_prod, axpy_prod, sparse_prod, opb_prod, block_prod). The following table gives the result for all 64 combinations of compressed_matrix/matrix and row/column-majorities for the three involved in this case 2000x2000 matrices. com_rm is a compressed_matrix of row_major type. [[BR]] den_cm is a matrix of column_major type. [[BR]] The  4th column indicates the used kernel. [[BR]] The  5th column gives the runtime for axpy_prod2  ( clock()/1000 ) [[BR]] The  6th column gives the runtime for sparse_prod ( clock()/1000 ) [[BR]] The  7th column gives the runtime for axpy_prod   ( clock()/1000 ) [[BR]] The  8th column gives the runtime for prod        ( clock()/1000 ) [[BR]] The 10th column gives the speedup of axpy_prod2 compared to sparse_prod. [[BR]] The 11th column gives the speedup of axpy_prod2 compared to axpy_prod. [[BR]] The 12th column gives the speedup of axpy_prod2 compared to prod. Larger matrix sizes result in prohibitive runtimes for the ""slow"" products, but can be used to analyse pure-sparse products. The runtime shall be taken only qualitatively. One can see that the only cases where the new implementation is slower are of relatively small runtime, so it may be negligible. sparse_prod uses an optimization that is very efficient if the target matrix has few off-diagonal elements, but is very inefficient if it does. The results will therefore vary depending on the test matrices. It is also obvious to see, why some people complain about product performance, as especially axpy_prod and prod are sometimes ridiculously slow for sparse matrices and sparse_prod does not seem to be documented in the special products section. My favorite case is ""com_cm, com_cm, den_rm"" one, which actually occurred in the diagnostics part of our application and was the reason why we started looking into this topic." Gunter Boost 1.42.0 4068 Borland also needs private/public workaround in boost::exception exception Boost 1.42.0 Boost 1.43.0 Patches niels_dekker new 2010-04-05T14:21:26Z 2011-07-30T22:39:37Z "Borland/CodeGear currently won't compile boost::exception, because it cannot deal with the friend declarations of exception_detail::set_info, inside the boost::exception class definition. So please consider applying the attached patch. It leaves the data of boost::exception public, when {{{__BORLANDC__<=0x621}}}, just like you did for other compilers. Note: I have no idea whether the workaround is still needed when {{{__BORLANDC__>0x621}}}. It's just that I only tested Embarcadero/CodeGear C++ 6.21. But older Borland versions certainly have the same problem. For example, http://www.boost.org/development/tests/trunk/output/siliconman-boost-bin-v2-libs-exception-test-all_hpp_test-test-borland-5-9-3-debug.html says: {{{ ..\libs\exception\test\all_hpp_test.cpp: Error E2401 ..\boost/exception/exception.hpp 228: Invalid template argument list Error E2401 ..\boost/exception/exception.hpp 231: Invalid template argument list Error E2401 ..\boost/exception/exception.hpp 234: Invalid template argument list Error E2401 ..\boost/exception/exception.hpp 237: Invalid template argument list Error E2109 ..\boost/exception/exception.hpp 337: Not an allowed type Error E2228 ..\boost/exception/exception.hpp 337: Too many error or warning messages *** 6 errors in Compile *** }}} " niels_dekker Boost 1.42.0 4125 Boost.Python should use macros to access members of PyMethodObject python USE GITHUB Boost 1.42.0 Boost 1.43.0 Patches Dave Abrahams new 2010-04-20T17:40:51Z 2010-12-23T13:44:59Z "In libs/python/src/wrapper.cpp, the members of !PyMethodObject are accessed directly: {{{ ((PyMethodObject*)m.get())->im_self ((PyMethodObject*)m.get())->im_func }}} These accesses are not documented in the python API. I suggest to use the following macros instead, which have been existing since python 1.6 at least: {{{ PyMethod_GET_SELF(m.get()) PyMethod_GET_FUNCTION(m.get()) }}} When using CPython, these macros expand to exactly the same code. The goal is to allow other implementations of python, like !PyPy, to provide alternate compatible implementation of these macros, and thus be able to load modules compiled with Boost.Python. " Amaury Forgeot d'Arc Boost 1.42.0 3925 Property tree documentation is seriously out of date property_tree Boost 1.42.0 Boost 1.43.0 Tasks Sebastian Redl new 2010-02-12T15:51:21Z 2013-12-20T10:47:51Z "At http://www.boost.org/doc/libs/1_42_0/doc/html/boost_propertytree/parsers.html, the end page notes contains stuffs like ""[include cmd_line_parser.qbk]"", this is unlikely what the author wants. At http://www.boost.org/doc/libs/1_42_0/doc/html/boost_propertytree/accessing.html, the 2nd code is like ""double pi = boost::lexical_cast(it->second._ptree_data__());"", _ptree_data__ is just wrong. Same for the last code ""pt.__ptree_put_own__(3.14f);"" I'm pretty sure I could find much more errors like this, someone should take the time to read the documentation accuratly. " anonymous Boost 1.42.0 4062 Write a FAQ item on why state constructors do not have access to event data statechart Boost 1.42.0 Boost 1.46.0 Tasks Andreas Huber assigned 2010-04-04T09:33:16Z 2013-12-15T14:42:02Z "The following techniques should be mentioned: - transition actions & store data in an outer state - repost in transition action & react in an in-state reaction - triggering_event" Andreas Huber Boost 1.43.0 1909 Documentation is out of sync concept_check Boost 1.43.0 To Be Determined Bugs jsiek new 2008-05-09T07:55:33Z 2010-06-07T15:20:16Z "The page ""Implementation"" of the documentation still uses the deprecated way of defining and checking concepts: http://www.boost.org/doc/libs/1_35_0/libs/concept_check/implementation.htm The rest of the pages seem to be up to date. Another small thing is that the ""Prev"" and ""Next"" links at the the bottom of the page ""Using Concept Checks"" are switched compared to the other pages. http://www.boost.org/doc/libs/1_35_0/libs/concept_check/using_concept_check.htm " Kimon.Hoffmann@… Boost 1.43.0 4272 Wrong assumption about compiler for ARM g++ asio Boost 1.43.0 Boost 1.43.0 Bugs chris_kohlhoff new 2010-05-31T10:07:15Z 2010-07-05T08:03:23Z "The compiler arm-920tsoftfloat-linux-gnueabi-g++ (GCC) 4.1.1 does not know __sync_lock_test_and_set - extensions. It is used in boost::asio::detail::gcc_fenced_block::gcc_fenced_block() " Stefan Wegele Boost 1.43.0 4298 boost build mpi fails to compile with CC: Sun C++ 5.9 SunOS_sparc Patch 124863-23 2010/04/13 mpi Boost 1.43.0 Boost 1.43.0 Bugs Douglas Gregor new 2010-06-04T21:51:14Z 2010-06-05T20:05:36Z "I'm trying to compile boost on Solaris SPARC 10 with latest Sun Studio compiler and mpi support and the mpi component fails. First error is: ""libs/mpi/src/python/py_communicator.cpp"", line 48: Error: Overloading ambiguity between ""boost::python::make_tuple(const boost::python::api::object&, const boost::mpi::status&)"" and ""boost::tuples::make_tuple(const boos t::python::api::object&, const boost::mpi::status&)"". More detailed log will be attached. C++ Compiler: $ CC -V CC: Sun C++ 5.9 SunOS_sparc Patch 124863-23 2010/04/13 Open MPI implementation: Oracle HPC ClusterTools 8.2.1c boost build is performed as per recommended instructions with mpi enabled: ./bjam --with-mpi and with ""using mpi ;"" in user-config.jam " nikolov.javor@… Boost 1.43.0 4376 Compilation failure on Solaris 5.9, 5.10, because of non existent membar_producer(membar_consumer) asio Boost 1.43.0 Boost 1.44.0 Bugs chris_kohlhoff new 2010-06-24T19:23:55Z 2010-11-23T14:32:55Z "We have to compile our application for a large set of unixes, including solaris 5.9 and 5.10. After switching from 1.42 to 1.43 I have got the following compilation error: {{{ /export/esuitebuild/boost_1_43_0/boost/asio/detail/solaris_fenced_block.hpp: In constructor 'boost::asio::detail::solaris_fe\ nced_block::solaris_fenced_block()': /export/esuitebuild/boost_1_43_0/boost/asio/detail/solaris_fenced_block.hpp:41: error: 'membar_consumer' was not declared in\ this scope /export/esuitebuild/boost_1_43_0/boost/asio/detail/solaris_fenced_block.hpp: In destructor 'boost::asio::detail::solaris_fen\ ced_block::~solaris_fenced_block()': /export/esuitebuild/boost_1_43_0/boost/asio/detail/solaris_fenced_block.hpp:47: error: 'membar_producer' was not declared in\ this scope }}} These functions doesn`t exists in atomic.h. I found them in sys/atomic.h, and they can be used only from kernel mode. Is there any way to avoid membar_producer(membar_consumer) usage? " Kozlov Taras Boost 1.43.0 4381 GCC previous to 4.3.x does not implement inclass member initialization python USE GITHUB Boost 1.43.0 Boost 1.44.0 Bugs Dave Abrahams new 2010-06-26T09:59:08Z 2010-09-22T18:06:53Z "o Add compile gcc option to make sure that boost compilation toolchain acknowledges that gcc versions prior to 4.3.x do not implement inclass member initialization. o This enables libtorrent-rasterbar 1.4.x to build python bindings with the base system gcc on FreeBSD 8.x. Previously, we would have had to resort gcc 4.3+ ports. o Further information can be found at http://www.freebsd.org/cgi/query-pr.cgi?pr=144336 " Mario Ferreira Boost 1.43.0 4424 Program using Boost.Asio stops processing the request asio Boost 1.43.0 Boost 1.44.0 Bugs chris_kohlhoff new 2010-07-11T12:49:22Z 2010-07-11T14:10:06Z "I made a small HTTP proxy, and after +- 1000 simultaneous requests, the process stops working, accepts new connections but does not send anything to the client, which is eternally waiting. I made a small HTTP proxy, and after + - 1000 simultaneous requests, the process stops working, accepts new connections but does not send anything to the client, which is eternally waiting. I drove by a GDB backtrace, do not know if it helps a lot." Joaquim Pedro França Simão Boost 1.43.0 4428 serial_port Bugs asio Boost 1.43.0 Boost 1.44.0 Bugs chris_kohlhoff new 2010-07-13T07:04:35Z 2010-07-13T07:04:35Z when you use a USB-Serial Port convertor and when use a async_write to send a large buffer to Serial Port,at the time of sending data, you pull out the USB-Serail Port Convertor from computer. the async call back handler for sending and receiving will not get a error and the io_service can't be delete. tirelessfighter@… Boost 1.43.0 4461 build failure with debug, mpi, and python options on macintosh mpi Boost 1.43.0 Boost 1.44.0 Bugs Douglas Gregor new 2010-07-21T18:03:42Z 2010-07-21T18:03:42Z "When building boost-1.43 on Mac OS X (10.6.4, System GCC 4.2.1, `MacPorts` Python2.6 and OpenMPI) with the debug-build enabled, boost-build fails building `mpi.so` for python. I '''think''' that it is failing to distinguish between the debug and release builds. If only a `release` build is specified via `variant=release`, the build proceeds without error. If `variant=debug,release` is specified, the build fails with the attached error log. This has been logged in the `MacPorts` Trac as http://trac.macports.org/ticket/23667." Andrew Fernandes Boost 1.43.0 4464 gccxml error with msvc 9 and boost typeof Boost 1.43.0 Boost 1.44.0 Bugs Peder Holt new 2010-07-23T17:21:21Z 2012-09-05T17:24:08Z " I am using gccxml, built from current cvs at www.gccxml.org:/cvsroot/GCC_XML On Windows XP SP3, with Visual Studio version 9.0.30729.1 SP (SP1) // file test.hpp: {{{ #include }}} typing this command: {{{ gccxml -I""C:/Program Files/boost/boost_1_43_0"" test.hpp }}} yields the following error message: ################## {{{ In file included from C:/Program Files/boost/boost_1_43_0/boost/typeof/typeof.hpp:103, from test3.hpp:1: C:/Program Files/boost/boost_1_43_0/boost/typeof/msvc/typeof_impl.hpp:151: error: qualified name does not name a class before '{' token }}} ################## The code in question appears on a block of the form {{{ #if BOOST_WORKAROUND(BOOST_MSVC,==1300) // Code specific to VC 7.0. #elif BOOST_WORKAROUND(BOOST_MSVC,>=1400) // Code for VC 8.0 and above. #else // Code commented with ""This uses nice VC6.5 and VC7.1 bugfeature"" // that does not work with gccxml. Error is reported here. #endif }}} I'd guess it should be choosing the middle block here. My fumbling attempts at preprocessor debugging suggest that the ""BOOST_MSVC"" macro is undefined when gccxml is emulating msvc here. The gccxml preprocessor simulates the definitions of the target compiler, but adds __GCCXML__ to distinguish itself. Sorry I don't have a patch to submit. I'm unsure what the right way to handle this is. " Christopher Bruns Boost 1.43.0 4525 Undocumented rolling_window_plus1accumulator accumulator Boost 1.43.0 Boost 1.44.0 Bugs Eric Niebler new 2010-08-10T23:35:38Z 2010-08-10T23:35:38Z "rolling_count depends on rolling_window_plus1which is not documented. rolling_count The rolling count is the current number of elements in the rolling window. Result Type std::size_t Depends On rolling_window_plus1 The same applies to rolling_sum. Could this documentation issue be managed?" viboes Boost 1.43.0 4526 [MSVC 10 & 9 & 8] forward declarations of concept checked function templates don't work (compiler bug?) concept_check Boost 1.43.0 Boost 1.44.0 Bugs jsiek new 2010-08-11T06:21:06Z 2010-08-11T06:21:06Z "As posted by Lorenzo Caminiti to comp.lib.boost.devel (8/9/2010) forward declarations of concept checked function templates lead to ambiguity errors even though the function signatures are identical when compiled with MSVC (I tested MSVC 10 & MSVC9, Caminit MSVC8) I believe it boils down to a compiler error where MSVC fails to recognize that signatures are identical when the return type depends on fairly complex expressions that include non type template arguments. I've got a patch that seems to work for MSVC10. Since I used decltype it doesn't help for the older versions though. I haven't tested it much and I'm sure I'm breaking all kinds of boost coding guidelines but maybe it's of help anyway. " Stefan van Kessel Boost 1.43.0 4529 Failing to set TTL on ICMP packets on Windows Vista with MinGW. asio Boost 1.43.0 To Be Determined Bugs chris_kohlhoff new 2010-08-11T19:24:14Z 2011-06-16T23:10:57Z "Hi, Using the program attached, I have tried to set the TTL on outgoing ICMP packets on a Windows Vista machine using MinGW. It does not have any effect. Using the same program on Ubuntu works just fine. Can this be caught in the regression testing of Boost::Asio? Best regards, Peter Jansson" webmaster@… Boost 1.43.0 4589 on does nothing for libstdc++... build Boost 1.43.0 To Be Determined Bugs Vladimir Prus new 2010-08-24T17:49:31Z 2012-08-09T13:20:57Z ...but should at least _GLIBCXX_DEBUG to enable libstdc++ debug mode. pluto@… Boost 1.43.0 4635 segmentation fault in text_oarchive::save_binary() serialization Boost 1.43.0 To Be Determined Bugs Robert Ramey new 2010-09-08T00:42:04Z 2012-03-21T06:39:53Z It appears that text_oarchive::save_binary() reads one byte too many. In other words, save_binary(addr,len) appears to read byte addr+len. The attached program, which runs on Linux, allocates a page of zeroes with mmap(2) and then serializes the last few bytes of the page with text_oarchive::save_binary(). The result is a segmentation fault. Mark Heuser Boost 1.43.0 4722 Locale problem in date_input_facet date_time Boost 1.43.0 To Be Determined Bugs az_sw_dude new 2010-10-08T19:13:20Z 2010-10-08T19:13:20Z "I was adapting my code to work inputs from strings and outputs for strings with the local_datetime class for different languages, and came across a problem in local_time_input_facet. Even when I change the global locale the code was just accepting the strings in English. Analyzing the code of the class I realized that the parent class date_input_facet always defined the internal parser to locale:: classic () (date_facet.hpp line 451 and 462 m_parser(m_format, std::locale::classic())). I changed the definition for std::locale() and the program now work correctly (m_parser(m_format, std::locale())). This is a bug, or is there any reason to be this way? I am developing on Windows XP with Visual Studio Express 10." Alex Sobral de Freitas Boost 1.43.0 4738 property_tree parsers fail when top node has data() property_tree Boost 1.43.0 To Be Determined Bugs Sebastian Redl new 2010-10-14T16:43:20Z 2011-05-16T18:55:50Z " {{{ ptree tree( ""DATA"" ); write_xml( ""test.xml"", tree ); // writes out DATA with no tag read_xml( ""test.xml"", tree ); // fails since cannot read DATA without a tag. }}} {{{ ptree pt1( ""DATA"" ); write_info( ""test.info"", tree ); // does not write DATA at all ptree pt2; read_info( ""test.info"", pt2 ); // reads in empty ptree BOOST_CHECK( pt1 == pt2 ); // fails since the node has no data }}} -------------------- These could be easy fixes but some convention will have to be adopted. The info parser could be modified to write out the top level data when indent==-1 but the reader would then have to interpret an initial string with no following data or children to as data(). Alternatively there could be a null key represented by """" or some special character. The XML is trickier because the DATA either needs to be an attribute or needs some sort of tag, or it cannot be parsed as XML. I only checked this on the 1.43.0 that I have installed but it does not appear that the problem has been fixed in 1.44.0 or in subversion." Jess Boost 1.43.0 4816 [BOOST::ASIO] Under Cygwin doesn't compile asio Boost 1.43.0 To Be Determined Bugs chris_kohlhoff new 2010-11-05T16:22:42Z 2010-11-05T16:22:42Z "Environment: Cygwin Compiler: gcc == 1st issue boost/asio.hpp includes another header making references to the 'pipe_select_interrupter' but fails to include: boost/asio/detail/pipe_select_interrupter.hpp Where it is effectively defined == 2nd issue The C function 'cfgetospeed' is referenced by: boost/asio/impl/serial_port_base.ipp But the inclusion of is not done under Cygwin and more, the cfgetospeed function is a macro, hence the statement on line 135 fails: {{{ speed_t baud = ::cfgetospeed(&storage); }}} == 3rd issue boost/asio/detail/buffer_sequence_adapter.hpp Makes references to the WSABUF structure when under Cygwin, but this structure exists only under the WIN32 environment. To compile I have to undefine the {{{__CYGWIN__}}} macro before including this header. == How to reproduce The following program doesn't compile: {{{ /// gcc -c bug.cpp doesn't compile #include #include #include #include int main(int argc, char* argv[]) { return 0; } }}} === User fix I fix these issue in my programs by adding the following code BEFORE including {{{ /// 1st issue #include /// 2nd issue #ifdef __CYGWIN__ #include #ifdef cfgetospeed #define __cfgetospeed__impl(tp) cfgetospeed(tp) #undef cfgetospeed inline speed_t cfgetospeed(const struct termios *tp) { return __cfgetospeed__impl(tp); } #undef __cfgetospeed__impl #endif /// cfgetospeed is a macro /// 3rd issue #undef __CYGWIN__ #include #define __CYGWIN__ #endif }}}" frederic.jardon@… Boost 1.43.0 5595 Windows: Cannot write to files which have been mapped to memory in other threads/processes iostreams Boost 1.43.0 To Be Determined Bugs Jonathan Turkanis new 2011-06-06T10:01:54Z 2017-09-21T14:00:45Z "Windows: If I try to open a file for writing which has been memory mapped by using boost::iostreams::mapped_file_source, I get an ""Permission denied"". Under Linux (e.g. Ubuntu, openSUSE) there is no problem. The cause of this behavior seems to be, that mapped_file_impl::open_file uses CreateFile WIN32 API with the parameter FILE_SHARE_READ instead of FILE_SHARE_WRITE. Is this supposed to be like this? " Armin Pies Boost 1.43.0 6831 __sync_lock_test_and_set_4 and illegal instruction asio Boost 1.43.0 To Be Determined Bugs chris_kohlhoff new 2012-04-26T07:18:03Z 2012-04-26T07:25:07Z "In the attachment, I’ve prepared a simple test program verifying a trivial asynchronous read operation using asio sockets. The program compiles and runs fine up to boost version 1.42. In version 1.43, compiling the program fails with a linker error: {{{ /tmp/ccQi0dGl.o: In function `boost::asio::detail::gcc_fenced_block::gcc_fenced_block()': main.cpp:(.text._ZN5boost4asio6detail16gcc_fenced_blockC1Ev[boost::asio::detail::gcc_fenced_block::gcc_fenced_block()]+0x4c): undefined reference to `__sync_lock_test_and_set_4' }}} Since version 1.44 up to version 1.49, the linker error is gone and the program compiles fine. However, the program aborts at runtime upon executing “io.run()”, issuing an “Illegal instruction” error message. My assumption is that whatever “_sync_lock_test_and_set_4” was replaced by in version 1.44 represents an illegal operation on my target system. The target system is a MOXA UC-8410 embedded ARM computer: {{{ Linux Moxa 2.6.23.1 #1044 Fri May 6 10:25:20 CST 2011 armv5teb GNU/Linux arm-linux-g++ (GCC) 4.2.1 }}} " Pascal Kesseli Boost 1.43.0 2841 boost::hash to support boost::dynamic_bitset dynamic_bitset Boost 1.43.0 Feature Requests James E. King, III new 2009-03-09T21:24:31Z 2019-06-06T13:56:16Z "IIUC, there's no out-of-box support for hashing of dynamic_bitset. Could something as simple as {{{ #!cpp template friend std::size_t hash_value(const dynamic_bitset& v) { return hash_value( v.m_bits ); } }}} be added to `boost::dynamic_bitset` class? " astukalov@… Boost 1.43.0 3821 [graph] Improved version of transitive_reduction.hpp and documentation for it. graph Boost 1.43.0 Boost 1.46.0 Feature Requests Jeremiah Willcock new 2010-01-05T18:14:40Z 2013-10-28T10:19:16Z "Hi there, in the attached transitive_reduction.tar.bz2 there are the following files: transitive_reduction.hpp -- the actual algorithm transitive_reduction.html -- its documentation, the links are done so, that it *should* work if this file and the figs directory below is placed in libs/graph/doc transitive_reduction_example1.cpp -- in this example a graph is compared to its transitive closure and transitive reduction, which my wife and I computed by hand. transitive_reduction_example2.cpp -- in this example a graph is compared to its transitive closure and transitive reduction, which my wife and I computed by hand. transitive_reduction_test1.cpp -- the silenced example1 for use as a regression test. Returns 0 if everything is all right and 1 if it is not so. transitive_reduction_test2.cpp -- same here. -- these figures are used by the documentation figs/tr_example_graph_1.png figs/tr_example_graph_1_transitive_closure.png figs/tr_example_graph_1_transitive_reduction.png figs/tr_example_graph_2.png figs/tr_example_graph_2_transitive_closure.png figs/tr_example_graph_2_transitive_reduction.png Sorry for not providing a real ""patch"" or a Jamfile for the test cases, but I simply don't know how to write a Jamfile and refuse to learn ""just the next make/cmake/ant/..."". Yours sincerely, Eric" Eric Böse-Wolf Boost 1.43.0 4473 OpenVMS patch for Asio asio Boost 1.43.0 Boost 1.44.0 Patches chris_kohlhoff new 2010-07-27T14:04:18Z 2010-08-02T10:55:17Z "Hello, This paths allows to compile and run all unit-tests of Boost.Asio under OpenVMS 8.3 Itanium both 32 and 64 bits. It is **very important** for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler. Note, I had also submitted some other related patches for other parts of boost. Thanks, Artyom " artyomtnk@… Boost 1.43.0 4479 OpenVMS fixes for system library system Boost 1.43.0 Boost 1.44.0 Patches Beman Dawes new 2010-07-27T18:45:36Z 2010-07-27T18:45:36Z "This patch fixes for OpenVMS platform - workaround of compiler bugs and some warnings fixes. It is **very important** for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler. This patch related to ticket: #4473 Thanks, Artyom " artyomtnk@… Boost 1.43.0 4393 all_eccentricities not in documented graph Boost 1.43.0 Boost 1.46.0 Tasks Andrew Sutton new 2010-06-29T16:27:27Z 2010-12-08T19:45:28Z The function all_eccentricities contains a sample, but is not listed in (the table of contents of) the documentation Barend Gehrels Boost 1.44.0 4228 Associative containers performance fusion Boost 1.44.0 Boost 1.43.0 Bugs Joel de Guzman new 2010-05-17T15:33:02Z 2014-04-09T02:08:43Z "The Boost.Fusion documentation states that associative containers provide efficient key-based access while this seems not to be so in reality (AFAICT the associative containers actually use vectors for their implementation). As reported in this post http://lists.boost.org/Archives/boost/2010/05/166358.php I have achieved meassurably better compile-time performance when using plain fusion::vectors with linear searches than with fusion::maps. Attached are two simple tests that try to demonstrate this (Steven Watanabe's template profiler 'says' that both approaches yield the same number of template instantiations). The reason that in my real life (much more complicated) project I get not only same but better performance with vectors might perhaps be that the find<> (linear search) on the 'main vector' might already be 'cached'/instantiated by some other operation." Domagoj Šarić Boost 1.44.0 4234 Implementation of mapped_file is unnecessarily bloated iostreams Boost 1.44.0 Boost 1.43.0 Bugs Jonathan Turkanis new 2010-05-18T09:15:26Z 2010-05-18T09:15:26Z "This post http://lists.boost.org/Archives/boost/2010/03/164035.php goes over the issue in detail, with tests and real data. Additionaly, the same functionality is duplicated in Boost.Interprocess (managed mapped files, which suffer less from the efficiency issues outlined in the above post) so it might be worthwhile to somehow kill the duplication with a single 'core'/'base' implementation." Domagoj Šarić Boost 1.44.0 4255 Documentation: No overflow-checking in accumulators, no precision guarantees accumulator Boost 1.44.0 Boost 1.43.0 Bugs Eric Niebler new 2010-05-25T09:49:58Z 2010-05-25T09:49:58Z "As discussed here[http://old.nabble.com/-accumulators--Is-there-a-reset-function-yet--td28635232.html], I suggest changing the documentation to warn users of possible overflow/loss of precision issues: Maybe in the section ""The Accumulators Framework"" one could add the sentence ''To ensure maximum performance, the predefined accumulators in the library do not check for possible overflows or loss of precision by adding numbers of very different exponents.'' " Tim Odenthal Boost 1.44.0 4359 boost bind doesn't work with inherited structures bind Boost 1.44.0 Boost 1.44.0 Bugs Peter Dimov new 2010-06-18T13:43:28Z 2010-06-24T20:26:21Z "The following code gives an error in VC++2008, VC++2010, g++ 4.2.4: {{{ #include struct Y { void reset() {}; }; template struct my_pair { T1 first; T2 second; }; template struct my_pair2 : my_pair {}; typedef my_pair mypair_t; typedef my_pair2 mypair2_t; int main() { mypair_t t1; mypair2_t t2; boost::bind( &mypair_t::second, _1 )( t1 ).reset(); // OK! boost::bind( &mypair2_t::second, _1 )( t2 ).reset(); // error: cannot convert from 'const Y' to 'Y &' return 0; } }}} " jia3ep@… Boost 1.44.0 4378 numeric/interval/hw_rounding.hpp upgrade to accept __SUNPRO_CC rounding control mechanism interval Boost 1.44.0 Boost 1.44.0 Bugs Boris Gubenko new 2010-06-25T22:53:19Z 2016-01-05T20:46:54Z "This fix upgrades boost/numeric/interval/hw_rounding.hpp file which allows several numeric/interval benchmarks to be successfully built and run. Without this fix those benchmarks produce the following error message: ""error Boost.Numeric.Interval: Please specify rounding control mechanism."" Please note that for successful build of mentioned benchmarks on x86 Solaris 5.10 platform you need to install Solaris patch 119967-01. This patch has fix for bug in system file which othervise will fail with syntax errors. There is no problem on Open Solaris though. " anonymous Boost 1.44.0 4440 MSVC doesn't work with bounded_vector's of size 0 uBLAS Boost 1.44.0 Boost 1.44.0 Bugs Gunter new 2010-07-15T21:48:06Z 2010-07-15T21:48:06Z "A bounded_vector will not compile in MSVC9/10. It works fine in Intel 11.1 windows and MinGW. In my generic programming, this comes up quite often. I added in a temporary hatch that changes the size of the allocated array to 1 if using MSVC. This doesn't seem to have caused any issues, but I don't know enough about alignment issues to see if it is a problem. See the attached patch to the boost trunk and a boost test file. This patch works on MSVC10, Intel 11.1 MinGW4.5" jesseperla@… Boost 1.44.0 4441 SFINAE for operator * breaking auto differentiation code uBLAS Boost 1.44.0 Boost 1.44.0 Bugs Gunter new 2010-07-15T22:16:34Z 2010-07-15T22:44:49Z "A while back we had discussed adding overload resolution with SFINAE to the matrix/vector expressions involving scalars in order to implement operator*, etc. The choice was made to use is_convertible between the scalar and matrix type. But this ended up breaking an auto-differentiation library (CPPAD) I was using. Templated AD libraries will often have their own, arithmetic type which will record operations of the type * a double, etc. for a matrix multiplication by a scalar, etc. But you can't convert between them! The basic change is to change from using is_convertible to using is_arithmetic. A change to the result type is also needed for autodifferentation to work. See the attached patch for the change to matrix/vector expression." Jesse Perla Boost 1.44.0 4443 Bounded vector constructor missing explicit and an initialization version uBLAS Boost 1.44.0 Boost 1.44.0 Bugs Gunter new 2010-07-15T23:01:30Z 2010-08-11T19:15:09Z "While vector<> has an 'explicit' on its constructor with unsigned integers, bounded_vector does not. This means the following ugliness compiles: bounded_vector v; v = 2; //This SHOULDN'T compile if the patch is applied. Using cast to unsigned int. Also, while vector<> has a constructor that takes a size and then a value to initialize with, bounded_vector does not. I added in a constructor for this operation and for consistency, so the following compiles: ublas::vector v(2, 1.8); ublas::bounded_vector v(2, 1.8); //Now consistent. .... this became necessary when I was doing programming for generic vector types and wanted to construct with an initial value." Jesse Perla Boost 1.44.0 4503 unused parameter warning for bimap/relation/mutant_relation.hpp serialize bimap Boost 1.44.0 Boost 1.44.0 Bugs Matias Capeletto new 2010-08-02T13:01:00Z 2010-08-02T13:01:00Z "The parameter 'const unsigned int version' is not used and depending on the compiler flags results in a lot of warnings being generated. A patch against the current trunk is attached." alexander.petry@… Boost 1.44.0 4510 [program_options]: implicit_value and positional options conflict program_options Boost 1.44.0 Boost 1.44.0 Bugs Vladimir Prus new 2010-08-05T17:18:48Z 2014-12-29T20:17:42Z "Hello, Thanks for a great library. I just updated to 1.43 and it appears options with implicit values no longer work if there are also positional options. In fact libs/src/program_options/example/options_description.cpp fails in 1.43: {{{ 1.43% options_description --verbose foo in option 'verbose': invalid option value }}} In 1.38 this worked fine {{{ 1.38% options_description --verbose foo Input files are: foo Verbosity enabled. Level is 1 Optimization level is 10 Listen port is 0 }}} I briefly looked at the library source code and see new code added in cmdline.cpp: {{{ /* If an key option is followed by a positional option, can can consume more tokens (e.g. it's multitoke option), give those tokens to it. */ ... }}} It seems that in order to make implicit options work in presence of positional options, the semantic()->max_tokens() function must return 0, that is, you can never specify a value for an implicit option. I don't know if this is desired, but it will work for me. Thank you, Soren Soe" Soren Soe Boost 1.44.0 4528 Reference to stack memory associated with local variable 'x' returned parameter Boost 1.44.0 Boost 1.44.0 Bugs Daniel Wallin new 2010-08-11T18:58:03Z 2010-08-11T19:00:58Z "It looks like x is not being passed in by reference. Because of this a copy is made on the stack. The operator returns x.value as a reference which is dangerous since x will go out of scope. This bug occurred with Xcode 4 beta 2, and with the latest version of clang/llvm from the open source project. CompileC /Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/Objects-normal/i386/TopoSort.o /Users/bdoig/Dropbox/WData/TopoSort.mm normal i386 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler cd /Users/bdoig/Dropbox/WDStoreTest setenv LANG en_US.US-ASCII setenv PATH ""/Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Xcode4/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"" /Xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -x objective-c++ -arch i386 -fmessage-length=0 -pipe -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -D__IPHONE_OS_VERSION_MIN_REQUIRED=30200 -isysroot /Xcode4/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk -fasm-blocks -mmacosx-version-min=10.6 -gdwarf-2 -fvisibility=hidden -fobjc-abi-version=2 -fobjc-legacy-dispatch -iquote /Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/WDStoreTest-generated-files.hmap -I/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/WDStoreTest-own-target-headers.hmap -I/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/WDStoreTest-all-target-headers.hmap -iquote /Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/WDStoreTest-project-headers.hmap -F/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Products/Debug-iphonesimulator -I/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Products/Debug-iphonesimulator/include -I/Users/bdoig/Documents/Projects/boost_1_43_0 -I/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/DerivedSources/i386 -I/Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/DerivedSources -include /Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/PrecompiledHeaders/WDStoreTest_Prefix-bwcwseswayysywfpkcwdmibmtjef/WDStoreTest_Prefix.pch -c /Users/bdoig/Dropbox/WData/TopoSort.mm -o /Users/bdoig/Library/Developer/Xcode/DerivedData/WDStoreTest-dbsxxdunpvzihagbzjvgylinzzaf/Build/Intermediates/WDStoreTest.build/Debug-iphonesimulator/WDStoreTest.build/Objects-normal/i386/TopoSort.o In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:21: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:15: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/name.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/keyword.hpp:10: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tag.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tagged_argument.hpp:10: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/arg_list.hpp:127:16:{127:16-127:23}: warning: reference to stack memory associated with local variable 'x' returned [2] return x.value; ^~~~~~~ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:21: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:408:19: note: in instantiation of function template specialization 'boost::parameter::aux::empty_arg_list::operator[]' requested here [2] >()(g, ap[t | 0]); ^ /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:472:18: note: in instantiation of function template specialization 'boost::detail::override_const_property > > > const>, boost::parameter::aux::arg_list, boost::parameter::aux::empty_arg_list> >, boost::graph::keywords::tag::vertex_index_map, boost::vertex_index_t, boost::adjacency_list >' requested here [2] override_const_property( ^ /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:496:24: note: in instantiation of member function 'boost::detail::color_map_maker_helper<0, boost::adjacency_list, boost::parameter::aux::arg_list > > > const>, boost::parameter::aux::arg_list, boost::parameter::aux::empty_arg_list> >, boost::default_color_type, int>::make_map' requested here [2] return helper::make_map(g, white_color, ap[boost::graph::keywords::_color_map | 0], ap); ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:300:72: note: in instantiation of member function 'boost::detail::color_map_maker, boost::parameter::aux::arg_list > > > const>, boost::parameter::aux::arg_list, boost::parameter::aux::empty_arg_list> > >::make_map' requested here [2] boost::detail::color_map_maker::make_map(g, arg_pack), ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:65:5: note: in instantiation of function template specialization 'boost::depth_first_search, boost::topo_sort_visitor > > >, boost::graph_visitor_t, boost::bgl_named_params >' requested here [2] depth_first_search(g, params.visitor(TopoVisitor(result))); ^ /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:71:5: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > >, int, boost::buffer_param_t, boost::no_property>' requested here [2] topological_sort(g, result, ^ /Users/bdoig/Dropbox/WData/TopoSort.mm:20:3: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > > >' requested here [2] boost::topological_sort(vectorList, std::front_inserter(topo_order)); ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:21: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:15: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/name.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/keyword.hpp:10: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tag.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tagged_argument.hpp:10: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/arg_list.hpp:127:16:{127:16-127:23}: warning: reference to stack memory associated with local variable 'x' returned [2] return x.value; ^~~~~~~ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:21: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:496:49: note: in instantiation of function template specialization 'boost::parameter::aux::empty_arg_list::operator[]' requested here [2] return helper::make_map(g, white_color, ap[boost::graph::keywords::_color_map | 0], ap); ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:300:72: note: in instantiation of member function 'boost::detail::color_map_maker, boost::parameter::aux::arg_list > > > const>, boost::parameter::aux::arg_list, boost::parameter::aux::empty_arg_list> > >::make_map' requested here [2] boost::detail::color_map_maker::make_map(g, arg_pack), ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:65:5: note: in instantiation of function template specialization 'boost::depth_first_search, boost::topo_sort_visitor > > >, boost::graph_visitor_t, boost::bgl_named_params >' requested here [2] depth_first_search(g, params.visitor(TopoVisitor(result))); ^ /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:71:5: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > >, int, boost::buffer_param_t, boost::no_property>' requested here [2] topological_sort(g, result, ^ /Users/bdoig/Dropbox/WData/TopoSort.mm:20:3: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > > >' requested here [2] boost::topological_sort(vectorList, std::front_inserter(topo_order)); ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:21: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/named_function_params.hpp:15: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/name.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/keyword.hpp:10: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tag.hpp:8: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/tagged_argument.hpp:10: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/parameter/aux_/arg_list.hpp:127:16:{127:16-127:23}: warning: reference to stack memory associated with local variable 'x' returned [2] return x.value; ^~~~~~~ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: In file included from /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:16: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/depth_first_search.hpp:301:8: note: in instantiation of function template specialization 'boost::parameter::aux::empty_arg_list::operator[]' requested here [2] arg_pack[_root_vertex | *vertices(g).first] ^ In file included from /Users/bdoig/Dropbox/WData/TopoSort.mm:11: In file included from /Users/bdoig/Dropbox/WData/TopoSort.h:20: /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:65:5: note: in instantiation of function template specialization 'boost::depth_first_search, boost::topo_sort_visitor > > >, boost::graph_visitor_t, boost::bgl_named_params >' requested here [2] depth_first_search(g, params.visitor(TopoVisitor(result))); ^ /Users/bdoig/Documents/Projects/boost_1_43_0/boost/graph/topological_sort.hpp:71:5: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > >, int, boost::buffer_param_t, boost::no_property>' requested here [2] topological_sort(g, result, ^ /Users/bdoig/Dropbox/WData/TopoSort.mm:20:3: note: in instantiation of function template specialization 'boost::topological_sort, std::front_insert_iterator > > >' requested here [2] boost::topological_sort(vectorList, std::front_inserter(topo_order)); ^ 3 warnings generated." brian.doig@… Boost 1.44.0 4534 Wrong URL in upper-left, http://lists.boost.org/boost-testing/ website Boost 1.44.0 Boost 1.44.0 Bugs René Rivera new 2010-08-12T13:58:04Z 2010-08-12T13:58:04Z "The URL under the .png in the upper-left corner of http://lists.boost.org/boost-testing/ and all sub-pages takes you to boost.com, not boost.org. Wrong site. " Jim Bell Boost 1.44.0 4542 bind() should use boost::result_of bind Boost 1.44.0 Boost 1.44.0 Bugs Peter Dimov new 2010-08-14T20:25:37Z 2010-08-14T20:25:37Z "if at all possible boost::bind(F(),...) should use boost::result_of instead of directly accessing F::result_type. this way functors whose result type depends on the argument types could be used in bind(), for example: {{{ #include #include using namespace boost; struct F{ template struct result; template T operator()(T const &t) const{ return t; } }; template struct F::result{ typedef T type; }; template void g(F const &f){ typename boost::result_of::type res=f(); } int main(){ f(bind(F(),4)); //error. no result_type in F } }}}" anonymous Boost 1.44.0 4545 Invalid posix timezone format date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2010-08-16T16:27:59Z 2018-03-12T20:05:49Z "Hi, I think that posix_time_zone in Boost.DateTime is using the wrong sign for offsets from GMT: According to the documentation, posix_time_zone is modeled after IEEE Std 1003.1. The documentation gives several examples, for instance ''""MST-7""'' ''This zone is as simple as it gets. This zone lies seven hours west of GMT and has no daylight savings.'' But all other sources for IEEE Std 1003.1 I found so far say that negative offsets indicate '''east''' of GMT, see for instance: http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html ''If preceded by a '-' , the timezone shall be east of the Prime Meridian; otherwise, it shall be west (which may be indicated by an optional preceding '+').'' http://tools.ietf.org/html/draft-ietf-dhc-timezone-01 ''The format of the IEEE 1003.1 POSIX timezone specification is defined as follows:[...]If preceded by a '-', the timezone is east of the Prime Meridian, otherwise it is west ('+' is optional)'' http://www.twinsun.com/tz/tz-link.htm ''Numeric time zone abbreviations typically count hours east of UTC, e.g., +09 for Japan and -10 for Hawaii. However, the POSIX TZ environment variable uses the opposite convention. For example, one might use TZ=""JST-9"" and TZ=""HST10"" for Japan and Hawaii, respectively.'' ---- IMO, the implementation and/or the documentation should be changed. Personally, I'd prefer a change in the implementation, even though this would be a rather nasty breaking change. Regards, Roland " Roland Bock Boost 1.44.0 4558 "The ""BOTHER"" baud rate constant is not handled properly in asio" asio Boost 1.44.0 To Be Determined Bugs chris_kohlhoff new 2010-08-17T22:35:15Z 2010-08-17T22:35:15Z "In the file boost/asio/impl/serial_port_base.ipp, in the functions boost::asio::serial_port_base::baud_rate::store and boost::asio::serial_port_base::baud_rate::load, the baud rate constant ""BOTHER"" is not handled in either switch statement. As far as I know, this constant, along with the termios fields c_ispeed and c_ospeed, are the only way to set and get an arbitrary baud rate (rather than one of the Posix baud rate constants like B9600) on Linux. So if the user requests a baud rate not listed, such as 250000 baud, the store functions incorrectly rejects it; and if the currently set baud rate is not one of the ones listed, the load function incorrectly fails to return it." Steve Soule Boost 1.44.0 4559 Need baud rate workaround in asio for bug in glibc asio Boost 1.44.0 To Be Determined Bugs chris_kohlhoff new 2010-08-17T22:47:18Z 2015-12-22T09:55:24Z "In glibc 2.12.1 (the current version), and all previous versions, there are bugs in the Linux implementations of the tcsetattr and tcgetattr functions so that the c_ispeed and c_ospeed fields of the termios data structure are not correctly passed to and from the kernel. More specifically, the implementations of these functions use ioctl commands TCSETS and TCGETS when they should use TCSETS2 and TCGETS2 (for Linux). Because of this, it is currently not possible to set/get an arbitrary baud rate on Linux through the tcsetattr and tcgetattr library functions. Because Boost asio currently uses tcsetattr and tcgetattr, its baud rate setting functions can not currently handle anything but the standard Posix baud rates. To work around this bug in glibc (which was reported a long time ago and never fixed), I think asio should call ioctl directly on Linux rather than using tcgetattr and tcsetattr (in the file boost/asio/detail/impl/reactive_serial_port_service.ipp). I consider this a bug in asio because whether or not it is ever fixed in glibc, old versions of glibc that have the bug will continue to be used for years to come. I feel that Boost should work around bugs in individual operating systems whenever it is trivial to do so (which it is in this case). " Steve Soule Boost 1.44.0 4586 OperationalError: database is locked trac / subversion Boost 1.44.0 To Be Determined Bugs Douglas Gregor new 2010-08-24T06:56:23Z 2010-11-30T16:55:00Z "==== How to Reproduce ==== While doing a POST operation on `/ticket/4258`, Trac issued an internal error. ''(please provide additional details here)'' Request parameters: {{{ {'__FORM_TOKEN': u'df472745600ad46e730920bd', 'action': u'leave', 'author': u'anonymous', 'cnum': u'5', 'comment': u""When adding some preprocessor checks in tss_pe.cpp that prevent the declaration _tls_used for MinGW, I've been able to fix this problem! All I did was to wrap it with \r\n\r\n#if !defined(__MINGW__)\r\n...\r\n#endif"", 'field_component': u'thread', 'field_keywords': u'', 'field_milestone': u'Boost 1.43.0', 'field_severity': u'Problem', 'field_summary': u'Linking with boost thread does not work on mingw/gcc 4.5', 'field_type': u'Bugs', 'field_version': u'Boost 1.44.0', 'id': u'4258', 'replyto': u'4', 'submit': u'Submit changes', 'ts': u'2010-06-07 06:50:49+00:00'} }}} User agent: `Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8` ==== System Information ==== ''System information not available'' ==== Enabled Plugins ==== ''Plugin information not available'' ==== Python Traceback ==== {{{ Traceback (most recent call last): File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 513, in _dispatch_request dispatcher.dispatch(req) File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 235, in dispatch resp = chosen_handler.process_request(req) File ""build/bdist.linux-i686/egg/trac/ticket/web_ui.py"", line 169, in process_request return self._process_ticket_request(req) File ""build/bdist.linux-i686/egg/trac/ticket/web_ui.py"", line 534, in _process_ticket_request valid = self._validate_ticket(req, ticket, not valid) and valid File ""build/bdist.linux-i686/egg/trac/ticket/web_ui.py"", line 1179, in _validate_ticket for field, message in manipulator.validate_ticket(req, ticket): File ""build/bdist.linux-i686/egg/tracspamfilter/adapters.py"", line 67, in validate_ticket FilterSystem(self.env).test(req, author, changes) File ""build/bdist.linux-i686/egg/tracspamfilter/api.py"", line 133, in test score, ['%s (%d): %s' % r for r in reasons]).insert() File ""build/bdist.linux-i686/egg/tracspamfilter/model.py"", line 138, in insert '\n'.join(self.reasons))) File ""build/bdist.linux-i686/egg/trac/db/util.py"", line 65, in execute return self.cursor.execute(sql_escape_percent(sql), args) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 78, in execute result = PyFormatCursor.execute(self, *args) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 56, in execute args or []) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 48, in _rollback_on_error return function(self, *args, **kwargs) OperationalError: database is locked }}}" anonymous Boost 1.44.0 4591 Missing preprocessor guard in mpl::for_each mpl Boost 1.44.0 To Be Determined Bugs Aleksey Gurtovoy new 2010-08-25T10:48:13Z 2011-04-10T10:55:26Z "Implementation has assert BOOST_MPL_ASSERT(( is_sequence )); witch must be guarded: #if !defined(BOOST_MPL_CFG_NO_HAS_XXX) BOOST_MPL_ASSERT(( is_sequence )); #endif for working with old compilers." Iakov Minochkin Boost 1.44.0 4607 Build errors when Python installation is explicitly specified build Boost 1.44.0 To Be Determined Bugs Vladimir Prus new 2010-08-29T00:31:38Z 2010-09-27T16:35:48Z "Attempts to build 32-bits target libraries/dll of Boost.Python with MSVC running under Windows 7 x64 ends with errors. The 6 *.lib & *.dll of the form boost_python-vc*-mt* are not built. No problems is experienced if MSVC is running under 32-bits version of Windows (XP Pro SP3 & 7 Ultimate tested), or the target is 64-bits libraries even when running under Win7 x64. The below errors was produced with Windows 7 Ultimate x64, Visual Studio (2008 Pro & 2010 Ultimate tested), and ActiveState ActivePython (2.6 & 2.7 tested). msvc.link.dll x86\boost\bin.v2\libs\python\build\msvc-10.0\debug\threading-multi\boost_python-vc100-mt-gd-1_44.dll Creating library x86\boost\bin.v2\libs\python\build\msvc-10.0\debug\threading-multi\boost_python-vc100-mt-gd-1_44.lib and object x86\boost\bin.v2\libs\python\build\msvc-10.0\debug\threading-multi\boost_python-vc100-mt-gd-1_44.exp function.obj : error LNK2001: unresolved external symbol __imp__PyErr_Format numeric.obj : error LNK2019: unresolved external symbol __imp__PyErr_Format referenced in function ""void __cdecl boost::python::numeric::`anonymous namespace'::throw_load_failure(void)"" (?throw_load_failure@?A0x9a30ad83@numeric@python@boost@@YAXXZ) from_python.obj : error LNK2001: unresolved external symbol __imp__PyErr_Format registry.obj : error LNK2001: unresolved external symbol __imp__PyErr_Format class.obj : error LNK2001: unresolved external symbol __imp__PyErr_Format numeric.obj : error LNK2001: unresolved external symbol __imp__PyExc_ImportError numeric.obj : error LNK2019: unresolved external symbol __imp__PyErr_Clear referenced in function ""bool __cdecl boost::python::numeric::`anonymous namespace'::load(bool)"" (?load@?A0x9a30ad83@numeric@python@boost@@YA_N_N@Z) class.obj : error LNK2001: unresolved external symbol __imp__PyErr_Clear " Katie Chan Boost 1.44.0 4617 Use of stringstreams in numeric/ublas/io uBLAS Boost 1.44.0 To Be Determined Bugs Gunter new 2010-09-01T14:18:13Z 2010-09-01T16:41:38Z "Not 100% sure it is a bug, but use of additional string streams seems a bit odd. {{{ template // BOOST_UBLAS_INLINE This function seems to be big. So we do not let the compiler inline it. std::basic_ostream &operator << (std::basic_ostream &os, const matrix_expression &m) { typedef typename ME::size_type size_type; size_type size1 = m ().size1 (); size_type size2 = m ().size2 (); std::basic_ostringstream > s; s.flags (os.flags ()); s.imbue (os.getloc ()); s.precision (os.precision ()); s << '[' << size1 << ',' << size2 << ""](""; if (size1 > 0) { s << '(' ; if (size2 > 0) s << m () (0, 0); for (size_type j = 1; j < size2; ++ j) s << ',' << m () (0, j); s << ')'; } for (size_type i = 1; i < size1; ++ i) { s << "",("" ; if (size2 > 0) s << m () (i, 0); for (size_type j = 1; j < size2; ++ j) s << ',' << m () (i, j); s << ')'; } s << ')'; return os << s.str ().c_str (); } }}} why do we create stringstream 's' and serialize everything in memory and only then pump it to 'os'?" Kostya Boost 1.44.0 4618 local_time_period not defined in local_time_io.hpp date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2010-09-01T18:05:05Z 2011-08-02T05:12:54Z In \boost\date_time\local_time\local_time_io.hpp line 123, type const boost::local_time::local_time_period is not defined. Maybe local_time_io.hpp forgets to include local_time_types.hpp. wangxiaohan@… Boost 1.44.0 4626 The ckeck for ICU in regex library is detected as a build error in Visual Studio Building Boost Boost 1.44.0 To Be Determined Bugs new 2010-09-03T22:22:56Z 2010-09-05T09:12:54Z "When building with a Makefile under Visual Studio (as a project pre-build event that compiles boost as a dependency, before the project) cl.exe compiler sees the VS_UNICODE_OUTPUT environment variable and sends the error message directly into the Visual Studio output window, even if it is just a test to check for ICU presence and the compiler outputs are otherwise redirected. Even if boost build completes successfully, Visual Studio sees the output error message, considers the build as failed, and stops further compilation. Unsetting VS_UNICODE_OUTPUT in the Makefile before building boost prevents the entire boost compilation process. " terminatorul@… Boost 1.44.0 4633 boost/ptr_container/ptr_sequence_adapter.hpp:671: unreferenced parameters 'first', 'last' when compiled with no assertions ptr_container Boost 1.44.0 To Be Determined Bugs Thorsten Ottosen new 2010-09-07T19:33:54Z 2010-09-07T19:33:54Z "As of r65343 file boost/ptr_container/ptr_sequence_adapter.hpp at function range_check_impl (std::random_access_iterator_tag version), the parameters 'first' and 'last' are referenced only inside a BOOST_ASSERT call. When assertions are compiled out, these parameters become unreferenced. This causes warning C4100 from Microsoft Visual Studio 9. It would be nice to mark the parameters as intentionally unused so that this warning is not generated. The simplest way to do this is to add ""(void)first; (void)last;"" in the function body. Other more elaborate mechanisms exist, but as far as I know, casting to void is a simple and portable way to prevent the warning without disrupting the debug code's access to these variables." anonymous Boost 1.44.0 4651 storage.hpp & borland uBLAS Boost 1.44.0 To Be Determined Bugs Gunter new 2010-09-15T07:00:47Z 2010-09-16T15:20:21Z "storage.hpp & borland when using lu.hpp Hello! I've found two incompatibilities when use boost-1.44.0 lu.hpp and Boland C++ Builder 2009 (Update 4). Borland compiler messages are below. [BCC32 Error] storage.hpp(1061): E2102 Cannot use template 'basic_range' without specifying specialization parameters [BCC32 Error] storage.hpp(1076): E2034 Cannot convert 'int' to 'range' It works after 2 replaces: storage.hpp(1061) -return basic_range (NULL, size); +return basic_range (NULL, size); storage.hpp(1076) -const basic_range basic_range::all_ (0, size_type (-1)); +const basic_range basic_range::all_ (basic_range(),size_type(-1));// (0, size_type (-1)); " Kolan Sh Boost 1.44.0 4657 Boost.MPI Compile failure with Python 3 mpi Boost 1.44.0 To Be Determined Bugs Matthias Troyer assigned 2010-09-18T18:04:50Z 2013-12-03T09:18:26Z "Boost 1.44 configured to use Python 3.1 fails on two Boost.MPI files. The two fatal error messages are reproduced below, edited (see http://lists.boost.org/Archives/boost/2010/09/170659.php for the full error output). This failure was discussed in Debian (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595786) and Andreas Kloeckner provided a patch. See attached. -Steve ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -g -D_REENTRANT -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I""."" -I""/usr/include/python3.1"" -I""/usr/lib/openmpi/include"" -I""/usr/lib/openmpi/include/openmpi"" -c -o ""bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/datatypes.o"" ""libs/mpi/src/python/datatypes.cpp"" libs/mpi/src/python/datatypes.cpp: In function ‘void boost::mpi::python::export_datatypes()’: libs/mpi/src/python/datatypes.cpp:20: error: ‘PyInt_Type’ was not declared in this scope In file included from ./boost/function/detail/prologue.hpp:17, from ./boost/function/function_template.hpp:13, from ./boost/function/detail/maybe_include.hpp:13, from ./boost/function/function0.hpp:11, from ./boost/python/errors.hpp:13, from ./boost/python/handle.hpp:11, from ./boost/python/converter/arg_to_python_base.hpp:7, from ./boost/python/converter/arg_to_python.hpp:14, from ./boost/python/call.hpp:15, from ./boost/python/object_core.hpp:14, from ./boost/python/object.hpp:9, from ./boost/mpi/python/serialize.hpp:25, from libs/mpi/src/python/datatypes.cpp:13: ...failed gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/datatypes.o... and ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -g -D_REENTRANT -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I""."" -I""/usr/include/python3.1"" -I""/usr/lib/openmpi/include"" -I""/usr/lib/openmpi/include/openmpi"" -c -o ""bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/py_environment.o"" ""libs/mpi/src/python/py_environment.cpp"" libs/mpi/src/python/py_environment.cpp: In function ‘bool boost::mpi::python::mpi_init(boost::python::list, bool)’: libs/mpi/src/python/py_environment.cpp:53: error: cannot convert ‘char**’ to ‘wchar_t**’ for argument ‘2’ to ‘void PySys_SetArgv(int, wchar_t**)’ ...failed gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/py_environment.o... " smr@… Boost 1.44.0 4664 libboost_zlib + libboost_iostreams - link error (XCode, MacOSX) iostreams Boost 1.44.0 To Be Determined Bugs Jonathan Turkanis new 2010-09-20T14:19:48Z 2011-01-30T17:14:17Z " String for build boost: sudo bjam toolset=darwin architecture=combined address-model=32 threading=multi link=static runtime-link=static -sNO_COMPRESSION=0 -sNO_ZLIB=0 -sZLIB_SOURCE=""../../../../../zlib123"" stage After building I linking this libraries into my application: libboost_iostreams.a libboost_zlib.a But linker say: Undefined symbols: ""std::bad_alloc::what() const"", referenced from: vtable for boost::exception_detail::error_info_injectorin libboost_iostreams.a(zlib.o) vtable for boost::exception_detail::clone_impl >in libboost_iostreams.a(zlib.o)" nen777w@… Boost 1.44.0 4666 boost::variant gives several warnings (fix suggestions included) mpl Boost 1.44.0 To Be Determined Bugs Aleksey Gurtovoy new 2010-09-21T09:57:38Z 2011-04-07T15:38:34Z "I am using several compiler options with gcc to increase the warning level. Especially 3 of them are raising warnings : 1) -Wshadow Too warn when a variable is shadowing/hiding another variable/method This occurs in boostvariant/variant.hpp {{{ void indicate_which(int which) { which_ = static_cast( which ); } void indicate_backup_which(int which) { which_ = static_cast( -(which + 1) ); } }}} the local which is shadowing the member method which. My suggestion to fix would be : {{{ void indicate_which(int which_in) { which_ = static_cast( which_in ); } void indicate_backup_which(int which_in) { which_ = static_cast( -(which_in + 1) ); } }}} So I just renamed to local to which_in 2) -Wswitch-default warn when a switch statement doesn't have a default case. This occurs at : boost/variant/detail/visitation_impl.hpp {{{ // ...switch on the target which-index value... switch (logical_which) { // ...applying the appropriate case: # define BOOST_VARIANT_AUX_APPLY_VISITOR_STEP_CASE(z, N, _) \ case (Which::value + (N)): \ return visitation_impl_invoke( \ internal_which, visitor, storage \ , static_cast(0) \ , no_backup_flag, 1L \ ); \ /**/ BOOST_PP_REPEAT( BOOST_VARIANT_VISITATION_UNROLLING_LIMIT , BOOST_VARIANT_AUX_APPLY_VISITOR_STEP_CASE , _ ) # undef BOOST_VARIANT_AUX_APPLY_VISITOR_STEP_CASE } }}} My suggestion is to add the following just in front of the end brace of the switch : {{{ default: break; }}} 3) -Wundef warns if an undefined identifier is evaluated in an #if directive This occurs at : boost/mpl/has_xxx.hpp It occurs 4 times (that I ran into, within all the ifdef stuff it might occur a few times more). {{{ # if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION # define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ template< typename V > \ static boost::mpl::aux::no_tag \ BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \ /**/ # else # define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ static boost::mpl::aux::no_tag \ BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \ /**/ # endif }}} The question is : BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION, does it need to have a special value (for example : not 0), or is it just a matter of beind defined or not. In the latter case, this are my suggestions on how to fix : line 344 --> # if not defined (BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION) line 357 --> # if not defined (BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES) line 386 --> # if not defined (BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION) line 458 --> # if defined (BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE) What do you think ? kind regards, Lieven " Lieven de Cock Boost 1.44.0 4686 MSVC warning C4512 at /W4 (operator= can't be created) bimap Boost 1.44.0 To Be Determined Bugs Matias Capeletto new 2010-09-26T20:18:19Z 2013-03-06T18:10:15Z "At /W4 msvc10 warns about not being able to generate the assignment operator for 4 classes. Example code that generates the warnings: {{{ #include int main(){ boost::bimap< int, char > bm; } }}} As the boost warnings guidelines[https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines] state ""Adding the declaration (not the definition) of the appropriate operator=() as a private member does the trick as well."" (disabling the warning by pragma would have to still be active at the point of bimap instantiation and thus disable the warning in user code) " Stefan van Kessel Boost 1.44.0 4714 boost::tokenizer_detail::traits_extension does not expose correctly std::_Secure_char_traits_tag on VC9 tokenizer Boost 1.44.0 To Be Determined Bugs jsiek new 2010-10-05T12:35:51Z 2010-10-05T12:53:49Z "This issues warning C4996: 'std::char_traits::[various] ': Function call with parameters that may be unsafe because VC STL relies on a tag to chose the safe/unsafe version of the function. {{{ typedef std::basic_string::traits_type Tr; typedef boost::tokenizer_detail::traits_extension Traits; cout << typeid(std::_Char_traits_category_helper::_Secure_char_traits).name() << endl; cout << typeid(std::_Char_traits_category_helper::_Secure_char_traits).name() << endl; }}} prints {{{ _Secure_char_traits_tag _Unsecure_char_traits_tag }}} because _Char_traits_category_helper is defined as {{{ template class _Char_traits_category_helper<_Traits, true> { public: typedef typename _Traits::_Secure_char_traits _Secure_char_traits; }; }}} so it defers to a typedef of _Secure_char_traits inside the trait. By default it is defined to _Unsecure_char_traits_tag. This affects builds with /WX (treat warnings as errors) and generally causes a lot of warnings for otherwise harmless code (for example date_time relies on tokenizer to parse strings)" emilm@… Boost 1.44.0 4718 date::day_of_week documentation is unhelpful date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2010-10-07T16:56:12Z 2012-04-19T12:09:22Z "The Gregorian date documentation for the day_of_week method is unhelpful. It's not clear what the return type of the method is; it's not immediately obvious what a greg_day_of_week is. The example does not help, since it does not use the method at all. It turns out that the method returns an integer, but there is no documentation as to which day corresponds to which integer return value. http://www.boost.org/doc/libs/1_43_0/doc/html/date_time/gregorian.html#date_time.gregorian.date_class" russell.silva@… Boost 1.44.0 4726 Bugs when using named args. python USE GITHUB Boost 1.44.0 To Be Determined Bugs Dave Abrahams new 2010-10-11T11:39:51Z 2010-10-13T07:47:22Z "There seem to be issues when naming function arguments. Same thing happens for class_ defs and init<> functions. Using non-named args {{{f(1,2,3)}}} works fine in all cases below but using named args {{{f(1,2,z=3)}}} works or fails depending on boost python definition. The first two of the following defs fail when using named args. The first one crashes python and the second raises ""did not match C++ signature"" exception. The third version works as expected. {{{#!cpp #include #include int f(int x, int y, int z) { return x*y*z;} BOOST_PYTHON_MODULE(_pylib) { namespace bp = boost::python; // Bug bp::def(""bug1"", &f, (""x"", ""y"", bp::arg(""z""))); bp::def(""bug2"", &f, (""x"", ""y"", ""z"")); // Works bp::def(""works_fine"", &f, (bp::arg(""x""), bp::arg(""y""), bp::arg(""z""))); } }}} Running {{{ bug1(x=1, y=2, z=3) }}} crashes python and {{{bug2(1, 2, z=3)}}} gives an {{{ArgumentError}}} {{{ Boost.Python.ArgumentError: Python argument types in _pylib.bug2(int, int) did not match C++ signature: bug2(int, int, int) }}} Summary of errors: {{{#!python from _pylib import * works_fine(1,2,3) # OK bug1(1,2,3) # OK bug2(1,2,3) # OK works_fine(1, 2, z=3) # OK bug1(1, 2, z=3) # OK bug2(1, 2, z=3) # Error: did not match C++ signature works_fine(x=1, y=2, z=3) # OK bug1(x=1, y=2, z=3) # Error: Python crashes and exits abnormally bug2(x=1, y=2, z=3) # Error: did not match C++ signature }}} I'm using: * boost 1.44. {{{BoostPro}}} Windows pre-built binary for VC++ 2008. * Python 2.6 * {{{sys.version = '2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)]')}}} * Microsoft VC++ 2008" Albin Thoren Boost 1.44.0 4742 Karma produces not the supposed output for a real number generator in scientific mode spirit Boost 1.44.0 To Be Determined Bugs Hartmut Kaiser new 2010-10-15T11:37:05Z 2014-04-09T02:12:11Z "Hi, I've tried to compile a simple test example using karma real number generator example from this page: [http://www.boost.org/doc/libs/1_44_0/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html] When I run the code in which I pass the value '0.1' to the generator it produces 10.0e-02 instead of 1.0e-01 which, actually, is what I want. Please find my simple test-code in the attachment: Sincerely Lars Kielhorn " lars.kielhorn@… Boost 1.44.0 4766 MinGW: ip_tcp test hangs on io_service::run() after tcp::socket::cancel() asio Boost 1.44.0 Boost 1.45.0 Bugs chris_kohlhoff new 2010-10-22T02:13:23Z 2010-10-22T10:58:35Z "The MinGW-32 [http://www.boost.org/development/tests/trunk/developer/MinGW-32%20jc-bell-com-asio-gcc-mingw-4-4-0-ip_tcp-variants_.html trunk regression test] (current as of 2010/10/21) simply says: {{{ Run [2010-10-21 16:24:46 UTC]: fail }}} bjam.log says: {{{ 300 second time limit exceeded }}} Running it in gdb verifies that it seems hung indefinitely, and breaking shows this stack trace: {{{ #0 0x7c90e514 in ntdll!LdrAccessResource () from C:\WINDOWS\system32\ntdll.dll #1 0x7c90da4a in ntdll!ZwRemoveIoCompletion () from C:\WINDOWS\system32\ntdll.dll #2 0x7c80a7e6 in KERNEL32!GetQueuedCompletionStatus () from C:\WINDOWS\system32\kernel32.dll #3 0x00443dfb in boost::asio::detail::win_iocp_io_service::do_one ( this=0x3e8f8, block=true, ec=@0x23f314) at ../boost/asio/detail/impl/win_iocp_io_service.ipp:349 #4 0x00443954 in boost::asio::detail::win_iocp_io_service::run ( this=0x3e8f8, ec=@0x23f314) at ../boost/asio/detail/impl/win_iocp_io_service.ipp:160 #5 0x00438cee in boost::asio::io_service::run (this=0x23f61c) at ../boost/asio/impl/io_service.ipp:57 #6 0x004061c1 in ip_tcp_socket_runtime::test () at ..\libs\asio\test\ip\tcp.cpp:453 #7 0x0046873a in boost::unit_test::ut_detail::invoker::invoke (this=0x23f93f, f=@0x386cc) at ../boost/test/utils/callback.hpp:56 #8 0x00466a63 in boost::unit_test::ut_detail::callback0_impl_t::invoke (this=0x386c8) at ../boost/test/utils/callback.hpp:89 #9 0x00473065 in boost::unit_test::callback0::operator() (this=0x38aac) at ../boost/test/utils/callback.hpp:118 #10 0x004214c1 in operator() (this=0x34dac) at ../boost/test/impl/unit_test_monitor.ipp:41 #11 0x004214ab in invoke::zero_return_wrapper_t > > ( this=0x23f9cf, f=@0x34dac) at ../boost/test/utils/callback.hpp:42 #12 0x00421497 in invoke (this=0x34da8) at ../boost/test/utils/callback.hpp:89 #13 0x00473085 in boost::unit_test::callback0::operator() (this=0x23fad4) at ../boost/test/utils/callback.hpp:118 #14 0x004500ad in boost::detail::do_invoke, boost::unit_test::callback0 > (tr=@0x4e6540, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:253 #15 0x004204cb in boost::execution_monitor::catch_signals (this=0x4e6530, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:1129 #16 0x0042064d in boost::execution_monitor::execute (this=0x4e6530, F=@0x23fad4) at ../boost/test/impl/execution_monitor.ipp:1160 #17 0x004210b6 in boost::unit_test::unit_test_monitor_t::execute_and_translate (this=0x4e6530, tc=@0x38a80) at ../boost/test/impl/unit_test_monitor.ipp:69 #18 0x00460d53 in boost::unit_test::framework_impl::visit (this=0x5233c8, tc=@0x38a80) at ../boost/test/impl/framework.ipp:156 #19 0x00409e33 in boost::unit_test::traverse_test_tree (tc=@0x38a80, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:193 #20 0x0040a267 in boost::unit_test::traverse_test_tree (id=65539, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:232 #21 0x00409f70 in boost::unit_test::traverse_test_tree (suite=@0x385c8, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:207 #22 0x0040a283 in boost::unit_test::traverse_test_tree (id=2, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:234 #23 0x00409f70 in boost::unit_test::traverse_test_tree (suite=@0x384d8, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:207 #24 0x0040a283 in boost::unit_test::traverse_test_tree (id=1, V=@0x5233c8) at ../boost/test/impl/unit_test_suite.ipp:234 #25 0x0040d9d1 in boost::unit_test::framework::run (id=1, continue_test=true) at ../boost/test/impl/framework.ipp:442 #26 0x00407ddd in boost::unit_test::unit_test_main ( init_func=0x407695 , argc=1, argv=0x32f08) at ../boost/test/impl/unit_test_main.ipp:185 #27 0x00407fd1 in main (argc=1, argv=0x32f08) at ../boost/test/impl/unit_test_main.ipp:237 }}} Key line: ..\libs\asio\test\ip\tcp.cpp:453; The io_service::run() call after tcp::socket::cancel(). " Jim Bell Boost 1.44.0 4771 DST calculation inconsistencies date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2010-10-22T15:46:10Z 2016-03-19T18:20:16Z "One local_date_time constructor takes as argument a date and a time duration. However, its behaviour is not consistent. First, define a date prior to a DST change in the spring (one day prior is sufficient). Then assume you have to skip N minutes into the future, where N is large enough to get past the DST change. a) If you add floor(N/(24*60)) days to the date, and then construct a new local_date_time with the new date and N%(24*60) minutes, you get one result. b) If you construct a local_date_time with the original date and the N minutes (>24*60) you get a second result. The results are different by one hour for regular EU DST rules. It seems like the constructor will not inspect DST rules unless the input date coincides with the DST change date. The effect: Instead of looping with one origin time + advancing time_duration, we have to advance the date whenever the number of minutes exceeds 24*60 and take modulo 24*60 for the duration in minutes. This produces the correct behaviour for our application. " mika.heiskanen@… Boost 1.44.0 4795 Chapter 3.11 Buffering continuously not updated iostreams Boost 1.44.0 To Be Determined Bugs Jonathan Turkanis new 2010-10-27T10:23:01Z 2014-01-13T22:30:52Z "I have noticed chapter [http://www.boost.org/doc/libs/1_44_0/libs/iostreams/doc/guide/buffering.html 3.11 Buffers] in the Boost.IOStreams User's Guide is empty. It seems it has been market as ''To be supplied in the next release'' for a few years now. Perhaps it's worth to consider updating or removing it." Mateusz Loskot Boost 1.44.0 4807 "Sink devices ""leacks"" exception out of the stream" iostreams Boost 1.44.0 To Be Determined Bugs Jonathan Turkanis new 2010-11-02T08:07:10Z 2010-11-02T08:07:10Z "I implement the sink device that sometimes may fail on writes. When Sink is implemented it should throw an exception on fault to notify the stream on error. However it is not always works this way. I've got the exception to ""leak"" to the main program when I combine in the filter gzip_comressor() filter that writes to output device that its Sink is full. When I call reset on the filter the exception in leaking to the program instead of being caught. On the other hand, if I don't throw but rather return 0, I get into infinite loop in the boost::iostreams::non_blocking_adapter::write when I call filter.reset(). In following example the exception is caught when filter.reset() is called, when it shouldn't. {{{ #include #include #include #include #include class my_small_device : public boost::iostreams::sink { int count; public: my_small_device() : count(1000) {} std::streamsize write(char const *d,std::streamsize n) { if(count < n) throw std::runtime_error(""Device is full""); count-=n; return n; } }; int main() { try { using namespace boost::iostreams; boost::iostreams::stream output(my_small_device(),10); { boost::iostreams::filtering_ostream filter; filter.push(gzip_compressor()); filter.push(output); for(int i=0;i<10000000;i++) { if(!(filter << i << '\n')) { std::cerr << ""Fail!"" << std::endl; break; } } std::cout << ""Closing filter"" << std::endl; filter.reset(); } std::cout << ""ok"" << std::endl; return 0; }catch(std::exception const &e) { std::cerr << ""Catched "" << e.what() << std::endl; return 1; } } }}} " artyomtnk@… Boost 1.44.0 4829 select_holder test failing across many platforms on release python USE GITHUB Boost 1.44.0 To Be Determined Bugs Dave Abrahams new 2010-11-10T00:27:25Z 2010-11-16T03:30:37Z "The python ""select_holder"" test is failing across a large number of platforms on the release branch including all clang and gcc compilers. " Eric Niebler Boost 1.44.0 4846 streaming gregorian::date objects to std::cout leaks memory date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2010-11-12T13:07:29Z 2010-11-27T18:08:59Z "there seems to be a problem streaming boost::gregorian::date objects to std::cout, but not to std::ostringstream / whilst noting that this could be a valgrind issue consider the following code {{{ // build : $ g++ -ggdb -Wall -pedantic -Weffc++ test.cc -o test // run : $ valgrind ./test // compiler : g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3 // library : Boost 1.44.0 #include // standard io #include // string-streams #include int main() { namespace bg = boost::gregorian; // namespace alias const bg::date today(2010, bg::Nov, 12); // 'const' not significant std::ostringstream oss; oss << today; std::cout << ""today (1) : "" << oss.str() << std::endl; // okay std::cout << ""today (2) : "" << today << std::endl; // faulty } }}} valgrind output {{{ ==15924== Memcheck, a memory error detector ==15924== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==15924== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==15924== Command: ./test ==15924== today (1) : 2010-Nov-12 today (2) : 2010-Nov-12 ==15924== ==15924== HEAP SUMMARY: ==15924== in use at exit: 1,544 bytes in 26 blocks ==15924== total heap usage: 64 allocs, 38 frees, 4,609 bytes allocated ==15924== ==15924== LEAK SUMMARY: ==15924== definitely lost: 0 bytes in 0 blocks ==15924== indirectly lost: 0 bytes in 0 blocks ==15924== possibly lost: 568 bytes in 19 blocks ==15924== still reachable: 976 bytes in 7 blocks ==15924== suppressed: 0 bytes in 0 blocks ==15924== Rerun with --leak-check=full to see details of leaked memory ==15924== ==15924== For counts of detected and suppressed errors, rerun with: -v ==15924== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4) }}} " robbie@… Boost 1.44.0 4860 Rational does not play well with uBlas uBLAS Boost 1.44.0 To Be Determined Bugs Gunter new 2010-11-16T20:00:54Z 2010-11-16T20:00:54Z "I'm trying to solve a rational linear system using boost/rational + uBlas. I've tried to copy many examples on the web that all follow the same line: {{{ typedef permutation_matrix pmatrix; pmatrix pm(a.size1()); matrix_t inverse(a.size1(), a.size2()); lu_factorize(a, pm); inverse.assign(identity_matrix(a.size1())); lu_substitute(a, pm, inverse); }}} a is of type matrix_t, which is defined as follows: {{{ typedef rational rational_t; typedef matrix matrix_t; }}} Compilation fails on the lu_factorize function call with the following error messages: {{{ In file included from interpolator.cpp:5: /usr/local/include/boost/numeric/ublas/lu.hpp: In function ‘void boost::numeric::ublas::swap_rows(const PM&, MV&, boost::numeric::ublas::matrix_tag) [with PM = boost::numeric::ublas::permutation_matrix, boost::numeric::ublas::unbounded_array, std::allocator > > >, MV = boost::numeric::ublas::matrix, boost::numeric::ublas::basic_row_major, boost::numeric::ublas::unbounded_array, std::allocator > > >]’: /usr/local/include/boost/numeric/ublas/lu.hpp:90: instantiated from ‘void boost::numeric::ublas::swap_rows(const PM&, MV&) [with PM = boost::numeric::ublas::permutation_matrix, boost::numeric::ublas::unbounded_array, std::allocator > > >, MV = boost::numeric::ublas::lu_factorize(M&, PM&) [with M = matrix_t, PM = main()::pmatrix]::matrix_type]’ /usr/local/include/boost/numeric/ublas/lu.hpp:165: instantiated from ‘typename M::size_type boost::numeric::ublas::lu_factorize(M&, PM&) [with M = matrix_t, PM = main()::pmatrix]’ interpolator.cpp:122: instantiated from here /usr/local/include/boost/numeric/ublas/lu.hpp:83: error: no matching function for call to ‘row(boost::numeric::ublas::matrix, boost::numeric::ublas::basic_row_major, boost::numeric::ublas::unbounded_array, std::allocator > > >&, const boost::rational&)’ /usr/local/include/boost/numeric/ublas/matrix_proxy.hpp:466: note: candidates are: boost::numeric::ublas::matrix_row boost::numeric::ublas::row(M&, typename M::size_type) [with M = boost::numeric::ublas::matrix, boost::numeric::ublas::basic_row_major, boost::numeric::ublas::unbounded_array, std::allocator > > >] /usr/local/include/boost/numeric/ublas/matrix_proxy.hpp:471: note: const boost::numeric::ublas::matrix_row boost::numeric::ublas::row(const M&, typename M::size_type) [with M = boost::numeric::ublas::matrix, boost::numeric::ublas::basic_row_major, boost::numeric::ublas::unbounded_array, std::allocator > > >] }}} It looks like the two libraries do not play well together, which means that Boost is basically useless for what I'm trying to do :-/ " pierluigi.rolando@… Boost 1.44.0 4864 Support for 64-bit ICU build Boost 1.44.0 To Be Determined Bugs Vladimir Prus new 2010-11-17T17:21:50Z 2012-09-18T12:37:25Z On windows, anyway, ICU's 64-bit binaries tend to appear in a subdirectory called {{{lib64/}}}, but the Jamfile seems to assume that ICU will be in {{{lib/}}}. Dave Abrahams Boost 1.44.0 4866 Tests don't account for locally-built bzip2 library iostreams Boost 1.44.0 To Be Determined Bugs Jonathan Turkanis new 2010-11-17T19:48:19Z 2014-03-12T02:43:17Z I am building the iostreams library with {{{-sBZIP2_SOURCE=c:/work/bzip2-1.0.6}}}, so the build system creates its own bzip2 library in {{{bin.v2/libs/iostreams/build/bzip2/.../threading-multi/boost_bzip2-vc100-mt-gd-1_44.dll}}}. However, when I try to run the tests through {{{bjam}}} from the command prompt, I see the tests fail. So I prepared the same environment used by the tests, and find myself facing a dialog that complains that it can't find {{{LIBBZ2.DLL}}}. It seems like Boost.Build is confused about the name of the DLL on which it depends. Dave Abrahams Boost 1.44.0 5155 Boost build can exceed Windows max path length limit build Boost 1.44.0 To Be Determined Bugs Vladimir Prus new 2011-02-03T09:49:08Z 2016-06-21T17:15:08Z "I have been building boost successfully on Windows since 1.33. I usually extract boost do a directory such as: d:\boost_1_44_0 With 1.44, for the first time I noticed that some binaries were (silently) failing to appear in the build directory. Viewing the build directories, I suspected we were exceeding the windows path limit (256?). When I renamed to root folder to d:\b, the build suceeded. I'm afraid I didn't keep the build log, but kept the build command: bjam toolset=msvc-10.0 link=static runtime-link=static,shared variant=""debug,release"" threading=""multi"" define=""_SECURE_SCL=0"" debug-symbols=""on"" debug-store=database address-model=64 pch=off I suspect its the long list of options that have extended the path length. Platform: Windows 7 x64 Enterprise. " anonymous Boost 1.44.0 5512 jam0.exe is not a valid win32 application Building Boost Boost 1.44.0 To Be Determined Bugs new 2011-04-29T18:10:31Z 2011-04-29T18:10:31Z "hi, My OS is windows XP. i installed VS 2008 ,VS90SP1-KB957912-x86.exe ,VS90SP1-KB960075-v2-x86.exe,VS90SP1-KB967631-x86.exe,VS90SP1-KB971092-x86.exe,VS90sp1-KB945140-ENU.exe and then installed windows7 sdk. but when i try to build boost library , then error came like this : jam0.exe is not a valid win32 application bjam.log file ### ### Using 'vc9' toolset. ### E:\boost\boost_1_44_0\tools\jam\src>if exist bootstrap rd /S /Q bootstrap E:\boost\boost_1_44_0\tools\jam\src>md bootstrap E:\boost\boost_1_44_0\tools\jam\src>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c debug.c execnt.c expand.c filent.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c pwd.c class.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c command.c compile.c debug.c execnt.c expand.c filent.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c Generating Code... Compiling... pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c pwd.c class.c w32_getreg.c native.c set.c path.c regex.c Generating Code... Compiling... property-set.c sequence.c order.c Generating Code... E:\boost\boost_1_44_0\tools\jam\src>.\bootstrap\jam0 -f build.jam --toolset=vc9 ""--toolset-root=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\..\..\VC\ "" clean E:\boost\boost_1_44_0\tools\jam\src>.\bootstrap\jam0 -f build.jam --toolset=vc9 ""--toolset-root=C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\..\..\VC\ "" " sharifr2002@… Boost 1.44.0 5673 Quick allocator error in multi thread smart_ptr Boost 1.44.0 To Be Determined Bugs Peter Dimov new 2011-07-06T12:48:01Z 2011-10-25T16:16:17Z "Compiler: '''MSVS 2008''' use macros '''BOOST_SP_USE_QUICK_ALLOCATOR''' Exception (Access vialation by reading address) occured by constructor of '''shared_ptr'''. Cause of exception is multi thread creation of static mutex in quick allocator. shared_ptr call quick allocator. quick allocator use next code: {{{ lightweight_mutex::scoped_lock lock( mutex() ); }}} function '''mutex()''' return internal static variable: {{{ boost_1_44_0\boost\smart_ptr\detail\quick_allocator.hpp template struct allocator_impl { ... static lightweight_mutex & mutex() { static freeblock< sizeof( lightweight_mutex ), boost::alignment_of< lightweight_mutex >::value > fbm; static lightweight_mutex * pm = new( &fbm ) lightweight_mutex; return *pm; } ... } }}} 2 thread call mutex() (first time for this instantiation of template class allocator_impl). One start init '''pm''' and go to sleep. Other check that '''pm''' is initialized and return its value (in my case NULL) and raise exception. [[BR]] Initialization of static variable in C++ is not safe for multi thread. This code is incorrect. In dependence from realization of static variable you will be have access vialation or memory leak - flag of static variable initialization (construction) set before or after initialization. [[BR]] In MSVS 2008 flag set before and you take access vialation. [[BR]][[BR]] '''Decision''' [[BR]] Not resolve, but minimize problem. [[BR]] Idea:[[BR]] As I understand, This problem can appear in first initialization of __every__ instantiation of shared_ptr - first use __every__ instantiation of allocator_impl. [[BR]] If you synchronize of initialization '''pm''' then problem can appear only first initialization of __any__ instantiation of shared_ptr. And I can create first fictive shared_ptr in non-multi thread and then normal use shared_ptr in multi thread. [[BR]] Realization:[[BR]] {{{ boost_1_44_0\boost\smart_ptr\detail\quick_allocator.hpp lightweight_mutex & global_mutex() { static freeblock< sizeof( lightweight_mutex ), boost::alignment_of< lightweight_mutex >::value > fbm; static lightweight_mutex * pm = new( &fbm ) lightweight_mutex; return *pm; } template struct allocator_impl { static lightweight_mutex & mutex() { static freeblock< sizeof( lightweight_mutex ), boost::alignment_of< lightweight_mutex >::value > fbm; static lightweight_mutex * pm = NULL; if(pm == NULL) { lightweight_mutex::scoped_lock lock( global_mutex() ); if(pm == NULL) { pm = new( &fbm ) lightweight_mutex; } } return *pm; } } }}} " Yury Podpruzhnikov Boost 1.44.0 6369 gcc -Wshadow typedef patch date_time Boost 1.44.0 To Be Determined Bugs az_sw_dude new 2012-01-09T11:08:12Z 2012-01-23T06:09:39Z "With -Wshadow and gcc 4.6.1 I get... LibreOffice/core/solver/callcatcher/inc/boost/date_time/gregorian/gregorian_io.hpp: In function 'std::basic_istream<_CharT, _Traits>& boost::gregorian::operator>>(std::basic_istream<_CharT, _Traits>&, boost::gregorian::date&)': LibreOffice/core/solver/callcatcher/inc/boost/date_time/gregorian/gregorian_io.hpp:80:67: error: declaration of 'date_input_facet' shadows a global declaration [-Werror=shadow] /home/caolan/LibreOffice/core/solver/callcatcher/inc/boost/date_time/gregorian/gregorian_io.hpp:43:57: error: shadowed declaration is here [-Werror=shadow] patch to silence these attached" caolanm@… Boost 1.44.0 6629 NVCC chokes on boost/mpl/map mpl Boost 1.44.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-02-29T01:44:02Z 2012-05-28T17:28:47Z "We're now receiving a bug report from our customers that they are hitting a problem compiling a code including boost with NVCC. The bug report from our customer: ----------------------------------------- Unfortunately I’m now hitting a real problem with NVCC elsewhere in boost too. Once again, merely including the header is enough to trip up NVCC (but only on Windows): boost_mpl_map.cu: #include int main( int argc, char ** argv ) { } C:\>nvcc boost_mpl_map.cu -o boost_mpl_map.exe -Iboost/include/boost-1_44 boost_mpl_map.cu tmpxft_00000764_00000000-3_boost_mpl_map.cudafe1.gpu tmpxft_00000764_00000000-8_boost_mpl_map.cudafe2.gpu boost_mpl_map.cu tmpxft_00000764_00000000-3_boost_mpl_map.cudafe1.cpp tmpxft_00000764_00000000-14_boost_mpl_map.ii stuff/boost/include/boost-1_44\boost/mpl/aux_/order_impl.hpp(35) : error C2064: term does not evaluate to a function taking 2 arguments stuff/boost/include/boost-1_44\boost/mpl/aux_/order_impl.hpp(57) : see reference to class template instantiation 'boost::mpl::x_order_impl' being compiled As with the previous issues, compiling as a .cpp (still using NVCC) is fine. This affects both CUDA 4.0 and CUDA 4.1, and I’m using VS2010 for CL. A workaround would be greatly appreciated if you can find one as I haven’t managed to come up with one yet! ----------------------------------------- This issue has been investigated by our developers and finally it was root caused as a boost issue. He downloaded boost 1.44.0, and found that boost is doing something special when __CUDACC__ is defined. boost_1_44_0$ grep -IR CUDACC * boost/config/select_compiler_config.hpp:#elif defined __CUDACC__ boost/concept/detail/has_constraints.hpp:#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__) boost/type_traits.hpp:#if !defined(__BORLANDC__) && !defined(__CUDACC__) Unfortunately, this special workaround in boost does not work properly. If he just compile the example code supplied in the description with the Microsoft compiler, after renaming it to .cpp, with __CUDACC__ defined, the compilation fails. U:\> type main.cpp #include int main(int argc, char *argv[]) { return 0; } U:\> cl -D__CUDACC__ -Iboost_1_44_0 main.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. main.cpp boost_1_44_0\boost/mpl/aux_/order_impl.hpp(50) : error C2064: term does not evaluate to a function taking 2 arguments boost_1_44_0\boost/mpl/aux_/order_impl.hpp(57) : see reference to class template instantiation 'boost::mpl::x_order_impl' being compiled So, this might be a bug in boost. If the boost implementers put this special treatment for nvcc due to a bug in nvcc, we are willing to work on the real bug, but this one is a bug in the special treatment code. Best regards, Andrew Shao" gshao@… Boost 1.44.0 10106 boost shared_ptr.hpp runtime error. smart_ptr Boost 1.44.0 To Be Determined Bugs Peter Dimov new 2014-06-09T05:13:13Z 2014-08-02T17:14:03Z "I have code that previously ran perfectly on a mac 10.6.8 and currently runs on a ubuntu but when I try to run it on a newly installed 10.6.8 machine, I am getting this runtime error. I'm sure this is with the installation but any help is greatly appreciated. Assertion failed: (px != 0), function operator*, file /usr/local/boost_1_44_0/boost/smart_ptr/shared_ptr.hpp, line 412. Abort trap"" With Boost 1.44.0 and icu4c 4.3.4. and Code::Blocks compiler. Running on Mac OS X 10.6.8. We have tried updating to the latest versions of both libraries, however still no dice. However, with Boost 1.55, the runtime error cites a different line (don't quite remember what line number, but it was in the 500s). The program we are trying to run has ran on Boost 1.38 and I've found a couple solutions including one that says there may be a discrepancy between which version of boost the linker and includer are using. However, there's only one version of boost on my computer. The compiler and linker are both set to the directories mentioned when I installed Boost. Could it be that somewhere else, one of those is still looking for Boost 1.38? If so, where? I've also found that it could be due to a pointer being improperly initialized, but I am reluctant to go down that road since it used to work (and still works on previous versions of boost on ubuntu) and since it would require me to rewrite quite a bit of code. Any thoughts as to how to fix the problem? Thanks" Spinach Boost 1.44.0 4229 Lookup by 'order' mpl Boost 1.44.0 Boost 1.43.0 Feature Requests Aleksey Gurtovoy new 2010-05-17T15:39:45Z 2010-05-17T15:39:45Z "Please provide an at<> (or at-like) implementation for associative containers that accepts the value 'returned' by order<>. Motivation/a description of an example use case can be found in the following post: http://lists.boost.org/Archives/boost/2010/05/166358.php." Domagoj Šarić Boost 1.44.0 4283 Missing doygen features in boost book Documentation Boost 1.44.0 Boost 1.43.0 Feature Requests Steven Watanabe new 2010-06-03T08:18:11Z 2012-12-18T17:16:55Z "1) Doxygen commands like @see seem to be ignored, doxygen generates : AddEmptyVars() but the boostbook conversion has : AddEmptyVars() So I get a text and not a link. 2) I like to use array notation for arrays i.e ""int somearray[]"", but this gets ignored and displayed like ""int somearray"" in the parameters section, eventhough doxygen seem to correctly has parsed my source : double up [] becomes : double Also group features would be nice to have." jensen.bo@… Boost 1.44.0 4295 Make tests fail when missing sources build Boost 1.44.0 To Be Determined Feature Requests Vladimir Prus new 2010-06-04T04:11:42Z 2010-06-04T04:11:42Z Currently Boost Build exits with failure interrupting the build when sources are missing for test targets. To prevent testing stalls change it such that the tests fail when sources can't be found. René Rivera Boost 1.44.0 4336 [spirit] A trait to access encoding-specific parsers spirit Boost 1.44.0 Boost 1.43.0 Feature Requests Hartmut Kaiser new 2010-06-12T15:49:21Z 2010-06-12T15:49:21Z "Originated from [http://article.gmane.org/gmane.comp.lib.boost.devel/205392 this] discussion. The attached patch allows to gain access to the encoding-specific parsers by specifying the encoding type to the encoding_specific template parameter. This allows the following use case: {{{ template< typename CharT > void parse(const CharT* str) { typedef typename my_traits< CharT >::encoding encoding; typedef spirit::encoding_specific< encoding > parsers; qi::parse(str, *parsers::char_); } }}} " Andrey Semashev Boost 1.44.0 4357 mpl::equal for associative sequences mpl Boost 1.44.0 Boost 1.46.0 Feature Requests Joel Falcou new 2010-06-17T07:51:29Z 2010-12-30T15:04:32Z "this is not a bug, as the current behaviour is documented correctly, but I think mpl::equal<> should return equality for mpl::set<>s that are equal but are not in the same sequence. something like: struct equal : mpl::and_< mpl::equal_to< mpl::size, mpl::size >, mpl::fold< Set1, mpl::true_, mpl::and_< mpl::_1, mpl::has_key > > >{}; also I think it would be usable for equal sets to be runtime-convertible. template<...> struct set{ template set(OtherSet,typename enable_if >::type *e=0){} }; so you can do this: void f(set); f(set()); the same might be usable for mpl::map. " anonymous Boost 1.44.0 4404 last_write_time for a symlink filesystem Boost 1.44.0 Boost 1.44.0 Feature Requests Beman Dawes new 2010-07-06T13:59:30Z 2012-04-10T19:10:33Z last_write_time returns the last data modification time for a file as might be obtained by the posix stat system call m_time. It would be useful to be able to obtain the similar time as returned by the posix lstat system call. anonymous Boost 1.44.0 4409 boost::in_place_factory produces warning utility Boost 1.44.0 Boost 1.44.0 Feature Requests No-Maintainer new 2010-07-08T09:38:05Z 2010-11-29T15:44:33Z "Visual C++ 9.0, Warning level 4 {{{ #!cpp #include #include #include struct x : boost::noncopyable { public: static void init(int i); private: x(int i) : i (i) { } friend boost::in_place_factory1; int i; }; boost::optional x_instance; void x::init(int i) { x_instance = boost::in_place(i); } }}} {{{ 1>boost\utility\in_place_factory.hpp(68): warning C4512: 'boost::in_place_factory1' : assignment operator could not be generated 1> with 1> [ 1> A0=int 1> ] 1> a.cpp(26) : see reference to class template instantiation 'boost::in_place_factory1' being compiled 1> with 1> [ 1> A0=int 1> ] }}}" NN Boost 1.44.0 4466 """multiple paths"" algorithms" graph Boost 1.44.0 To Be Determined Feature Requests Andrew Sutton new 2010-07-25T17:20:17Z 2010-12-08T19:45:07Z "I'm relatively new to the BGL, so I might be missing something. but it seems to me that all algorithms in the BGL deal with finding one specific path, or with transforming graphs. I recently needed to find all unique paths that connect two nodes, i.e. count the number of feedback loops a node is part of in a directed graph, and I could not find any algorithm, or visitor that an algorithm could be built upon, in BGL. a quick google search turned up this for example: http://portal.acm.org/citation.cfm?id=7863 there might be more algorithms that have multiple paths as a result, I don't know, graph theory isn't my specialty. there is at least this one and BGL seems to ignore these kinds of algorithms altogether. " anonymous Boost 1.44.0 4599 template argument identifiers uBLAS Boost 1.44.0 To Be Determined Feature Requests Gunter new 2010-08-26T13:04:52Z 2010-08-26T13:04:52Z "Hi, it would be helpful if template argument identifiers like '''MATRIX''' in /boost/numeric/ublas/traits.hpp template < class '''MATRIX''' > struct mutable_matrix_traits : mutable_container_traits <'''MATRIX'''> { typedef typename '''MATRIX'''::iterator1 iterator1; typedef typename '''MATRIX'''::iterator2 iterator2; }; would follow well-established c/c++ variable name conventions instead of that of the c preprocessor because of conflicts with exactly that. I'd suggest something like the following instead and would provide patches if favored. template < class '''matrix_type''' > struct mutable_matrix_traits : mutable_container_traits <'''matrix_type'''> { typedef typename '''matrix_type'''::iterator1 iterator1; typedef typename '''matrix_type'''::iterator2 iterator2; }; Thanks, Jan. " jan.boehme@… Boost 1.44.0 4637 An extra scoped_array(n) constructor, please! smart_ptr Boost 1.44.0 To Be Determined Feature Requests Peter Dimov new 2010-09-08T09:37:22Z 2011-11-05T13:12:29Z "When I construct a non-empty ''scoped_array'', I currently need to specify the type ''my_type'' twice: {{{ boost::scoped_array a( new my_type[n]() ); }}} Please consider supporting the following as an equivalent: {{{ boost::scoped_array a(n); }}} A patch to the trunk (scoped_array.hpp + smart_ptr_test.cpp) is hereby attached." niels_dekker Boost 1.44.0 4646 [function][patch] adding an unchecked_invoke method to function objects function Boost 1.44.0 To Be Determined Feature Requests Douglas Gregor new 2010-09-13T15:56:10Z 2010-10-07T19:14:30Z "A common idiom for using boost::function objects is as follows : {{{ boost::function<...> func1; ... if( !func1.empty() ) { func1(); } }}} Internally to boost::function::operator()(...) there is then a subsequent call to empty(), which if fails calls a boost::throw_exception. In developing a library that makes use of boost::function, and calling the contained function I am forced to define boost::throw_exception, OR require my users to do so. The library in question is for an embedded platform (without exception support), and so I have also defined BOOST_NO_EXCEPTION and BOOST_EXCEPTION_DISABLE, it therefore becomes imperative that I check the function is valid prior to calling it, because I have no exception support. The current implementation of boost::function however does not allow me to work around this call, and requres me to defnie a function that will never be called, and conflict with my library users should they wish to define an alternative boost::throw_exception for the aspects of boost they may use. I am proposing the addition of ''unchecked_invoke(...)'' that allows users of boost::function to call a function object without this checking on every call. This will not only allow my scenario to work, but also allow the common test before use to benefit, especially in the case where a function object is called within a loop. As reference this topic was discussed in this thread : [http://lists.boost.org/Archives/boost/2010/09/170486.php] and the proposed patch is for function_template.hpp : Insert around line 767 {{{ #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // MSVC 6.0 and prior require all definitions to be inline, but // these definitions can become very costly. result_type unchecked_invoke(BOOST_FUNCTION_PARMS) const { return get_vtable()->invoker (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); } #else result_type unchecked_invoke(BOOST_FUNCTION_PARMS) const; #endif }}} and later around line 1015 {{{ #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) template typename BOOST_FUNCTION_FUNCTION< R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>::result_type inline BOOST_FUNCTION_FUNCTION ::unchecked_invoke(BOOST_FUNCTION_PARMS) const { return get_vtable()->invoker (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); } #endif }}} }}}" peter.myerscough-jackopson@… Boost 1.44.0 4697 [fusion]fold with join functor fails compile in category_of.hpp fusion Boost 1.44.0 To Be Determined Feature Requests Joel de Guzman new 2010-09-29T17:55:56Z 2010-10-06T19:12:09Z "when the attached fold_join is compiled, it produces a compile error shown in the attached fold_join.compile. However, when http://svn.boost.org/svn/boost/sandbox/SOC/2009/fusion/ in in the include path, it compiles and runs OK producing output: v1=(tu<1>(100) tu<1>(b) tu<1>(300.1)) v2=(tu<2>(100) tu<2>(b) tu<2>(300.1)) v3=(tu<3>(100) tu<3>(b) tu<3>(300.1)) fold(vv,state0,join_ftor())=(tu<1>(100) tu<1>(b) tu<1>(300.1) tu<2>(100) tu<2>(b) tu<2>(300.1) tu<3>(100) tu<3>(b) tu<3>(300.1)) The non-variadic fusion should produce the same output since no variadic templates are being used. " Larry Evans Boost 1.44.0 4704 Support for multicapture and balancing groups xpressive Boost 1.44.0 To Be Determined Feature Requests Eric Niebler assigned 2010-10-03T09:05:25Z 2017-06-29T18:58:58Z "Feature request ticked to jog Eric Nieblers memory to take a look at some code. I've added support for multicapture and balancing groups to Boost::Xpressive. Syntax for pop capture: dynamic: (?P<-name>stuff)[[BR]] static: (name -= stuff) Syntax for capture conditional: dynamic: (?P(name)stuff)[[BR]] static: (name &= stuff) The changes are in the vault and can be found here: http://tinyurl.com/3aak7mp It can be unpacked against trunk from 2010-10-02 or the 1.44.0 release. I've run the dynamic regression tests without errors and I have added some tests for the new functionality. The code it only tested on Visual Studio 2010 since I don't have access to any other compiler. Erik Rydgren " erik@… Boost 1.44.0 4720 [function][patch] function wrapper with no exception safety guarantee function Boost 1.44.0 To Be Determined Feature Requests Douglas Gregor new 2010-10-07T19:11:55Z 2010-10-08T08:14:23Z boost::function provides a strong exception safety guarantee. However, in certain circumstances, such as some embedded systems, no exception safety guarantee is desirable. I request that function object wrappers with no exception safety guarantee be added to the Boost.Function family. The attached patch implements boost::unsafe_function (with both preferred syntax and portable syntax), which has no exception safety guarantee when invoked with no target and has no dependency on boost::throw_exception. The patch includes tests and documentation updates. It addresses the same issue identified in #4646. Daniel Walker Boost 1.44.0 4786 custom property_tree property_tree Boost 1.44.0 To Be Determined Feature Requests Sebastian Redl new 2010-10-25T18:21:28Z 2012-04-27T06:23:37Z When creating custom property_trees by using a data type different from std::string, property_tree has errors. Attached is a patch along with an implementation of a tree containing variant data type. anonymous Boost 1.44.0 4803 "[function][patch] use a static ""empty"" target" function Boost 1.44.0 To Be Determined Feature Requests Douglas Gregor new 2010-10-29T19:38:21Z 2010-10-29T19:38:21Z "boost::function throws bad_function_call if invoked when empty. Currently, this is implemented by performing a pointer comparison at runtime. Alternatively, boost::function's empty state could be represented by a static vtable object targeting an ""empty"" function which throws bad_function_call when invoked. There has been a lot of interest in this alternative scheme, which would trade the time overhead of a pointer comparison for an increase in space overhead in the initialized static variable section of the executable's data segment. The degree to which this trade-off will improve performance depends on compiler optimization. The attached patch implements a configuration macro, BOOST_FUNCTION_USE_STATIC_EMPTY, which allows the user to make this trade-off. The patch includes updated documentation and tests. I verified that the updated test suite passes on gcc 4.2, 4.5 and msvc 7.1, 10." Daniel Walker Boost 1.44.0 4830 generalize fusion::as_map and fusion::pair fusion Boost 1.44.0 To Be Determined Feature Requests Joel de Guzman new 2010-11-10T00:35:16Z 2010-11-10T00:35:16Z "Given an {{{mpl::vector}}} of keys, and a {{{fusion::vector}}} of values, what's the easiest way to create a fusion::map? The obvious solution of just zipping the two sequences and passing the result to {{{fusion::as_map}}} doesn't work because {{{as_map}}} (somewhat narrowly) requires all elements to be {{{fusion::pair}}}, and Fusion's zip algorithm produces sequences of {{{vector2}}}. I'd like to see this generalized so that (a) {{{as_map}}} only requires sequences of 2-tuples and (b) {{{fusion::pair}}} meets the requirements for 2-tuples. " Eric Niebler Boost 1.44.0 4831 request for function object equivalents of all Fusion algorithms fusion Boost 1.44.0 To Be Determined Feature Requests Joel de Guzman new 2010-11-10T00:45:08Z 2010-11-10T00:45:08Z Sure would be nice if there were a {{{fusion::functional}}} namespace containing function object equivalents of all Fusion algorithms (e.g. {{{push_front}}}, {{{pop_front}}}, etc). (They could be used in Proto transforms!) There are already a few in {{{boost/proto/fusion.hpp}}}, but they rightfully belong in Fusion, and there should be a complete set. Eric Niebler Boost 1.44.0 6160 support for (istream >> array < char >) array Boost 1.44.0 To Be Determined Feature Requests Marshall Clow assigned 2011-11-22T00:38:37Z 2011-11-28T17:17:25Z "1. `array < T >` is a replacement for `T []` 1. the standard library provides the syntax `(istream >> char [])` and `(ostream << char const [])` 1. Currently, `(istream >> array < char >)` does not mean anything 1. this functionality cannot be simulated even with `std:: copy_n < istreambuf_iterator >` without manual termination and much verbosity == My implementation == {{{ #!cpp #include /* for ::boost:: array */ #include #if +BOOST_VERSION <= 0313720 #include /* for ::std:: setw */ namespace boost { /* helper classes to prevent ambiguity in matching array < char > */ namespace detail_ { /* normally, other char for every character type is char */ template < class P_C > class other_char { public: typedef char type; }; /* but other_char is undefined for char */ template <> class other_char < char > {}; /* class same_stream fails for istream */ template < class P_S, class P_C = typename other_char < typename P_S:: char_type >:: type > class same_stream { public: typedef P_S stream; }; } /* template input */ template < class P_C, class P_T, ::std:: size_t P_N > static inline ::std:: basic_istream < P_C, P_T > &operator >> (::std:: basic_istream < P_C, P_T > &p_s, ::boost:: array < P_C, P_N > &p_a) { return p_s >> ::std:: setw (p_a. static_size) >> p_a. data (); } /* character input, disabled for type char to avoid ambiguity */ template < class P_C, class P_T, ::std:: size_t P_N > static inline typename detail_:: same_stream < ::std:: basic_istream < P_C, P_T > >:: stream &operator >> (::std:: basic_istream < P_C, P_T > &p_s, ::boost:: array < char, P_N > &p_a) { return p_s >> ::std:: setw (p_a. static_size) >> p_a. data (); } /* template output */ template < class P_C, class P_T, ::std:: size_t P_N > static inline ::std:: basic_ostream < P_C, P_T > &operator << (::std:: basic_ostream < P_C, P_T > &p_s, ::boost:: array < P_C, P_N > const &p_a) { return p_s << p_a. begin (); } /* character output, disabled for type char */ template < class P_C, class P_T, ::std:: size_t P_N > static inline typename detail_:: same_stream < ::std:: basic_ostream < P_C, P_T > >:: stream &operator << (::std:: basic_ostream < P_C, P_T > &p_s, ::boost:: array < char, P_N > const &p_a) { return p_s << p_a. begin (); }} #endif /* BOOST_VERSION */ #include /* for EXIT_SUCCESS */ #include /* for BUFSIZ */ #include /* for ::std:: cin */ int main () { // char (&x) [+BOOST_VERSION] = 0; #ifdef ARRAY_IN_NATIVE /* native code */ char t [+BUFSIZ]; return ::std:: cin >> ::std:: setw (+BUFSIZ) >> t && ::std:: cout << t << '\n'? +EXIT_SUCCESS: +EXIT_FAILURE; #else /* ARRAY_IN_NATIVE */ /* equivalent Boost code */ ::boost:: array < char, +BUFSIZ > t; /* check that character input compiles for wchar_t */ (void) sizeof (std:: wcin >> t); return ::std:: cin >> t && ::std:: cout << t << '\n'? +EXIT_SUCCESS: +EXIT_FAILURE; #endif /* ARRAY_IN_NATIVE */ } }}} " giecrilj@… Boost 1.44.0 2426 Error in documentation for boost::python indexing suite python USE GITHUB Boost 1.44.0 To Be Determined Patches Dave Abrahams new 2008-10-21T14:27:45Z 2010-10-30T12:33:52Z "The documentation for boost::python indexing suite at http://www.boost.org/doc/libs/1_36_0/libs/python/doc/v2/indexing.html claims the headers are in . When I unpack boost_1_36_0 I get (note boost/python/***suite***/... Robert" rswanca@… Boost 1.44.0 4259 Reference leak in boost::python::function::add_to_namespace() python USE GITHUB Boost 1.44.0 Boost 1.43.0 Patches Ralf W. Grosse-Kunstleve new 2010-05-26T12:58:06Z 2011-09-08T21:27:56Z "In libs/python/src/object/function.cpp, there is an obvious reference leak: https://svn.boost.org/trac/boost/browser/trunk/libs/python/src/object/function.cpp?rev=60625#L444 The first branch retrieves a borrowed reference, when the seconds gets a new reference. This is stored in a plain `PyObject*`, there is no magic in some destructor. This code is likely to leak references. I suggest to use `dict = PyObject_GetAttrString(ns, ""__dict__"")` in all cases, and add `Py_DECREF(dict)` when it is no more needed." Amaury Forgeot d'Arc Boost 1.44.0 4307 basic_oarchive optimization serialization Boost 1.44.0 Boost 1.43.0 Patches Robert Ramey new 2010-06-06T21:15:06Z 2010-06-08T21:31:42Z "attached are patches that optimizes memory allocation and runtime complexity of basic_oarchive. it should not change any serialization behaviour, and archives by the patched basic_oarchive can be read by the unpatched basic_iarchive. what the patch does in detail: - replace log(O) lookup of ""cobject"" class info for each serialized class with a log(1) vector lookup. avoids container node allocation. - replace log(O) lookup of ""aobject"" object tracking info with log(1) hashing. avoids container node allocation. - use allocation pools for ""aobject"" object tracking info - store whether a class was stored as a pointer inside the ""cobject"" class info, to remove std::set stored_pointers before: - 4 allocations on construction - 1 allocation for each serialized class, tracked or not - 1 allocation for each tracked object after: - 1 allocation on construction(PIMPL) - no allocation for classes if less than 256 classes are serialized. 1 allocation for 512 classes, 2 for 1024, ... - no allocation for object tracking if less than 256 objects are serialized. after that, about 1 allocation for 16 tracked objects " anonymous Boost 1.44.0 4356 small change to allow mpl code to compile with nvcc (the compiler for cuda) mpl Boost 1.44.0 Boost 1.43.0 Patches Joel Falcou new 2010-06-17T04:13:37Z 2010-12-30T15:06:12Z fixes compilation problem when using mpl and mpl dependent libraries with nvcc (Edg front-end) anonymous Boost 1.44.0 4360 Borland / Codegear patch for boost::enable_error_info exception Boost 1.44.0 Boost 1.43.0 Patches Emil Dotchevski new 2010-06-19T16:27:07Z 2010-06-19T16:27:07Z "Please consider the attached patch, which will allow Codegear 2010 to pass the enable_error_info_test. The patch supports calling enable_error_info(T const &), as long as T is ''not'' derived from {{{boost::exception}}}. Which seems like an acceptable limitation to me. Right? Note: The attached patch assumes that the little patch from #4344 is also applied: https://svn.boost.org/trac/boost/attachment/ticket/4344/helper1_cpp_qualified_call_to_boost_enable_error_info.patch" niels_dekker Boost 1.44.0 4476 OpenVMS patch for 64 bit support function Boost 1.44.0 Boost 1.44.0 Patches Douglas Gregor new 2010-07-27T14:12:03Z 2010-07-27T14:12:03Z "Hello, This patch provides 64 bit fixes for OpenVMS platform. It is **very important** for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler. This patch related to ticket: #4473 Thanks, Artyom " artyomtnk@… Boost 1.44.0 4547 Documentation enhancement parameter Boost 1.44.0 To Be Determined Patches Daniel Wallin new 2010-08-16T22:52:45Z 2010-08-16T22:52:45Z "David Abrahams suggested that I write up an update to the Boost.Parameter documentation. I did so, and he asked me to post a ticket about it so he wouldn't forget. The update can be found in this Boost-Dev message: http://lists.boost.org/Archives/boost/2010/06/168418.php Let me know if you need any further information on it." chadnelson Boost 1.44.0 4564 Boost.Python import function raises boost::python::error_already_set python USE GITHUB Boost 1.44.0 To Be Determined Patches Dave Abrahams new 2010-08-18T14:23:39Z 2010-08-18T17:58:19Z Should never try to extract a pointer to non-const char from a str. brianhray@… Boost 1.44.0 4569 [patch] fusion::unfused reusability / perfect forwarding fusion Boost 1.44.0 To Be Determined Patches t_schwinger new 2010-08-19T11:29:35Z 2011-01-21T07:58:37Z "attached is a patch to unfused.hpp, used by fusion::make_unfused. what it does: * ""fused"" currently forces you to store a function object in order to use the ""unfusing"" interface. this patch makes the interface of unfused reusable by other classes, by introducing a CRTP class ""unfuse_interface"", that is used by unfused. simplified example: {{{ class unfused : unfused_interface{ private: friend class unfused_interface; result call(Args &args){ //unfused::operator()(...) was called. args is a sequence //of the passed arguments return stored_fused_functor(args); } Function stored_fused_functor; }; }}} * perfect forwarding: ""unfused"" only takes non-const references as arguments. this patch changes that to the compromise of boost::bind(): perfect forwarding for up to 2 arguments, beyond that either all arguments are const refs, or all arguments are non-const refs. " anonymous Boost 1.44.0 4596 Squash 64 bit warnings python USE GITHUB Boost 1.44.0 To Be Determined Patches Dave Abrahams new 2010-08-25T20:11:45Z 2015-05-12T18:07:56Z When using 64 bit Boost Python I get plenty of warnings when compiling my programs. Most of them involving `Py_ssize to unsigned` or `size_t to long`. The attached path just hides these warnings. Matthew Bradbury Boost 1.44.0 4787 ASIO - adding support for accessing UDP control headers asio Boost 1.44.0 To Be Determined Patches chris_kohlhoff new 2010-10-25T18:31:22Z 2015-11-13T11:35:13Z "Attached patch implements ASIO support for accessing optional UDP control headers such as the timestamp information set with SO_TIMESTAMP. Here are two ways of getting timestamp information using the new feature of the patch. Note that it works in synchronous and asynchronous mode. ip::udp::socket sock; ... sock.set_option(ip::unicast::timestamp(true)); ... ip::udp::endpoint ep; sock.receive_from(buf, ep, bytes_transferred); boost::asio::detail::io_control::siocgstamp tv1; for (const cmsghdr* cmsg = ep.control_header_first(); cmsg; cmsg = ep.control_header_next(cmsg)) { printf("" cmsg_len %zu: "", cmsg->cmsg_len); switch (cmsg->cmsg_level) { case SOL_SOCKET: switch (cmsg->cmsg_type) { case SO_TIMESTAMP: { const timeval *stamp = ep.control_msg_data(cmsg); printf(""SO_TIMESTAMP %ld.%06ld"", (long)stamp->tv_sec, (long)stamp->tv_usec); tv1.set(*stamp); break; } case SO_TIMESTAMPNS: { const timespec* stamp = ep.control_msg_data(cmsg); ... break; } default: printf(""type %d"", cmsg->cmsg_type); break; } break; } default: printf(""Level %d, Type %d"", cmsg->cmsg_level, cmsg->cmsg_type); break; } } // Alternative way of getting the last datagram's kernel timestamp boost::asio::detail::io_control::siocgstamp tv; boost::system::error_code ec; boost::asio::detail::socket_ops::state_type client_state = 0; boost::asio::detail::socket_ops::ioctl( a_sock.native(), client_state, tv.name(), tv.data(), ec); Hope it can be included in the release. Regards, Serge" anonymous Boost 1.44.0 4870 ISO Timestamp Parsing Bug date_time Boost 1.44.0 To Be Determined Patches az_sw_dude new 2010-11-19T14:57:38Z 2011-04-11T18:22:22Z "boost::posix_time::from_iso_string() converts ""20100713"" into ""20100713T201007.300000"" which is obviously wrong. The error is caused by boost::date_time::split(). The attached patch corrects split() so that an exception is thrown later in parse_delimited_time_duration(). The problem is reproducible in Boost 1.42.0 and 1.44.0. This simple example demonstrates the issue: const boost::posix_time::ptime time=boost::posix_time::from_iso_string(""20100713""); std::cout << ""Converted: "" << boost::posix_time::to_iso_string(time) << std::endl; Converted: 20100713T201007.300000 Maybe someone can apply this patch." peter.klotz@… Boost 1.44.0 4954 Unused parameter warning in boost/parameter/aux_/tagged_argument.hpp parameter Boost 1.44.0 To Be Determined Patches Daniel Wallin new 2010-12-07T20:31:47Z 2010-12-07T20:31:47Z There is an unused parameter warning on line 123 of tagged_argument.hpp with GCC 4.3.0 on Mac OS 10.6.4. The attached patch fixes it. Rich McKeever Boost 1.44.0 4668 Conditions for operator overload in Proto (documentation) proto Boost 1.44.0 To Be Determined Tasks Eric Niebler assigned 2010-09-21T20:00:16Z 2010-10-06T18:18:11Z "Taken from this thread in boost-users: http://lists.boost.org/boost-users/2010/09/62747.php This explanation by Thomas Heller would make a good section for the proto documentation: {{{ In order for a proto overload to be created the following conditions must be true: 1) the operands must be in a compatible domain 2) the left hand operand and the right hand operand must match the grammar specified in the domain 3) the resulting expression must match the grammar specified in the domain. }}} To illustrate what this means, this minimalistic example might be useful, too: This grammar {{{ proto::plus, proto::terminal > }}} used in a domain would not allow {{{ i + i; }}} with i being an int-terminal. " Roland Bock Boost 1.45.0 4660 Error read binary archive, created by old boost version serialization Boost 1.45.0 Boost 1.45.0 Bugs Robert Ramey reopened 2010-09-20T08:49:21Z 2014-03-10T21:09:13Z "I have some binary archive files, which was created by old version of boost::serialization. New (1.44) version does not read these files. Program throws exception “unsupported_version” I have done some small investigation. The pproblem is: Old code writes library_version as 1 byte, but new code (1.44) writes library_version as unsigned short!!! You can see in attachment 2 files, which was created boost_1_44_0\libs\serialization\example\demo.cpp. I modify this program for work with binary archive. First file demofile.dat was created with boost 1.43. Second file demofile_1_44.dat. Was created with boost 1.44. I think it is very serious bug, as archive compatibility was ruined. " serge-voropaev@… Boost 1.45.0 4888 codecvt_error_category is not thread-safe filesystem Boost 1.45.0 To Be Determined Bugs Beman Dawes new 2010-11-24T08:13:04Z 2010-11-24T08:13:04Z The boost::filesystem3::codecvt_error_category uses unprotected function-local static variable of type codecvt_error_cat, which is not POD. One thread may half-initialize this value when the other thread will acquire and use a reference to the not yet constructed error category. The object must be protected with call_once or a similar technique. Andrey Semashev Boost 1.45.0 4896 Bjam doesn't build correctly with Intel compiler when both vc8 and vc9 are installed on the same machine. Building Boost Boost 1.45.0 To Be Determined Bugs new 2010-11-25T11:06:16Z 2010-11-25T11:06:16Z "== Setup == With the following machine setup: * Windows 7 * Intel Pro C++ compiler for windows 11.1.067 * Visual studio 2005 and Visual studio 2008 == Command == {{{#!sh ""C:\Program Files (x86)\Intel\Compiler\11.1\067\bin\iclvars.bat"" intel64 vs2005 bjam --toolset=""intel-11.1.067"" ""-sINTEL_PATH= C:\Program Files (x86)\Intel\Compiler\11.1\067\bin\intel64"" ""-sINTEL_BASE_MSVC_TOOLSET=vc8"" ""-sINTEL_VERSION=11"" --build-type=complete }}} == Problem == This builds and creates dlls. However, upon inspection with dependency walker, the dlls are linking with vc9 rather than vc8. == Workaround == Renaming the visual studio 2008 directory to something different, and rebuilding boost. The dlls then correctly link with visual studio 2005." Matt Boost 1.45.0 4899 Parallel graphs don't work with named vertices graph Boost 1.45.0 To Be Determined Bugs ngedmond new 2010-11-27T16:43:16Z 2012-04-16T17:56:49Z "`brandes_betweenness_centrality` doesn't work with named vertices. Here are two reproducible examples: https://gist.github.com/f02f18f30f0eef146a58 This is probably caused by the lack of a `local()` function in the `hashed_distribution` declared in `named_graph.hpp`. See also this discussion on the mailing list: http://lists.boost.org/boost-users/2010/11/64489.php" cpaolino@… Boost 1.45.0 4908 Bug in program_options program_options Boost 1.45.0 To Be Determined Bugs Vladimir Prus reopened 2010-11-29T22:03:34Z 2014-05-02T12:32:01Z "In a simple example, I get errors OS Linux x64 (Kubuntu 10.10) g++ 4.5 Example (boost/libs/program_options/example/first.cpp) #include namespace po = boost::program_options; #include #include using namespace std; int main(int ac, char* av[]) { try { po::options_description desc(""Allowed options""); desc.add_options() (""help"", ""produce help message"") (""compression"", po::value(), ""set compression level"") ; po::variables_map vm; po::store(po::parse_command_line(ac, av, desc), vm); po::notify(vm); if (vm.count(""help"")) { cout << desc << ""\n""; return 1; } if (vm.count(""compression"")) { cout << ""Compression level was set to "" << vm[""compression""].as() << "".\n""; } else { cout << ""Compression level was not set.\n""; } } catch(exception& e) { cerr << ""error: "" << e.what() << ""\n""; return 1; } catch(...) { cerr << ""Exception of unknown type!\n""; } return 0; } I have[[BR]] /home/dix/Projects/Test/CppApplication_1/main.cpp:13: undefined reference to `boost::program_options::options_description::m_default_line_length' /home/dix/Projects/Test/CppApplication_1/main.cpp:13: undefined reference to `boost::program_options::options_description::m_default_line_length' /home/dix/Projects/Test/CppApplication_1/main.cpp:13: undefined reference to `boost::program_options::options_description::options_description(std::basic_string, std::allocator > const&, unsigned int, unsigned int)' /home/dix/Projects/Test/CppApplication_1/main.cpp:15: undefined reference to `boost::program_options::options_description::add_options()' /home/dix/Projects/Test/CppApplication_1/main.cpp:15: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)' /home/dix/Projects/Test/CppApplication_1/main.cpp:17: undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)' /home/dix/Projects/Test/CppApplication_1/main.cpp:19: undefined reference to `boost::program_options::variables_map::variables_map()' /home/dix/Projects/Test/CppApplication_1/main.cpp:20: undefined reference to `boost::program_options::store(boost::program_options::basic_parsed_options const&, boost::program_options::variables_map&, bool)' /home/dix/Projects/Test/CppApplication_1/main.cpp:21: undefined reference to `boost::program_options::notify(boost::program_options::variables_map&)' /home/dix/Projects/Test/CppApplication_1/main.cpp:24: undefined reference to `boost::program_options::operator<<(std::basic_ostream >&, boost::program_options::options_description const&)' build/Debug/GNU-Linux-x86/main.o: In function `~validation_error': /usr/local/include/boost/program_options/errors.hpp:153: undefined reference to `vtable for boost::program_options::validation_error' build/Debug/GNU-Linux-x86/main.o: In function `value_semantic_codecvt_helper': /usr/local/include/boost/program_options/value_semantic.hpp:91: undefined reference to `vtable for boost::program_options::value_semantic_codecvt_helper' build/Debug/GNU-Linux-x86/main.o: In function `~value_semantic_codecvt_helper': /usr/local/include/boost/program_options/value_semantic.hpp:91: undefined reference to `vtable for boost::program_options::value_semantic_codecvt_helper' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::variables_map::operator[](std::basic_string, std::allocator > const&) const': /usr/local/include/boost/program_options/variables_map.hpp:150: undefined reference to `boost::program_options::abstract_variables_map::operator[](std::basic_string, std::allocator > const&) const' build/Debug/GNU-Linux-x86/main.o: In function `~variables_map': /usr/local/include/boost/program_options/variables_map.hpp:143: undefined reference to `vtable for boost::program_options::variables_map' build/Debug/GNU-Linux-x86/main.o: In function `basic_command_line_parser': /usr/local/include/boost/program_options/detail/parsers.hpp:43: undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector, std::allocator >, std::allocator, std::allocator > > > const&)' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::basic_command_line_parser::options(boost::program_options::options_description const&)': /usr/local/include/boost/program_options/detail/parsers.hpp:51: undefined reference to `boost::program_options::detail::cmdline::set_options_description(boost::program_options::options_description const&)' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::basic_command_line_parser::style(int)': /usr/local/include/boost/program_options/detail/parsers.hpp:69: undefined reference to `boost::program_options::detail::cmdline::style(int)' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::basic_command_line_parser::extra_parser(boost::function1, std::allocator >, std::basic_string, std::allocator > >, std::basic_string, std::allocator > const&>)': /usr/local/include/boost/program_options/detail/parsers.hpp:77: undefined reference to `boost::program_options::detail::cmdline::set_additional_parser(boost::function1, std::allocator >, std::basic_string, std::allocator > >, std::basic_string, std::allocator > const&>)' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::basic_command_line_parser::run()': /usr/local/include/boost/program_options/detail/parsers.hpp:104: undefined reference to `boost::program_options::detail::cmdline::run()' build/Debug/GNU-Linux-x86/main.o: In function `std::vector, std::allocator >, std::allocator, std::allocator > > > boost::program_options::to_internal, std::allocator > >(std::vector, std::allocator >, std::allocator, std::allocator > > > const&)': /usr/local/include/boost/program_options/detail/convert.hpp:79: undefined reference to `boost::program_options::to_internal(std::basic_string, std::allocator > const&)' build/Debug/GNU-Linux-x86/main.o:(.rodata._ZTVN5boost15program_options11typed_valueIicEE[vtable for boost::program_options::typed_value]+0x38): undefined reference to `boost::program_options::value_semantic_codecvt_helper::parse(boost::any&, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, bool) const' build/Debug/GNU-Linux-x86/main.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[vtable for boost::program_options::invalid_option_value]+0x20): undefined reference to `boost::program_options::validation_error::what() const' build/Debug/GNU-Linux-x86/main.o:(.rodata._ZTIN5boost15program_options11typed_valueIicEE[typeinfo for boost::program_options::typed_value]+0x18): undefined reference to `typeinfo for boost::program_options::value_semantic_codecvt_helper' build/Debug/GNU-Linux-x86/main.o: In function `boost::program_options::typed_value::name() const': /usr/local/include/boost/program_options/detail/value_semantic.hpp:26: undefined reference to `boost::program_options::arg' /usr/local/include/boost/program_options/detail/value_semantic.hpp:28: undefined reference to `boost::program_options::arg' build/Debug/GNU-Linux-x86/main.o: In function `void boost::program_options::validate(boost::any&, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, int*, long)': /usr/local/include/boost/program_options/detail/value_semantic.hpp:85: undefined reference to `boost::program_options::validators::check_first_occurrence(boost::any const&)' /usr/local/include/boost/program_options/detail/value_semantic.hpp:91: undefined reference to `boost::program_options::invalid_option_value::invalid_option_value(std::basic_string, std::allocator > const&)' build/Debug/GNU-Linux-x86/main.o: In function `std::basic_string, std::allocator > const& boost::program_options::validators::get_single_string(std::vector, std::allocator >, std::allocator, std::allocator > > > const&, bool)': /usr/local/include/boost/program_options/detail/value_semantic.hpp:58: undefined reference to `boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)' /usr/local/include/boost/program_options/detail/value_semantic.hpp:62: undefined reference to `boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)' build/Debug/GNU-Linux-x86/main.o: In function `validation_error': /usr/local/include/boost/program_options/errors.hpp:139: undefined reference to `vtable for boost::program_options::validation_error'" dix75@… Boost 1.45.0 4969 transform_iterator won't work with non-const operator() call for function object iterator Boost 1.45.0 To Be Determined Bugs jeffrey.hellrung new 2010-12-09T01:56:02Z 2014-02-23T16:18:00Z "transform_iterator declare it's copied function object as: {{{#!c++ UnaryFunc m_f; }}} And it's dereference function as: {{{#!c++ typename super_t::reference dereference() const { return m_f(*this->base()); } }}} which makes it impossible to cooperate with function object with non-const operator() overloading, and and it will also make transformed adaptor in boost::range not work: {{{#!c++ struct Fun { typedef bool result_type; bool operator()(int a) { return a != 1; } }; Fun f; boost::find(all|boost::adaptors::transformed(f), true); }}} A boost::ref won't work here since the result has no result_type defined And the only solution would be using a boost::function to hold the original function object, however, doing so will give unnecessary run time cost. I suggest change the UnaryFunc m_f; definition to mutable, so that it will work with non-const functor. {{{#!c++ UnaryFunc mutable m_f; }}} " zhuo.qiang@… Boost 1.45.0 5001 Failure to compile boost_1_45 and boost-trunk on ia64 (itanium2) with toolset intel-linux build Boost 1.45.0 Boost 1.49.0 Bugs Vladimir Prus new 2010-12-18T20:19:23Z 2013-04-12T14:52:21Z "Hi all, I have tried to compile boost_1_45_0 using the Intel compiler on an Itanium machine, but it seems to fail with a segfault: {{{ xxx@cn002:~/src/boost_1_45_0> ./bootstrap.sh --with-toolset=intel-linux --show-libraries --prefix=$HOME Building Boost.Jam with toolset intel-linux... Failed to build Boost.Jam Consult 'bootstrap.log' for more details xxx@cn002:~/src/boost_1_45_0> cat bootstrap.log ### ### Using 'intel-linux' toolset. ### rm -rf bootstrap mkdir bootstrap icc -o bootstrap/jam0 command.c compile.c debug.c expand.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c expand.c(85): warning #181: argument is incompatible with corresponding format string conversion printf( ""expand '%.*s'\n"", end - in, in ); ^ ./bootstrap/jam0 -f build.jam --toolset=intel-linux --toolset-root= clean ...found 1 target... ...updating 1 target... [DELETE] clean ./build.sh: line 13: 27407 Segmentation fault (core dumped) $@ }}} So far, I have gathered the following information: * I've done this on two different Itanium machines I've got access to. It fails with the same error message on both machines. * I have used Intel compilers 11.1, 11.0, 10.1. Same error message with all of them. * Compiling on x86_64 with the above compilers works as expected. Next, I have checked out the boost trunk from the subversion rep. Here, it does not offer any libraries to compile: {{{ xxx@cn002:~/src/boost-trunk> ./bootstrap.sh --with-toolset=intel-linux --show-libraries Building Boost.Jam with toolset intel-linux... tools/build/v2/engine/src/bin.linuxia64/bjam The following Boost libraries have portions that require a separate build and installation step. Any library not listed here can be used by including the headers only. The Boost libraries requiring separate building and installation are: xxx@cn002:~/src/boost-trunk> }}} I decided to still give it a go: {{{ xxx@cn002:~/src/boost-trunk> ./bootstrap.sh --with-toolset=intel-linux --with-libraries=iostreams,mpi,serialization Building Boost.Jam with toolset intel-linux... tools/build/v2/engine/src/bin.linuxia64/bjam Unicode/ICU support for Boost.Regex?... not found. Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./bjam To adjust configuration, edit 'project-config.jam'. Further information: - Command line help: ./bjam --help - Getting started guide: http://www.boost.org/more/getting_started/unix-variants.html - Boost.Build documentation: http://www.boost.org/boost-build2/doc/html/index.html xxx@cn002:~/src/boost-trunk> ./bjam Segmentation fault (core dumped) }}} No luck either :( At this point, I'm running out of ideas - anything else I could try? Cheers, Stefan " Stefan Janecek Boost 1.45.0 5020 build.bat selects incorrect toolset Building Boost Boost 1.45.0 To Be Determined Bugs new 2010-12-24T13:21:48Z 2010-12-24T13:21:48Z "Building on Win7 64-bit. In function ''':Test_Path''', statement ''set test=%~$PATH:1'' is not getting errorlevel 1 when the file is not found (win7 bug?). This results in msvc being selected as the toolset. As a workaround, I changed the line (in Test_PATH):[[BR]] ''if not errorlevel 1 set FOUND_PATH=%~dp$PATH:1'' [[BR]]to:[[BR]] ''if not errorlevel 1 if _%test% NEQ _ set FOUND_PATH=%~dp$PATH:1'' All callers of Test_Path were also changed to test FOUND_PATH for a value. A cleaner solution may be able to remove the errorlevel 1 tests. ...chris." webstech@… Boost 1.45.0 5023 Can not build Boost.Python build Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2010-12-29T14:28:47Z 2010-12-30T15:09:59Z "I have installed Python 2.6 when i runing ""bjam"" i have messages: {{{ warning: No python installation configured and autoconfiguration note: failed. See http://www.boost.org/libs/python/doc/building.html note: for configuration instructions or pass --without-python to note: suppress this message and silently skip all Boost.Python targets }}} After I add add line ""using python : 2.6 ; "" to ""project-config.jam"" I have this warning message again. Then I add absolute path to python in ""project-config.jam"". This is not working too. I run bjam with ""--debug-configuration"" option and have messages: {{{ notice: [python-cfg] running command '""C:\Python26\python.exe"" -c ""from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" 2>&1' notice: [python-cfg] ...does not invoke a working interpreter notice: [python-cfg] No working Python interpreter found. }}} But when I run {{{ ""C:\Python26\python.exe"" -c ""from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" }}} manualy, I have correct results. Ok. Next I modify ""tools\build\v2\tools\python.jam"" {{{ local rule shell-cmd ( cmd ) { debug-message running command '$(cmd)"" 2>&1""' ; x = [ SHELL $(cmd)"" 2>&1"" : exit-status ] ; debug-message CMD ""$(cmd)"" ; <<<<<<< add this string debug-message RESULT ""$(x)"" ; <<<<<<< add this string if $(x[2]) = 0 { return $(x[1]) ; } else { return ; } } }}} and run ""bjam --debug-configuration"" again Result: {{{ notice: [python-cfg] running command '""C:\Python26\python.exe"" -c ""from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' %(version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" 2>&1' notice: [python-cfg] CMD ""C:\Python26\python.exe"" -c ""from sys import *; print(' version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" notice: [python-cfg] RESULT ""C:\Python26\python.exe"" -c ""from"" <<<< (here is error text at Russian. He said what this is not correct path and shell can not execute this command) notice: [python-cfg] ...does not invoke a working interpreter notice: [python-cfg] No working Python interpreter found. }}} I don't know why he is trim command. " hacenator@… Boost 1.45.0 5083 Snow Leopard, Xcode 3.2.x - i) Address-model seeming not to work ii) user-config.jam + build.sh, and iii) insufficient documentation for Boost.build - Jan. 18, 2011 build Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2011-01-18T09:41:02Z 2011-03-31T01:00:48Z "Preliminary: - platform: Mac mini Intel Core 2 Duo - OS: Mac OS X 10.6.x (Snow Leopard) - IDE and related development tools: Xcode 3.2.5 - BOOST versions: 1.43.0 .. 1.45.0 PART I: multi-architecture Unable to build multi-architecture, even though using the address-model option for bjam, according your Boost.build V2 documentation. Results are as follows, with Boost v. 1.45.0 (similar results with previous versions): 1. the address-model option is not given to bjam. The standard gcc (g++) compiler is used: size of the build folder: 186.3 MB. Architecture build (found with the ""lipo -i"" command): x86_64 2. address-model set to 32: size of the build folder: 184.1 MB. Architecture build (found with the ""lipo -i"" command): x86_64 3. address-model set to 32_64: size of the build folder: 184.1 MB. Architecture build (found with the ""lipo -i"" command): x86_64 In consequence: it seems that the address-model option remains uneffective. Unable to build multi-architecture. Besides, the 32-bit architecture lonely cannot be build too. #================================ PART II: user-config.jam, build.sh In my attempt to build multi-architecture BOOST libraries for Mac OS X, I tried several BOOST initial configurations through user-config.jam and build.sh located in /tolls/jam/src for the 1.45.0 version (located elsewhere for previuous versions - TBV, namely to be verified ... again). Please find below my results and, in my own opinions, tehy likely are unsecure in terms of quality of sofware development (kindly see the EIFFEL - MEYER or MAYER - handbook for this topics) : 1. user-config-jam: According to the BOOST.Build V2 documentation, I set ""using gcc"" with g++. It seems that it has an influence upon the build libraries (sizes different) compared to let this option not seen by bjam (in other words, keeping: #using gcc : : ;) 2. user-config.jam, build.sh After having looked at the build.sh file (TBV) and ahving seen that darwin is used to set the compiler to : cc (NB the ""basic"" C compiler), and even it is not indicated in teh Boost.build documentation, I tried to use the following rule: using darwin : : g++; It seems this has an influence, but I am not sure. Besdes, I am not sure that this is correct, because teh documentation remains unsufficient on this point in particular, on Apple generally. #================================ PART III: BOOST.build V2 documentation Unsufficient. A fairly big lack of real examples, in particular for the bjam section. Very useful but lacking: a summary of EVERY option of bjam in the command-line context. Etc. #================================ PART IV: miscellaneous 1. No check nor install check seeming to be present or allowed for BOOST. Expected a good new feature 2. IMPORTANT No possibility to see, for example before compilation, he complete or even partial set of configuration parameters used, such as: CC, CXX, CFLAGS, CXXFLAGS, LDFLAGS, etc ... very welcome for debugging 3. IMPORTANT CPP and CXXCPP seem not to be allowed to be set. How to fix that ? GNU compilers need thsi, because, according to their manuals, multi-architecture building needs : CPP""gcc -E"", CXXCPP=""g++ -E"", with : CC=""gcc -arch i386 -arch x86_64"", and CXX=""g++ -arch i386 -arch x86_64"" for example. " doc0.delphin@… Boost 1.45.0 5092 Modify mpi.jam to use thread safe invocation of IBM compiler build Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2011-01-18T23:40:37Z 2011-04-28T08:55:59Z "IBM POE wrapper, `mpCC`, invokes the thread safe invocation of the IBM compiler, `xlC_r`. This patch achieves the same for Boost MPI configuration. " hstong@… Boost 1.45.0 5094 Build problem of boost.mpi on non-English Windows systems build Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2011-01-19T08:06:04Z 2011-01-19T08:06:04Z "Autodetection/Build of MPI fails on non-English systems because mpi.jam looks for the Microsoft Compute Cluster Package only in ""C:\Program Files"", but this folder has different names on non-English systems (e.g. ""C:\Programme"" on my German system). Details are in the mail list thread on build-boost from 2011-01-17 http://lists.boost.org/boost-build/2011/01/24512.php. Suggested fix is to use an environment variable for the program folder, as suggested by Moritz Hassert in the above mentioned thread. I am just not technically knowledgable enough concerning the Windows OS, the intended locations for the Compute Pack on different systems (32 bit, 64 bit etc.) and the patching process; else I would submit a patch by myself." frese@… Boost 1.45.0 5109 assignment operator could not be generated VC 2008 scope_exit Boost 1.45.0 To Be Determined Bugs nasonov new 2011-01-22T09:11:28Z 2014-09-16T08:54:44Z "I get the folowing warnings when using BOOST_SCOPE_EXIT from boost/scope_exit.hpp in VC 2008 SP1 {{{ 1>D:\Programming\boost_1_45_0\boost/scope_exit.hpp(84) : warning C4512: 'boost::scope_exit::aux::member' : assignment operator could not be generated 1> with 1> [ 1> T=test::boost_se_params_t_0::boost_se_param_t_0_0, 1> Tag=boost_se_tag_0_0 1> ] 1> .\test.cpp(7) : see reference to class template instantiation 'boost::scope_exit::aux::member' being compiled 1> with 1> [ 1> T=test::boost_se_params_t_0::boost_se_param_t_0_0, 1> Tag=boost_se_tag_0_0 1> ] 1>.\test.cpp(7) : warning C4512: 'test::boost_se_params_t_0' : assignment operator could not be generated 1> .\test.cpp(7) : see declaration of 'test::boost_se_params_t_0' }}} This happens under boost 1.45." borisarb@… Boost 1.45.0 5114 Unexpected exception from tcp::socket::async_connect asio Boost 1.45.0 To Be Determined Bugs chris_kohlhoff new 2011-01-24T09:18:55Z 2015-11-12T09:27:04Z "ASIO uses two sockets connected to each other through loopback interface (in select_reactor). If, for example, access to loopback is blocked by firewall, then async_connect throws exception, instead of calling given handler with appropriate error code. " pavel@… Boost 1.45.0 5122 doc/html/mpi/python.html contains dead link mpi Boost 1.45.0 To Be Determined Bugs Matthias Troyer new 2011-01-26T11:18:07Z 2013-09-01T09:36:41Z "http://www.boost.org/doc/libs/1_45_0/doc/html/mpi/python.html has a dead link in the ""Reference"" section." anonymous Boost 1.45.0 5133 Iostreams code_converter buffer iostreams Boost 1.45.0 To Be Determined Bugs Jonathan Turkanis new 2011-01-27T19:29:13Z 2011-01-27T19:29:55Z "I've been working on converting a the fastcgi++ library over to using boost::iostreams from std::iostreams and I've noticed some peculiarities that I can't seem to work passed. For one, how do you change the buffer size of the code_converter adaptor? The built in facilities don't seem to actually do anything. I am adding to a filtering_stream and have noticed that for the following statements... stream.push(code_converter(myDevice), 8192); stream.push(code_converter(myDevice, 8192)); stream.push(code_converter(myDevice, 8192), 8192); All result in a buffer of 128 bytes. I can't figure out a way to actually change it. I've been monitoring what is going in the myDevice and it is always 128 byte chunks (or less). If I remove the code_converter from the stream and go directly in myDevice as per stream.push(myDevice, 8192); the buffer is sized as I want it to be and myDevice receives chunks of data maxing at 8192 bytes. Secondly, when using the statement stream.push(code_converter(myDevice, 8192)); code_converter calls not MyDevice(const MyDevice&) for copying constructing the object but for some reason MyDevice(const MyDevice&, const long int&). What is that? Why is code_converter looking for such a constructor when I specify a buffer size for the code converter? Thirdly, I can not for the life of me make the code converter flush it's data. If I call a stream.strict_sync() should the code_converter not get flushed as well? It doesn't. Everything else in the chain does but the code_converter won't fully flush until destruction." eddie@… Boost 1.45.0 5156 copying opened socket between processes (Microsoft Windows) asio Boost 1.45.0 To Be Determined Bugs chris_kohlhoff new 2011-02-03T14:55:05Z 2011-02-19T06:52:44Z "Hello, I use WSADuplicateSocket to copy opened socket from one process to another. I try to attach received socket: boost::asio::io_service io_service; tcp::socket s1(io_service); ... here I'v got opened socket (receivedSocket) through shared memory from other process ... using WSADuplicateSocket char sText[] = ""Open socket received !\r\n""; int nRet = send(receivedSocket, sText, strlen(sText), 0); // this works fine s1.assign(boost::asio::ip::tcp::v4(), receivedSocket); // here is an error: nr=87 msg=Invalid Parameter I tried debug and it lead me to call CreateIoCompletionPort What is wrong ? Is it a bug ? Or my misunderstanding ? Regards, Irek Olchawski. " irol@… Boost 1.45.0 5157 Assign native socket problem asio Boost 1.45.0 Bugs chris_kohlhoff new 2011-02-03T23:25:44Z 2011-03-17T17:05:58Z "Hi I'm trying to duplicate accepted/opened socket and pass them to other process. It works fine under linux. But under Windows I can't assign this native socket to boost::asio::ip::tcp::socket. When I try to assign opened native socket to boost socket object s.assign(boost::asio::ip::tcp::v4(), socketDup) throws me exception: ""The parameter is incorrect"". Even if I try to duplicate socket and use them in the same process. I still got this exception. The line inside boost throws this exception: boost_1_45_0\boost\asio\detail\impl\win_iocp_io_service.ipp: {{{ boost::system::error_code win_iocp_io_service::register_handle( HANDLE handle, boost::system::error_code& ec) { if (::CreateIoCompletionPort(handle, iocp_.handle, 0, 0) == 0) //this function failed { DWORD last_error = ::GetLastError(); ec = boost::system::error_code(last_error, boost::asio::error::get_system_category()); } else { ec = boost::system::error_code(); } return ec; } }}} I'm using: VC++ 2008 / Win7 What am I doing wrong? How can I resolve this problem? Thanks for help. Example code: {{{ boost::asio::io_service io_service; tcp::acceptor acceptor(io_service, tcp::endpoint(tcp::v4(), m_nPort)); std::cout << ""Waiting for connection..."" << std::endl; tcp::socket socket(io_service); acceptor.accept(socket); std::cout << ""connection accepted"" << std::endl; #ifdef _WIN32 WSAPROTOCOL_INFO pi; WSADuplicateSocket(socket.native(), get_current_process_id(), &pi); SOCKET socketDup = WSASocket(pi.iAddressFamily/*AF_INET*/, pi.iSocketType/*SOCK_STREAM*/, pi.iProtocol/*IPPROTO_TCP*/, &pi, 0, 0); char sText[] = ""I can use my duplicated socket via WinApi!\r\n""; int nRet = send(socketDup, sText, strlen(sText), 0); #else //linux int socketDup = dup(socket.native()); #endif try { tcp::socket s(io_service); s.assign(boost::asio::ip::tcp::v4(), socketDup); //this throws exception under Windows //I can't use my socket via boost lib s.send(boost::asio::buffer(""Not work\r\n"")); } catch(std::exception &e) { std::cerr << e.what() << std::endl; //""The parameter is incorrect"" exception } }}} " a.pacek@… Boost 1.45.0 5169 documentation on split_winmain() is missing program_options Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2011-02-08T06:23:01Z 2011-02-08T06:23:01Z "It is present in the program_options/parsers.hpp, and I except to see it in the generated docs: http://www.boost.org/doc/libs/1_45_0/doc/html/program_options/reference.html#header.boost.program_options.parsers_hpp" ilyasokol@… Boost 1.45.0 5176 test_assignment assumes fabs(float) uBLAS Boost 1.45.0 To Be Determined Bugs Gunter new 2011-02-10T20:39:38Z 2012-09-19T19:48:53Z "As per [lib.c.math] paragraphs 5 and 6, there are float and long double overloads for fabs(): {{{ float fabs (float); long double fabs (long double); }}} libstdc++ apparently does not have the required overloads and is seems libs/numeric/ublas/test/test_assignment.cpp relies on this. Patch provided. " hstong@… Boost 1.45.0 5239 Outdated Boost build instructions in the python tutorial python USE GITHUB Boost 1.45.0 To Be Determined Bugs Dave Abrahams new 2011-02-27T12:30:28Z 2011-02-27T12:30:28Z Since bjam is now part of boost build, the python tutorial is out of date. The attached patch is a quick fix, although it might be best to rewrite some of it. Daniel James Boost 1.45.0 5241 Ublas still links to the old CVS repository uBLAS Boost 1.45.0 To Be Determined Bugs Gunter new 2011-02-27T12:45:21Z 2011-02-27T12:45:21Z The attached patch updates it. Daniel James Boost 1.45.0 5244 and clash with docbook Documentation Boost 1.45.0 To Be Determined Bugs No-Maintainer new 2011-02-28T22:56:31Z 2012-11-08T11:24:52Z This is the remaining issue from #2153. Boostbook has `` and `` elements with different semantics to the the docbook elements with the same name. They're not in the dtd for this reason, and not documented. Should possibly rename the `<*name>` elements to something more sensible. Daniel James Boost 1.45.0 5291 bzip2_decompressor does not work properly with a filtering_streambuf iostreams Boost 1.45.0 To Be Determined Bugs Jonathan Turkanis new 2011-03-11T15:12:00Z 2013-07-01T00:20:27Z "The revision 63057 of boost/iostreams/filter/bzip2.hpp seems to have broken the ability to use the bzip2 decompressor in a filtering streambuf. When I pass a stream into the buffer it throws data_error_magic. Stepping through the code I can see it correctly decode the zipped data, but then it continues to attempt to decode data even after eof is reached. Looking at the changes to bzip2_decompressor_impl I see the following issues: 1.) The function returns true even if _eof is set to true. This causes the ""done"" flag in the ""Read"" function in symmetric.hpp to be set to false, which causes the bzip2_decompressor_impl function to execute again, after EOL. 2.) On the second execution when _eof is set, the ""close"" function resets _eof to false, which can cause the function to throw the exception. In the specific instance I am using, my bzip compressed section is embedded in the middle of the stream, so src_begin won't equal src_end." Chris Steenwyk Boost 1.45.0 5302 [accumulator] Generalise type arithmetics, e.g. make it play well with boost.units. accumulator Boost 1.45.0 To Be Determined Bugs Eric Niebler new 2011-03-14T05:34:46Z 2011-03-14T05:34:46Z "Accumulators library assumes that for an accumulated type T*T is also of type T. This makes it difficult to play it well with boost.unit for example; specially for the variance accumulator. Based on http://groups.google.com/group/boostusers/msg/86ebe100e3a86794 Below is the goal code: #include #include #include #include using namespace boost::accumulators; using namespace boost::units; int main(){ accumulator_set< quantity, features< tag::variance, > > a; a(1.0*si::second); a(2.0*si::second); a(3.0*si::second); std::cout << extract::variance(a) ; return 0; } " alfredo.correa@… Boost 1.45.0 5309 Multiple unused parameter warnings in boost/parameter/aux_/tagged_argument.hpp parameter Boost 1.45.0 To Be Determined Bugs Daniel Wallin new 2011-03-15T15:16:18Z 2011-03-15T15:16:18Z "Ticket #4954 has pointed out one of these warnings already (line 123) however there is one more on line 135 (and possibly others?). Line 123 and line 135 both have the same problem where there is an unused parameter which generates a compiler warning (GCC 4.1.2 on Red Hat Enterprise Linux Server release 5.2). The attached patch fixes both of these." Colin Powers Boost 1.45.0 5339 asio async_read throws boost::asio::error::invalid_argument on mac OS X asio Boost 1.45.0 To Be Determined Bugs chris_kohlhoff new 2011-03-19T00:05:20Z 2012-11-24T07:31:17Z "I am trying to write a serial library using Boost's asio, but on mac OS X the async_read throws boost::asio::error::invalid_argument. I have created a custom completion condition to ignore the invalid_argument exceptions, but this causes a busy wait (using a lot of cpu time) yet does not prevent data from being read. I have attached source code and output from both linux and os x. Linux: Ubuntu 10.10 i386 - Boost 1.42.0 Mac OS X: 10.6.6 - Boost 1.45.0" wjwwood@… Boost 1.45.0 5348 """imperceptible"" link in getting started" Getting Started Guide Boost 1.45.0 To Be Determined Bugs Dave Abrahams new 2011-03-21T12:36:49Z 2011-03-21T12:38:09Z "http://www.boost.org/doc/libs/1_46_1/more/getting_started/ I read getting started guide first time. After words {{{ Ready? Let's go! }}} I can't find where to click to go to next page for a long time. I suggest to make these two links left aligned and don't separate them with horizontal line. " sorokin@… Boost 1.45.0 5454 different behavior to report one kind of errors program_options Boost 1.45.0 To Be Determined Bugs Vladimir Prus new 2011-04-11T07:30:54Z 2011-04-11T07:30:54Z "If 'configuration file' has option wich not presented in 'options_description', then 'parse_config_file' throws 'logic_error'. If 'options_description' has option wich not presented in 'configuration file', then 'variablesMap[ ""option"" ].as<...>()' throws 'bad_cast'. It's will be good to have one type of error reporting: exception from 'parse_config_file'." anberlin.myplace@… Boost 1.45.0 5481 undesired warnings tokenizer Boost 1.45.0 To Be Determined Bugs jsiek new 2011-04-16T01:18:10Z 2011-12-18T00:30:50Z "Hi, I am building a simple test program (see attachment test_thread.cpp) using Microsoft Visual Studio 2010 with /W4 and /WX options and I am getting errors (see attachment test_thread.err). Yes, I could disable the specific warnings but I prefer that the library not generate such warnings. Regards, Leo " Leo Carreon Boost 1.45.0 5500 memory leak in async_write asio Boost 1.45.0 To Be Determined Bugs chris_kohlhoff new 2011-04-25T08:37:06Z 2011-04-25T08:37:06Z "First, call the function ""async_write"", when the callback function ""HandleWriteRequest"" is called, Then, close the socket. Repeat the above operation, the memory will continue to increase. In the attachment, you will see the demo. This program is running in the windows, the IDE is Microsoft visual studio 2008. Boost version is 1.45.0 Best regards." DengrongWu Boost 1.45.0 5629 base64 encode/decode for std::istreambuf_iterator/std::ostreambuf_iterator serialization Boost 1.45.0 To Be Determined Bugs Robert Ramey assigned 2011-06-22T13:29:41Z 2014-02-19T21:27:41Z "MSVS 2008 The code: {{{ #include ""boost/archive/iterators/base64_from_binary.hpp"" #include ""boost/archive/iterators/binary_from_base64.hpp"" #include ""boost/archive/iterators/transform_width.hpp"" //typedefs typedef std::istreambuf_iterator my_istream_iterator; typedef std::ostreambuf_iterator my_ostream_iterator; typedef boost::archive::iterators::base64_from_binary< boost::archive::iterators::transform_width< my_istream_iterator, 6, 8> > bin_to_base64; typedef boost::archive::iterators::transform_width< boost::archive::iterators::binary_from_base64< my_istream_iterator >, 8, 6 > base64_to_bin; void test() { { //INPUT FILE!!! std::ifstream ifs(""test.zip"", std::ios_base::in|std::ios_base::binary); std::ofstream ofs(""test.arc"", std::ios_base::out|std::ios_base::binary); std::copy( bin_to_base64( my_istream_iterator(ifs >> std::noskipws) ), bin_to_base64( my_istream_iterator() ), my_ostream_iterator(ofs) ); } { std::ifstream ifs(""test.arc"", std::ios_base::in|std::ios_base::binary); std::ofstream ofs(""test.rez"", std::ios_base::out|std::ios_base::binary); std::copy( base64_to_bin( my_istream_iterator(ifs >> std::noskipws) ), base64_to_bin( my_istream_iterator() ), my_ostream_iterator(ofs) ); } } }}} Result: 1) If the INPUT FILE will be any of ZIP-file format. The result was: a) _DEBUG_ERROR(""istreambuf_iterator is not dereferencable""); //it can be disabled or ignored b) The encoded file ""test.rez"" will have one superfluous byte than INPUT FILE 2) If the INPUT FILE will any other file (binary or text) all will be OK. " nen777w@… Boost 1.45.0 6730 error reading archive created by old version when it contains pointer serialization Boost 1.45.0 To Be Determined Bugs Robert Ramey new 2012-03-24T06:11:08Z 2012-05-28T17:22:50Z "Problem is similar to ticket 4660. Fwiw we just discovered a gap in our unit tests. :( Code below contains our local fix. Note that we only have used lib ver 3 and lib ver 5 and that this is the reason the fix only targets those versions. One last word, I checked the latest code ( 1.49 ) and it seems to contain the same flaw as 1.45. {{{ void load_override(class_id_type & t, int version){ library_version_type lvt = this->get_library_version(); if(boost::archive::library_version_type(7) < lvt){ this->detail_common_iarchive::load_override(t, version); } else if(boost::archive::library_version_type(6) < lvt){ int_least16_t x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } else if(boost::archive::library_version_type(3) == lvt || boost::archive::library_version_type(5) == lvt ){ #pragma message( ""CTMS fix for serialization bug ( lack of backwards compatability ) introduced by boost 1.45."" ) int_least16_t x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } else{ int x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } } }}} " d s m a l l @… Boost 1.45.0 7494 boost::replace_all is very slow on debug build when Format size is big string_algo Boost 1.45.0 To Be Determined Bugs Marshall Clow assigned 2012-10-11T09:28:38Z 2016-07-11T21:34:40Z "Method boost::replace_all(SequenceT& Input, const Range1T& Search, const Range2T& Format) on debug build takes very long time when Format size is about 300k. On call stack I can see push_front for every char. When I use std::find and std::replace in loop it is cca 10 times faster. I have Boost library 1.45, Visual Studio 2010, Win7 x64 SP1, 6-core CPU." Jan Vonasek Boost 1.45.0 799 mpl::if_ mpl Boost 1.45.0 Boost 1.46.0 Feature Requests Joel Falcou new 2006-12-22T12:20:30Z 2011-01-06T10:33:31Z "{{{ There is an alternative implementation of mpl::if. This implementation makes code clearer. We can write: typename if_ < X, Y > ::else_if < Z, U > ::else_ < V >::type The implementation can be found here: http://cbear.berlios.de/meta/if.hpp }}}" nobody Boost 1.45.0 2790 Executable bit is lost on windows builds. Building Boost Boost 1.45.0 To Be Determined Feature Requests Beman Dawes new 2009-02-21T18:05:09Z 2011-11-08T15:48:56Z The windows releases of boost don't have the executable bit set for scripts, so they can't be run if extracted on file systems which support the unix permissions (e.g. for OS X and linux). I think it would be retained if built on such a system. Daniel James Boost 1.45.0 4886 options_description clear() method program_options Boost 1.45.0 To Be Determined Feature Requests Vladimir Prus new 2010-11-23T20:27:58Z 2010-11-27T14:13:07Z "For a project I'm working on, I consistently add the following public clear() method to the boost/program_options/options_description.hpp header file. It's possible that others may find this clear() method useful as well. void clear() { m_options.clear(); belong_to_group.clear(); groups.clear(); } " mid9090@… Boost 1.45.0 4915 Iterator documentation does not list header files iterator Boost 1.45.0 To Be Determined Feature Requests jeffrey.hellrung new 2010-11-30T20:30:05Z 2012-11-21T19:44:45Z "The documentation of the iterator library does not list header files that need to be included to use all of its components. For example: http://www.boost.org/doc/libs/1_45_0/libs/iterator/doc/iterator_adaptor.html There is no information there about which files are necessary to get access to the class described in the documentation. " marcin.zalewski@… Boost 1.45.0 4942 Searching for boost-build.jam build Boost 1.45.0 To Be Determined Feature Requests Vladimir Prus new 2010-12-06T15:44:37Z 2011-03-31T00:58:38Z "Upon invocation bjam should also look for boost-build.jam in the Boost tree specified by the --boost=/path/to/Boost option if it can not find it anywhere else in its normal search path. This would allow any Boost-like library, using the directory structure suggested by the sandbox, to have its jamfiles execute properly even if it were not located within a Boost tree or beneath a top-level directory with its own boost-build.jam, as long as the bjam command had a --boost/path/to/Boost option pointing to a Boost distribution." Edward Diener Boost 1.45.0 4944 Summary of failed unit tests build Boost 1.45.0 To Be Determined Feature Requests Vladimir Prus new 2010-12-07T09:19:47Z 2010-12-08T09:35:25Z "While unit testing your component, you want to see if all pass, or if something fails.[[BR]] Currently, bjam only gives a statement how many tests fail at the end. Not which tests.[[BR]] It would be nice to have a summary listing of the failed tests at the end.[[BR]] The -q option is not applicable here, because you eventually want to see the current status of all unit tests." Thomas Heller Boost 1.45.0 4951 Boost.Tuple: implement set_open(const char *) tuple Boost 1.45.0 To Be Determined Feature Requests Joel de Guzman new 2010-12-07T20:14:57Z 2010-12-08T17:33:41Z "Current implementation of Boost.Tuple IO manipulators allows define only single character for start of tuple, delimiter of items and for end of tuple. 1. Sometimes it is convenient to have no character before and after tuple data. 2. Sometimes it is convenient to wrap tuple in more that single character. For example output tuple as HTML table row: with open string """", delimiter """" and end string """", so (1 2 3) will be outputted as correct HTML table row ""123"". " Vladimir Rutsky Boost 1.45.0 5027 Extension of Boost.Range algorithms algorithm Boost 1.45.0 To Be Determined Feature Requests Marshall Clow new 2011-01-01T12:21:35Z 2014-06-05T18:20:27Z "Maybe an idea to extend Boost.Range algorithms: - copy_if - for_each_if - transform_if - contains (/contains_if, shortcut for std::find(...) != end) - all (/all_if) - none(/none_if, shortcut for std::find(...) == end)) - bsearch (Austern 13.2.1.2) Some of them are listed in STLAlgorithmExtensions. " gast128 Boost 1.45.0 5192 Serialization of Boost.Filesystem path serialization Boost 1.45.0 To Be Determined Feature Requests Robert Ramey reopened 2011-02-14T22:41:00Z 2017-11-01T05:05:25Z "I came across Johan Rade's post about serialization of a filesystem path (see http://lists.boost.org/Archives/boost/2008/09/142550.php). However I couldn't spot it in the source code. Maybe a suggestion? Ofc the C4127 should be addressed then. Note: the mail thread is also about in which library the solution should be placed. My suggestion is to put it in serialization library, with the rationale that 'path' is a more basic concept (comparable to string, vector etc.) than serialization is. It would be more natural for serialization to use the filesystem library than the other way around. " gast128@… Boost 1.45.0 5224 Non-type class template parameters support. parameter Boost 1.45.0 To Be Determined Feature Requests Daniel Wallin new 2011-02-24T11:40:51Z 2011-02-24T11:40:51Z Domagoj Šarić Boost 1.45.0 5243 Support doxygen elements in passthrough mode. Documentation Boost 1.45.0 To Be Determined Feature Requests Steven Watanabe new 2011-02-28T22:47:06Z 2011-06-18T10:59:33Z A patch for this was attached to #3309, but I didn't apply it because doxygen seems to automatically mark words as `` and often gets it wrong. The change might be appropriate if that can be suppressed. Daniel James Boost 1.45.0 5245 ssend/issend support in Boost.MPI mpi Boost 1.45.0 To Be Determined Feature Requests Matthias Troyer new 2011-03-01T10:50:20Z 2013-01-01T11:13:26Z "I have code that depends on the use of MPI ssend/issend (synchronous send), so I would like to see Boost.MPI support it. I'm attaching a patch to this extent; it applies cleanly to Boost 1.45.0 and 1.46.0. The patched code sometimes fails the ""nonblocking"" test, seemingly at random and I'm not able to debug it. On the other hand, I have been using the patched Boost.MPI in production runs of my code for months now without any issue so I'm quite confident in it. " Riccardo Murri Boost 1.45.0 5357 system::error_code::operator unspecified_bool_type() should not assume 0 == success. system Boost 1.45.0 To Be Determined Feature Requests Beman Dawes new 2011-03-23T00:37:22Z 2012-09-09T23:12:50Z "[The following was submitted for discussion to boost@lists.boost.org on 2011-03-10. It received only one response, which was supportive.] I've found boost.system to be very useful for wrapping return codes from 3rd party libraries (e.g. libcurl). However, one problem I've encountered is that error_code's operator for boolean tests assumes that an error value of 0 == success. While this is often true, it is not universally so and precludes use of boost.system for such tasks as wrapping HTTP status codes (several of which are merely informative and don't indicate an error). I've found it puzzling that the logic for determining whether an error value represents an error doesn't reside in the error_category, where it can be customized as needed. For instance, boolean tests could chain to a is_error() virtual method in the error_category, the default implementation of which preserves the current behavior: {{{#!C++ namespace boost { namespace system { class error_category : public noncopyable { public: // ... virtual bool is_error( int ev ) const { return ev != 0; } // ... }; class error_code { public: // ... operator unspecified_bool_type() const { return m_cat->is_error( m_val ) ? unspecified_bool_true : 0; } // ... }; } } }}}" mgruenke@… Boost 1.45.0 5496 Add API for detection of exception exception Boost 1.45.0 To Be Determined Feature Requests Emil Dotchevski new 2011-04-22T12:34:20Z 2012-06-19T23:41:28Z "Purpose: detect if it's possible to call boost::current_exception() when writing generic code. Solution: add BOOST_CATCH_EXCEPTION() macro or boost::catch_exception() function and boost::has_current_exception() function." anberlin.myplace@… Boost 1.45.0 1574 operator<< for boost::posix_time::ptime ignores ostream flags date_time Boost 1.45.0 Patches az_sw_dude new 2008-01-16T17:15:54Z 2013-10-24T11:10:51Z "Consider the following: {{{ boost::posix_time::ptime a; cout << ""one "" << 1 << endl; cout.clear(ios::failbit); cout << ""two "" << 2 << endl; cout << ""time "" << a << endl; cout << ""three"" << 3 << endl; cout.clear(ios::goodbit); cout << ""four "" << 4 << endl; }}} Since cout should not produce output when ios::failbit is set, one would expect the output to be: {{{ one 1 four 4 }}} However, the output is: {{{ one 1 not-a-date-timefour 4 }}}" adam@… Boost 1.45.0 5024 Boost NVCC/CUDA fixes (MPL+concepts) mpl Boost 1.45.0 To Be Determined Patches Aleksey Gurtovoy new 2010-12-30T18:01:48Z 2011-11-11T02:29:26Z "Fix traits, MPL problems for gcc+nvcc compiles. BOOST_DEDUCED_TYPENAME doesnt work for nvcc because EDG and GCC treat them differently. That was fixed manually. " anonymous Boost 1.45.0 5065 Valgrind complaint when using Boost MPI mpi Boost 1.45.0 To Be Determined Patches Douglas Gregor new 2011-01-13T02:54:13Z 2013-01-01T11:12:48Z "I am using the latest Boost library (version 1.45.0) on Ubuntu. I have built Boost from the source using the bjam. boost::mpi::all_reduce uses boost::mpi::broadcast which seems to generate annoying invalid write errors under valgrind. The problem points to the line 47 in boost/mpi/detail/packed_oprimitive.hpp in const std::size_t &size() const function. I changed the function to: const std::size_t& size() const { const_cast(size_) = buffer_.size(); return size_; } and the valgrind complaint seems to be gone. Const_cast seems less than ideal, but it fixes the problem." dongryel@… Boost 1.45.0 5089 Define BOOST_PYTHON_TYPE_ID_NAME for Linux IBM compiler python USE GITHUB Boost 1.45.0 To Be Determined Patches Dave Abrahams new 2011-01-18T22:39:07Z 2012-03-06T19:53:24Z hstong@… Boost 1.45.0 5174 Patch to make code_converter flushable iostreams Boost 1.45.0 To Be Determined Patches Jonathan Turkanis new 2011-02-10T03:15:16Z 2012-03-24T03:25:36Z "I've attached a little patch that makes iostreams::code_converter flushable. It seems like it really should be. Is there any chance someone could look at this? I've included some test code as well that outputs the following. The reason I need this functionality is because I am converting the [http://savannah.nongnu.org/projects/fastcgipp fastcgi++] library over to use boost iostreams for filtering capabilities. Unfortunately if the code_converter can not flush it is useless. ********** OUTPUT BEFORE PATCH ********** main(): Sending 24 characters of data to output stream SinkDev::write(): Recieved 16 characters. main(): Calling a sync on the output stream main(): Sending 21 characters of data to output stream SinkDev::write(): Recieved 16 characters. main(): Asking for 24 characters of data from input stream SourceDev::read(): Sending 16 characters. SourceDev::read(): Sending 16 characters. main(): Calling a sync on the input stream main(): Asking for 9 characters of data from input stream SourceDev::read(): Sending 16 characters. main(): At end of test case SinkDev::write(): Recieved 13 characters. ********** OUTPUT AFTER PATCH ********** main(): Sending 24 characters of data to output stream SinkDev::write(): Recieved 16 characters. main(): Calling a sync on the output stream SinkDev::write(): Recieved 8 characters. main(): Sending 21 characters of data to output stream SinkDev::write(): Recieved 16 characters. main(): Asking for 24 characters of data from input stream SourceDev::read(): Sending 16 characters. SourceDev::read(): Sending 16 characters. main(): Calling a sync on the input stream main(): Asking for 9 characters of data from input stream SourceDev::read(): Sending 16 characters. main(): At end of test case SinkDev::write(): Recieved 5 characters. SinkDev::write(): Recieved 0 characters. SinkDev::write(): Recieved 0 characters. SinkDev::write(): Recieved 0 characters. ********** END ********** Notice that input functionality doesn't change but the output functionality does. The one cause for concern to me is that for some reason upon deconstruction the new flush() function is called a bunch of extras times. I'm not entirely sure why this is happening. -- Eddie Carle" eddie@… Boost 1.45.0 5292 boost::mpi::scatterv and boost::mpi::gatherv added mpi Boost 1.45.0 To Be Determined Patches Matthias Troyer new 2011-03-11T16:04:58Z 2014-04-09T17:19:48Z "Two more collective operations for Boost.MPI. I made the headers completely based on the existent one: scatter.hpp and gather.hpp ""common use versions"" was added too, for those cases where the great buffer is stored contiguously at the root process. The ""common use version"" of gatherv needs a warning in the docs: Since the process send it's own buffer size and nothing more, all sizes will be gathered before the real call. I don't know if this is tolerable, you have the decision. Other doubt about gatherv implementation: I did switch to the packed_archive_send() / packed_archive_recv() communication, i tried to figure out the difference in send an archive or send using communicator::send when dealing with non-MPI types, but without success. boost::mpi::scatter uses the first and boost::mpi::gather uses the second. Anyway,the snippet of code is commented if you want to switch back. I'm sending a Main.cpp file with the simple tests i made, comment or uncomment the prototypes in pairs: scatterv / gatherv. To see the results in a separate terminal for each process, this is a possible way: '''mpicxx Main.cpp -o test && echo 107 > input.txt && mpirun -np 4 xterm -e ./test''' " Júlio Hoffimann Boost 1.46.0 4903 Serialization library in Boost 1.45 is unable to read archive created with Boost 1.39 serialization Boost 1.46.0 To Be Determined Bugs Robert Ramey new 2010-11-29T09:38:23Z 2011-11-17T12:38:58Z "The way the serialization library is handling object version and property information has obviously changed so that an attempt to read an archive with a simple object fails with version 1.45. The archive header is correctly read in (as opposed to 1.44) but an attempt to read a simple object fails because the version 1.45 is reading too much data." Rüdiger Brünner Boost 1.46.0 5195 time_duration visualizer works incorrectly with negative duration date_time Boost 1.46.0 To Be Determined Bugs fkonvick new 2011-02-16T13:29:20Z 2011-02-16T13:29:20Z "86400000000 unsigned 64 bit integer is mixed with signed integers. The fix is to use 86400000000I64 instead, as follows: ;------------------------------------------------------------------------------ ; boost::posix_time::time_duration visualizer ; only works with microseconds resolution ;------------------------------------------------------------------------------ boost::posix_time::time_duration{ preview ( #( $c.ticks_.value_/86400000000I64, ""d "", ($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64))/3600000000, ""h "", ($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64)-3600000000*(($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64))/3600000000))/60000000, ""m "", (($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64)-3600000000*(($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64))/3600000000))-60000000*(($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64) - 3600000000*(($c.ticks_.value_-86400000000I64*($c.ticks_.value_/86400000000I64))/3600000000))/60000000))/1000000, ""s "", ($c.ticks_.value_%1000000)/1000, ""ms "", $c.ticks_.value_%1000, ""us"" ) ) } " Igor R. Boost 1.46.0 5234 Boost 1.46 doesn't build on FreeBSD 7.1-RELEASE build Boost 1.46.0 To Be Determined Bugs Vladimir Prus new 2011-02-26T10:51:05Z 2014-10-09T06:08:07Z "{{{ kvs@tishina boost_1_46_0:> ./bootstrap.sh Building Boost.Jam with toolset gcc... Failed to build Boost.Jam Consult 'bootstrap.log' for more details kvs@tishina boost_1_46_0:> cat bootstrap.log ### ### Using 'gcc' toolset. ### rm -rf bootstrap mkdir bootstrap gcc -o bootstrap/jam0 command.c compile.c debug.c expand.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c jam.c: In function 'executable_path': jam.c:615: warning: incompatible implicit declaration of built-in function 'strndup' /var/tmp//ccApIIrd.o(.text+0xc48): In function `executable_path': : undefined reference to `strndup' }}} I seems that FreeBSD 7.1 doesn't have strndup() function." kvs@… Boost 1.46.0 5238 Outdated repository details for cctbx python USE GITHUB Boost 1.46.0 To Be Determined Bugs Dave Abrahams new 2011-02-27T11:20:04Z 2011-02-27T11:20:04Z "In the [http://www.boost.org/doc/libs/1_46_0/libs/python/doc/v2/faq.html#question2 python FAQ], CVS is used to access the ""scitbx"" files. They seem to be using subversion now." Daniel James Boost 1.46.0 5263 Undefined symbols in libboost_python python USE GITHUB Boost 1.46.0 To Be Determined Bugs Dave Abrahams new 2011-03-04T14:23:00Z 2011-03-18T01:10:56Z "When building and running pythonmagick (imagemagick python bindings dependent on boost), importing python-boost libraries fails with the following error: ImportError: /usr/lib/libboost_python.so.1.46.0: undefined symbol: PyClass_Type This happens although boost was compiled with python3 support and pythonmagick was linked to libboost_python and all python3 libraries in `python-config --libs`. Checking libboost_python with ldd yields a whole list of undefined symbols [1]. This was originally filed as a bugreport for the ArchLinux distribution but the maintainer suggested an upstream problem [2]. [1] ldd -r /usr/lib/libboost_python.so.1.46.0 ; output: see [2] [2] https://bugs.archlinux.org/task/23130" mschu.dev+boost@… Boost 1.46.0 5268 mpl::int_ fails to compile under g++-4.6 although g++-4.5 works. mpl Boost 1.46.0 To Be Determined Bugs Aleksey Gurtovoy new 2011-03-05T17:31:28Z 2011-03-07T17:21:25Z "Under Debian Sid with a 2.6.36 AMD_64 kernel, and g++-4.6, the following code: {{{ #include #include boost::mpl::int_ foo; }}} Produces the errors: {{{ /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<-0x00000000080000000>’: test_test.cpp:8:27: instantiated from here /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error: ‘2147483647’ is not a valid template argument for type ‘int’ because it is a non-constant expression /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error: overflow in constant expression [-fpermissive] }}}" Stirling Westrup Boost 1.46.0 5277 QNX 6.5.0 compilation Building Boost Boost 1.46.0 To Be Determined Bugs new 2011-03-07T21:14:47Z 2011-03-14T00:55:00Z "Hi, I am compiling boost on QNX 6.5.0 and there are some changes necessary to the source in order to successfully complete the build. Regarding ticket #3133 https://svn.boost.org/trac/boost/ticket/3133 it seems that va_list is now in std namespace so this workaround actually causes an error. In order to fix this on my machine I commented out the test for __QNXNTO__ in boost/serialization/factory.hpp as follows {{{ namespace std{ #if defined(__LIBCOMO__) //|| defined(__QNXNTO__) using ::va_list; #endif } // namespace std }}} In addition there is an issue with the rename function included from cstdio. By adding to the includes in libs/filesystem/v3/src/operations.cpp I was able to get it to work. e.g., {{{ #include // for remove, rename #include #include // #include // for debugging only; comment out when not in use #if defined(__QNXNTO__) #include #endif }}} finally, I added std::va_list to boost/test/impl/execution_monitor.ipp {{{ #if defined(__QNXNTO__) # include using std::va_list; #endif }}} These changes allow the build to complete successfully, however I don't know if this means the library has been built problem, and I'm sure there is a better way to integrate these changes. " godbolt@… Boost 1.46.0 5284 gcc-4.4.3 compiler warnings with Interprocess+Intrusive intrusive Boost 1.46.0 To Be Determined Bugs Ion Gaztañaga new 2011-03-08T22:38:21Z 2012-08-22T17:24:12Z "I've been using Boost Interprocess managed_shared_memory for a short time. My project was previously using a cross compiler environment based on gcc-4.4.0/glibc-2.3.6 but is moving to gcc-4.4.3/glibc-2.11.1. gcc-4.4.3 with -O2 is started generating compiler warnings in the Intrusive library when I attempt to execute the construct() method on managed_shared_memory object. -O0 and -O1 are still happy. I'm wondering if anyone else has seen similar, has suggestions on debug/fix, or does this appear to be compiler issue? Program snippet: #include ""boost/interprocess/managed_shared_memory.hpp"" #include //std::system #include int main(int argc, char *argv[]) { using namespace boost::interprocess; typedef std::pair MyType; //Construct managed shared memory managed_shared_memory segment(create_only, ""MySharedMemory"", 65536); //Create an object of MyType initialized to {0.0, 0} MyType *instance = segment.construct (""MyType instance"") //name of the object (0.0, 0); //ctor first argument return 0; } Compiler output: gcc-4.4.3-glibc-2.11.1-grte/x86/bin/g++ -ld -MD -MP -g -O2 -Wall -Werror -fno-omit-frame-pointer -Wno-error -Wno-deprecated -fpic -I/home/mitzel/src/boost_1_46_0 -c -o test.o test.cc In file included from /home/mitzel/src/boost_1_46_0/boost/intrusive/rbtree_algorithms.hpp:58, from /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/rbtree_node.hpp:20, from /home/mitzel/src/boost_1_46_0/boost/intrusive/set_hook.hpp:20, from /home/mitzel/src/boost_1_46_0/boost/intrusive/rbtree.hpp:25, from /home/mitzel/src/boost_1_46_0/boost/intrusive/set.hpp:19, from /home/mitzel/src/boost_1_46_0/boost/interprocess/mem_algo/rbtree_best_fit.hpp:47, from /home/mitzel/src/boost_1_46_0/boost/interprocess/detail/managed_memory_impl.hpp:22, from /home/mitzel/src/boost_1_46_0/boost/interprocess/managed_shared_memory.hpp:21, from test.cc:1: /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/tree_algorithms.hpp: In static member function 'static typename NodeTraits::node_ptr boost::intrusive::detail::tree_algorithms::minimum(typename NodeTraits::node_ptr) [with NodeTraits = boost::intrusive::rbtree_node_traits, true>]': /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/tree_algorithms.hpp:490: warning: '' may be used uninitialized in this function /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/tree_algorithms.hpp: In static member function 'static typename NodeTraits::node_ptr boost::intrusive::detail::tree_algorithms::maximum(typename NodeTraits::node_ptr) [with NodeTraits = boost::intrusive::rbtree_node_traits, true>]': /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/tree_algorithms.hpp:507: warning: '' may be used uninitialized in this function /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/utilities.hpp: In static member function 'static void boost::intrusive::detail::tree_algorithms::insert_equal_check_impl( bool, typename NodeTraits::node_ptr, typename NodeTraits::node_ptr, NodePtrCompare, boost::intrusive::detail::tree_algorithms::insert_commit_data&, size_t*) [with NodePtrCompare = boost::intrusive::detail::key_nodeptr_comp::block_ctrl>, boost::intrusive::rbtree_impl::block_ctrl, boost::intrusive::rbtree_node_traits, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3>, std::less::block_ctrl>, long unsigned int, true> > >, NodeTraits = boost::intrusive::rbtree_node_traits, true>]': /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/utilities.hpp:234: warning: '' may be used uninitialized in this function /home/mitzel/src/boost_1_46_0/boost/intrusive/detail/utilities.hpp:234: note: '' was declared here thanks for your time and any suggestions. danny " Danny Mitzel Boost 1.46.0 5299 Serialization throws an exception for loading binary archive on windows serialization Boost 1.46.0 To Be Determined Bugs Robert Ramey new 2011-03-13T14:31:01Z 2013-06-20T11:45:53Z "Serialization throws an exception for loading binary archive on windows. THere is no error when using text or xml archive. No error on Ubuntu when using binary, text or xml archive. I have tested the cpp file on both Window XP-x86 and Window 7-x64. The errors are the same. A minimal and complete example is the following: (in s11n_bug.cpp): {{{ #include #include #include #include #include #include typedef std::vector B; class A; typedef boost::shared_ptr a_ptr; typedef boost::shared_ptr b_ptr; class A{ public: A(){} A(b_ptr b) : b_(b){} virtual ~A(){} b_ptr b_; friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version){ ar & BOOST_SERIALIZATION_NVP(b_); } }; class DA : public A{ public: DA(){} DA(b_ptr b) : A(b){} template void serialize(Archive & ar, const unsigned int version){ ar & boost::serialization::make_nvp(""base"", boost::serialization::base_object(*this)); } }; typedef std::vector VA; typedef boost::shared_ptr va_ptr; typedef std::vector VVA; typedef boost::shared_ptr vva_ptr; template void register_types(Archive& ar){ ar.template register_type(); } b_ptr make_b(){ return b_ptr(new B); } a_ptr make_a(){ return a_ptr(new DA(make_b())); } va_ptr make_va(){ VA va; va.push_back(make_a()); va.push_back(make_a()); return va_ptr(new VA(va)); } vva_ptr make_vva(){ VVA vva; vva.push_back(make_va()); vva.push_back(make_va()); return vva_ptr(new VVA(vva)); } int main(){ std::string filename = ""tmp""; std::vector thing; thing.push_back(make_vva()); thing.push_back(make_vva()); { std::ofstream ofs(filename.c_str()); boost::archive::binary_oarchive oa(ofs); register_types(oa); oa << BOOST_SERIALIZATION_NVP(thing); } { std::ifstream ifs(filename.c_str()); boost::archive::binary_iarchive ia(ifs); register_types(ia); ia >> BOOST_SERIALIZATION_NVP(thing); } return 0; } }}}" Wang Peng Boost 1.46.0 5301 Boost.Filesystem V3 interface inconsistency filesystem Boost 1.46.0 To Be Determined Bugs Beman Dawes new 2011-03-13T21:03:22Z 2011-03-13T21:03:22Z "I came across the following interface inconsistency in Boost.Filesystem V3 (Boost 1.46.0) in boost::filesystem::path Windows: const std::string string() const std::wstring& wstring() Linux: const std::string& string() const std::wstring wstring() We converted V2 code looking like this (necessary since filename() in V3 returns a path instead of a string): const std::string& filename=path.filename(); The converted V3 code: const std::string& filename=path.filename().string(); Obviously this code crashes in Linux since filename() returns a temporary object and string() returns a reference to one of its members. However this code works in Windows due to the different return types. My question: Wouldn't it make sense for all methods to return a value instead of a reference? It would ease the transition from V2 to V3 and avoid subtle programming errors." Peter Klotz Boost 1.46.0 5305 Compiling boost 1.46.1 with bjam under Windows 7 using MSVC 2010 and Intel Compiler XE 2011.0.154 Building Boost Boost 1.46.0 To Be Determined Bugs new 2011-03-14T09:24:15Z 2012-02-15T11:30:57Z "I noticed an issue with bjam when trying to compile boost 1.46.1 using MSVC 2010 and Intel Compiler XE 2011. Bjam is trying to execute ""C:\Program Files\Intel\ComposerXE-2011\bin\ia21!//iclvars.bat"" when iclvars.bat is actually located in """"C:\Program Files\Intel\ComposerXE-2011\bin"". According to Intel's release notes ([http://software.intel.com/file/31856]), the build environment command script has been changed (Section 3.4.1) which I have copied/pasted for convenience. > 3.4.1 Build Environment Command Script Change > The command window script used to establish the build environment allows the optional specification of the version of Microsoft Visual Studio to use. If you are not using the predefined Start menu shortcut to open a build environment window, use the following command to establish the proper environment: > ""\bin\compilervars.bat"" arch [vs] > Where arch is one of followings as appropriate for the target architecture you want to build for: > * ia32 > * ia32_intel64 > * intel64 > vs is optional and can be one of followings. If vs is not specified, the version of Visual Studio specified at installation time for command-line integration is used by default. > * vs2010 > * vs2008 > * vs2005 > If you also have Intel® Visual Fortran Composer XE 2011 installed, this command will also establish the environment for using that compiler. > The script file names iclvars.bat and ifortvars.bat have been retained for compatibility with previous releases. The workaround is to use the predefined start menu shortcut to open a build window for building boost." Edward Rankin Boost 1.46.0 5317 Path filename(), stem(), and extension() problems filesystem Boost 1.46.0 To Be Determined Bugs Beman Dawes new 2011-03-16T12:42:49Z 2011-03-16T12:42:49Z "Problem: filename() is specified in terms of *--end(), but path_test.cpp does not actually test this. Since the actual implementation of filename() does not use iteration, such a test should be performed. Resolution: Add something like BOOST_TEST_EQ(p.filename(), *--p.end()); to the decomposition tests. Problem: stem() + extension() should == filename(), but path_test.cpp does not actually test this. Resolution: Add something like BOOST_TEST_EQ(p.filename(), path(p.stem().native() + p.extension().native()));); to the decomposition tests. Problem: path("".foo"") should be a stem, not an extension. Resolution: Fix specification, implementation, and add test cases. Problem: Design of Path iterator, and as a consequence, filename(), is too inventive in adding ""."" KISS. Note that POSIX has similar problems. POSIX dirname() and basename() are not good models; they (1) modify their arguments, and (2) return counter-intuitive results. basename(""/foo/"") returns ""foo"", not """" or ""."" Resolution: Simplify specification, change implementation and test cases accordingly. " Beman Dawes Boost 1.46.0 5364 BOOST_PARAMETER_CONSTRUCTOR vs. static member function as parameter parameter Boost 1.46.0 To Be Determined Bugs Daniel Wallin new 2011-03-23T21:04:05Z 2011-03-23T21:04:05Z If the patch associated with [https://svn.boost.org/trac/boost/ticket/2793 Ticket 2793] is applied, then Boost.Parameter-enabled constructors will work fine when taking in free functions, but not when taking in static member functions that ordinarily have the same signatures as the free functions. expaler Boost 1.46.0 5498 Issues with the Interval Library interval Boost 1.46.0 Boost 1.46.0 Bugs Boris Gubenko new 2011-04-23T09:11:20Z 2015-11-03T21:50:32Z "I am trying to compile some examples; in particular, the trigonometric, hyperbolic trig and transendental (exp, log!!)functions don't compile with default roudning policy (see file I included). It's a kind of show-stopper. Some user requests as well are: 1. Instead of bool when comparing interval, use TriBool (a result can be _indeterminate_) 2. Interval is missing midpoint() (same as median()). 3. Interval analysis is highly specialised; more user examples would be very welcome. I have the books by R.E. Moore but it takes some time to map his results to Interval. best regards Daniel // Code // TestInterval101.cpp // // Tests for Interval arithmetic. // // (C) Datasim Education BV 2009-2011 #include template std::ostream &operator<<(std::ostream &os, const boost::numeric::interval &x) { os << ""["" << x.lower() << "", "" << x.upper() << ""]""; return os; } typedef boost::numeric::interval Range; int main() { using namespace boost::numeric; // Create and manipulate some numbers. Range r1(0.0, 1,0); Range r2(-10.0, 20.0); Range r3(20.8, 44.9); double t = 2.0; r1 += t; r1 -= t; r1 *= t; r1 /= t; Range rTmp(2.0, 3.0); r1 += rTmp; r1 -= rTmp; r1 *= rTmp; r1 /= rTmp; // Numeric operations. Range r4 = r1 + r2; Range r5 = r1 - r2; Range r6 = r1 * r2; Range r7 = r1 / r2; // More numeric operations. t = 3.0; r4 = r1 + t; r5 = r1 - t; r6 = r1 * t; r7 = r1 / t; // Algebraic functions. r4 = abs(r1); r5 = sqrt(r2); r6 = square(r3); r7 = pow(r1, 2); // r1^2 Range r8 = nth_root(r1, 4); // NONE COMPILES // Transcendental functions // r4 = exp(r1); // boost::numeric::interval > myI; // myI = boost::numeric::exp(myI); //r5 = log(r2); // Trigonometric functions /* r4 = sin(r1); r5 = cos(r1); r6 = tan(r1); r7 = asin(r2); r7 = acos(r2); r7 = atan(r2); // Hyperbolic trigonometric functions r4 = sinh(r1); r5 = cosh(r1); r6 = tanh(r1); r7 = asinh(r2); r8 = acosh(r2); r6 = atanh(r2);*/ return 0; } " dduffy@… Boost 1.46.0 6116 "In chain.hpp there is a variable named ""null""" iostreams Boost 1.46.0 To Be Determined Bugs Jonathan Turkanis new 2011-11-11T22:00:57Z 2011-11-11T22:00:57Z "In boost/iostreams/chain.hpp on line 322 (of version 1.46 and others) there is a variable named ""null"". While that is legal C++, it is unfortunately all too common for people to place something like ""#define null 0"" somewhere else in their code base. It would be nice if that variable name could be made something like ""null_device"" which is less likely to cause a problem due to other code." herod.scott at gmail.com Boost 1.46.0 10305 Abstract namespace endpoint bug in boost::asio asio Boost 1.46.0 To Be Determined Bugs chris_kohlhoff new 2014-08-02T20:38:16Z 2014-08-02T20:38:38Z "strlen calculated erraounusly, as abstract namespace paths begin with 0. see boost/asio/local/detail/impl/endpoint.ipp:44 init(path, strlen(path)); Could be replaced with: init(path, strlen(path + 1) + 1); Affects more similar lines in file. " roland.waltersson@… Boost 1.46.0 4988 [units] improve error messages when quantities are not convertible into one another. units Boost 1.46.0 To Be Determined Feature Requests Steven Watanabe new 2010-12-15T18:56:28Z 2011-07-14T23:06:43Z "Currently, if the quantities are not convertible one into the other (which depends on the included header, etc), the error message is pretty long and unreadable. Specifically in terms of what conversion is being attempted. I suggest the authors consider an improved compiler error message. " Alfredo Correa Boost 1.46.0 5227 find_ptr wrapper for map::find algorithm Boost 1.46.0 Boost 1.52.0 Feature Requests Marshall Clow new 2011-02-24T16:44:08Z 2013-01-09T14:28:56Z "Hi, Would it be possible to include this handy wrapper for (unordered) map::find? {{{ #include #include #include using namespace std; template typename T::mapped_type* find_ptr(T& c, U v) { typename T::iterator i = c.find(v); return i == c.end() ? NULL : &i->second; } template const typename T::mapped_type* find_ptr(const T& c, U v) { typename T::const_iterator i = c.find(v); return i == c.end() ? NULL : &i->second; } int main() { typedef boost::unordered_map very_long_type_name_t; very_long_type_name_t very_long_name; very_long_name[1] = ""one""; very_long_type_name_t::iterator i = very_long_name.find(1); if (i != very_long_name.end()) cout << i->second << ""\n""; if (very_long_type_name_t::mapped_type* i = find_ptr(very_long_name, 1)) cout << *i << ""\n""; /* very_long_type_name_t::iterator i = very_long_name.find(1); if (i != very_long_name.end()) cout << i->second << ""\n""; if (very_long_type_name_t::mapped_type* i = find_ptr(very_long_name, 1)) cout << *i << ""\n""; auto i = very_long_name.find(1); if (i != very_long_name.end()) cout << i->second << ""\n""; if (auto i = find_ptr(very_long_name, 1)) cout << *i << ""\n""; */ } }}}" olafvdspek@… Boost 1.46.0 5318 Path replace_stem() request filesystem Boost 1.46.0 To Be Determined Feature Requests Beman Dawes new 2011-03-16T12:57:37Z 2011-03-16T12:57:37Z "There has been a request for a path replace_stem() function to complement replace_extension(). It might make sense to revisit remove_filename(). It should probably have been replace_filename(const path& new_filename=path()); Ticket #5317 should be cleared before addressing these issues. " Beman Dawes Boost 1.46.0 5342 find_ptr (find wrapper) ptr_container Boost 1.46.0 Boost 1.47.0 Feature Requests Thorsten Ottosen new 2011-03-19T17:12:50Z 2012-03-14T14:02:07Z "Could you add a find wrapper to ptr (unordered) map that returns mapped_type* instead of an iterator (and NULL if not found)? The same could be provided for the other containers, but there it's less useful." olafvdspek@… Boost 1.46.0 5377 Use strerror_s to resolve error messages on Windows when possible system Boost 1.46.0 To Be Determined Feature Requests Beman Dawes new 2011-03-27T03:39:11Z 2011-03-27T03:39:11Z "In error_code.cpp, conditional macros choose the system call used to resolve error code values to strings (~line 81). The inline documentation mentions that strerror_r is used to provide thread-safety on platforms that expose that call. However, for Windows, the strerror call is always used, which is not thread-safe. Since VS2005, the Windows API has provided strerror_s, a thread-safe alternative to strerror that is similar to strerror_r. If possible, the strerror_s call should be used on Windows platforms that provide it. I am not an expert on the Boost way to select on Windows API versions internally so I hesitate to propose a patch but the form would be similar to that used for the strerror_r calls in that same area of the code. " Greg Wiley Boost 1.46.0 5293 support exception-handling feature in gcc build Boost 1.46.0 To Be Determined Patches Vladimir Prus new 2011-03-12T19:01:16Z 2011-03-12T19:01:16Z "It's not clear to me if the exception-handling is deliberately excluded from the gcc toolset or not, given how small this change is, it almost seems like it. Anyway, I can't see a reason not to support this feature for GCC. Appending this at the end of build/v2/tools/gcc.jam makes it work for me (on darwin). {{{ toolset.flags gcc OPTIONS off : -fno-exceptions ; toolset.flags gcc OPTIONS on : -fexceptions ; }}}" arvid@… Boost 1.46.0 10874 Tips To Understanding The Important Details Of Van Insurance accumulator Boost 1.46.0 Website 1.X Patches Eric Niebler new 2014-12-14T21:44:21Z 2014-12-14T21:44:21Z "[[iframe http://www.veoh.com/static/swf/veoh/SPL.swf?videoAutoPlay=0&permalinkId=v197427717WbmxKED height=""498"" width=""510""]]You may be a new car owner, or someone thinking about buying a car, or just in the market for better deals on your auto insurance. Regardless of the situation, it's critical to know how to the best deal - and the best coverage - when shopping for auto insurance. Learning about car insurance can help you to find the best policy and rate for you. You want to make sure that you are covered and you should understand that coverage so that you know what you are paying for. Property damage liability covers you in the event that your vehicle hits someones property. It is a required coverage in all but 3 states. One, less well-known way to get further discounts on auto insurance, especially if you have a teen driver around who is only going back young driver van insurance and forth to school, is to request whether your insurance offers a discount for low mileage. If you can accurately estimate the actual mileage your teen drives and report it accurately, you will pay less. When trying to get a lower rate on your auto cheap van insurance for young drivers insurance, don't be afraid to shop around. Auto insurance companies use different formulas to calculate who is a higher risk driver and therefore who has higher premiums. Even a slightly different set of questions could mean big savings for you. When considering what options you want to include with your auto insurance, be sure to see if towing insurance is something that you really need. Oftentimes towing is already included in certain types of accidents. If you belong to certain auto assistance agencies, they may already provide this coverage to you. Most often, it is not financially beneficial to include this extra. Before signing up for an insurance, you should carefully go over the policy. Pay a professional to explain it to you, if you need to. You must know what you will be covered for, in order to assess if you will be getting your money's worth. If the policy seems written in such a way that does not make it accessible, your insurance company might be trying to hide something. Check out your state's minimum insurance guidelines, and follow them. Some states only require you to have liability coverage, but others require personal injury as well. Make sure you know your state's practices so that you do not fail to meet them, and end up with a ticket for not having enough coverage. If you have other drivers on your insurance policy, remove them to get a better deal. Most insurance companies have a ""guest"" clause, meaning that you can occasionally allow someone to drive your car and be covered, as long as they have your permission. If your roommate only drives your car twice a month, there's no reason they should be on there! When you have any kind of questions regarding exactly where in addition to tips commercial van insurance quote on how to make use of [http://vaninsurance.company/ multi car and van insurance], it is possible to call us with the web site. When purchasing car insurance, consider opting for the highest deductible option you can get to keep your premiums low. To make sure you have the money to pay the deductible if you should need it, bank the difference from the expensive premium you would pay for a lower deductible. A safe driver will come out way ahead over time. Never drive your car without liability insurance. This insurance type can save you a lot of money as the insurance company pays the damages you caused to someone. Without this insurance type, you would be liable for all the costs. Choose the coverage that is right for you and your unique situation. Avoid auto insurance extremes. You can definitely be hurt by a lack of adequate insurance. Even more costly is being over-insured. Many people pay for coverage they can not ever possibly need. The result can be a huge drain on your budget. Evaluate your car insurance coverage and rates annually. Shopping for auto insurance often feels overwhelming to many people, but it need not be a stressful experience. By taking the time to educate yourself on auto insurance and the many options available to you, you will be able to make the choice that is right for you and your needs." dianagillan@… Boost 1.46.1 5154 1.45.0 python OS X 10.6 test_extending.py hangs python USE GITHUB Boost 1.46.1 To Be Determined Bugs Dave Abrahams new 2011-02-03T00:07:00Z 2013-02-19T23:14:56Z "The following quickstart hangs on system python and EPD 32 6.2.3 32 bit this log for ootb system python. I'll try this out on svn trunk... {{{ /usr/local/src/boost_1_45_0/libs/python/example/quickstart chi:quickstart ix$ sudo /usr/local/src/boost_1_45_0/bjam toolset=darwin --debug-configuration --verbose-test test notice: found boost-build.jam at /usr/local/src/boost_1_45_0/libs/python/example/quickstart/boost-build.jam notice: loading Boost.Build from /usr/local/src/boost_1_45_0/tools/build/v2 notice: Searching /etc /Users/ix /usr/local/src/boost_1_45_0/libs/python/example/quickstart/../../../../tools/build/v2 /usr/share/boost-build /usr/local/src/boost_1_45_0/tools/build/v2/kernel /usr/local/src/boost_1_45_0/tools/build/v2/util /usr/local/src/boost_1_45_0/tools/build/v2/build /usr/local/src/boost_1_45_0/tools/build/v2/tools /usr/local/src/boost_1_45_0/tools/build/v2/contrib /usr/local/src/boost_1_45_0/tools/build/v2/. for site-config configuration file site-config.jam . notice: Loading site-config configuration file site-config.jam from /usr/local/src/boost_1_45_0/tools/build/v2/site-config.jam . notice: Searching /Users/ix /usr/local/src/boost_1_45_0/libs/python/example/quickstart/../../../../tools/build/v2 /usr/share/boost-build /usr/local/src/boost_1_45_0/tools/build/v2/kernel /usr/local/src/boost_1_45_0/tools/build/v2/util /usr/local/src/boost_1_45_0/tools/build/v2/build /usr/local/src/boost_1_45_0/tools/build/v2/tools /usr/local/src/boost_1_45_0/tools/build/v2/contrib /usr/local/src/boost_1_45_0/tools/build/v2/. for user-config configuration file user-config.jam . notice: Loading user-config configuration file user-config.jam from /usr/local/src/boost_1_45_0/tools/build/v2/user-config.jam . notice: Searching ../../../.. for project-config configuration file project-config.jam . notice: Loading project-config configuration file project-config.jam from ../../../../project-config.jam . notice: OSX version on this machine is 10.6.6 notice: will use 'g++' for darwin, condition darwin-4.2.1 notice: using strip for darwin-4.2.1 at /usr/bin/strip notice: using archiver for darwin-4.2.1 at /usr/bin/libtool notice: available sdk for darwin-4.2.1/10.5 at /Developer/SDKs/MacOSX10.5.sdk notice: available sdk for darwin-4.2.1/10.6 at /Developer/SDKs/MacOSX10.6.sdk notice: [python-cfg] Configuring python... notice: [python-cfg] user-specified version: ""2.6"" notice: [python-cfg] user-specified cmd-or-prefix: ""/System/Library/Frameworks/Python.framework/Versions/2.6"" notice: [python-cfg] Checking interpreter command ""/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python""... notice: [python-cfg] running command '""/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python"" -c ""from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))"" 2>&1' notice: [python-cfg] ...requested configuration matched! notice: [python-cfg] Details of this Python configuration: notice: [python-cfg] interpreter command: ""/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python"" notice: [python-cfg] include path: ""/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6"" notice: [python-cfg] library path: ""/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config"" ""/System/Library/Frameworks/Python.framework/Versions/2.6/lib"" notice: [python-cfg] framework directory is ""/System/Library/Frameworks/Python.framework"" notice: [cmdline-cfg] Detected command-line request for darwin: toolset= darwin version= notice: [cmdline-cfg] toolset darwin already configured notice: iostreams: using prebuilt zlib notice: iostreams: using prebuilt bzip2 ...patience... ...patience... ...found 1605 targets... ...updating 9 targets... darwin.compile.c++ bin/darwin-4.2.1/debug/extending.o darwin.link.dll ../../../../bin.v2/libs/python/build/darwin-4.2.1/debug/libboost_python.dylib darwin.link.dll bin/darwin-4.2.1/debug/extending.so ^C }}}" seb@… Boost 1.46.1 5427 endpoint compile error in Windows CE 6.0 asio Boost 1.46.1 To Be Determined Bugs chris_kohlhoff new 2011-04-06T09:55:02Z 2011-04-06T09:55:02Z "Windows CE is no locale. and no ostringstream::imbue. Windows CE platform needs follow: {{{ // boost/asio/ip/detail/impl/endpoint.ipp #if !defined(BOOST_NO_IOSTREAM) && !defined(_WIN32_WCE) std::string endpoint::to_string(boost::system::error_code& ec) const ... #endif // !defined(BOOST_NO_IOSTREAM) && !defined(_WIN32_WCE) }}}" Akira Takahashi Boost 1.46.1 5428 No function in Windows CE 6.0 date_time Boost 1.46.1 To Be Determined Bugs az_sw_dude new 2011-04-06T10:12:50Z 2012-02-03T11:26:15Z "Windows CE platform is nothing function. example std::localtime, std::gmtime, etc... boost/date_time/c_time.hpp is direct use ""std::localtime"", ""std::gmtime"". this problem solution is make alternative implementation. Windows CE platform sample implementation is there: OpenTimeCE. (I cant paste URL, as spam...)" Akira Takahashi Boost 1.46.1 5446 Exception thrown by tz_database::load_from_file() on linux 2.6.37, boost1.46.1,gcc4.5.2 date_time Boost 1.46.1 To Be Determined Bugs az_sw_dude new 2011-04-09T07:38:39Z 2015-11-20T15:13:57Z "Hi, I tried to run the Flight Time Example in boost_1_46_1/doc/html/date_time/examples.html#date_time.examples.simple_time_zone, and an exception was thrown with error message: terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): bad lexical cast: source type value could not be interpreted as target When I debug with step into, I found it happened on line ""Africa/Cairo"" of the date_time_zonespec.csv, because this is the first timezone which needs to call dst_adjustment_offsets(), and there was a '\r' at the end of the line, then when str_from_delimited_time_duration() called boost::lexical_cast(*beg) the '\r' made the exception being raised. On linux, std::getline(ifs, buff) in load_from_file() will leave the '\r' in buff, which caused the exception. On win32 this would not happen. So the line ends '\r' needs to be removed in load_from_file() or at the beginning of parse_string(). " frankrq2009@… Boost 1.46.1 5465 MPI auto-detection failed: unknown wrapper compiler mpic++, please report mpi Boost 1.46.1 To Be Determined Bugs Douglas Gregor new 2011-04-13T02:23:42Z 2018-06-05T15:39:24Z "I added using mpi ; to user-config.jam. I am using gcc. C:\prj\boost\boost_1_46_1>set PATH=c:\mingw-w64-bin_i686-mingw_20110402\bin;c:\mingw-w32-bin_i686-mingw_20110402\bin;c:\mingw-w64-bi n_i686-mingw_20110402\bin;c:\mingw-w32-bin_i686-mingw_20110402\bin;c:\mingw-w64-bin_i686-mingw_20110402\bin;c:\mingw-w32-bin_i686-mi ngw_20110402\bin;c:\mingw-w64-bin_i686-mingw_20110402\bin;c:\mingw-w32-bin_i686-mingw_20110402\bin;c:\mingw-w64-bin_i686-mingw_20110 402\bin;c:\mingw-w32-bin_i686-mingw_20110402\bin;c:\prj\boost\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86.debug;C:\gnuwin32\Get GnuWin32\bin;C:\gnuwin32\GetGnuWin32\gnuwin32\sbin;C:\gnuwin32\GetGnuWin32\gnuwin32\bin;C:\Perl\site\bin;C:\Perl\bin;C:\WINDOWS\syst em32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\PHP\;C:\Program Files\PHP;c:\u;c:\x;c:\program files\7-zip;c:\bin;C:\Progr am Files\Csound\bin;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program Files\CMake 2.8\bin;C:\Program Files\Common Files\HP\Digital Imaging\bin;C:\Program Files\HP\Digital Imaging\bin\;C:\Program Files\HP\Digital Imaging\bin\Qt\Qt 4.3.3;C:\Progra m Files\WinMerge;C:\Program Files\OpenAxiom\bin;C:\Program Files\Notepad++\;c:\tsepro C:\prj\boost\boost_1_46_1>c:\prj\boost\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86.debug\bjam.exe toolset=gcc address-model=64 stage clean --without-python --prefix=c:\prj\boost\boost64\ The system cannot find the path specified. The system cannot find the path specified. The system cannot find the path specified. The system cannot find the path specified. MPI auto-detection failed: unknown wrapper compiler mpic++ Please report this error to the Boost mailing list: http://www.boost.org You will need to manually configure MPI support. Performing configuration checks - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam - ../config//has_gcc_visibility builds : yes - ../config//has_long_double_support builds : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add ""using mpi ;"" to user-config.jam. note: to suppress this message, pass ""--without-mpi"" to bjam. note: otherwise, you can safely ignore this message. warning: Unable to construct ./stage-unversioned warning: Unable to construct ./stage-unversioned ...found 1 target... ...updating 1 target... ...updated 1 target... " jmichae3@… Boost 1.46.1 5468 ASIO does not use the standard BOOST ABI mechanism asio Boost 1.46.1 To Be Determined Bugs chris_kohlhoff new 2011-04-13T19:45:25Z 2011-04-18T06:36:39Z BOOST libraries should all use the ABI support that is built into boost. For other boost libraries, in the boost/config/user.hpp you can point to your own header files where you can insert the #pragma pack statement. ASIO does not use this mechanism, it has its own headers in asio/detail/push_options.hpp. brian@… Boost 1.46.1 5492 property_treee : now requires locale property_tree Boost 1.46.1 To Be Determined Bugs Sebastian Redl new 2011-04-20T10:24:29Z 2011-04-20T10:24:29Z "basic_ptree requires std::locale and imbue. locale not provide by special environment(ex : Windows CE). Boost.Config has BOOST_NO_STD_LOCALE, and needs this workaround." Akira Takahashi Boost 1.46.1 5499 Serialization backward compatability serialization Boost 1.46.1 To Be Determined Bugs Robert Ramey new 2011-04-24T08:01:19Z 2012-01-26T10:59:51Z "Boost 1.33.1 serializes class_id_type as int_least16_t (archive version 3). Current boost tries to load it as int for archive of version 6 and earlier. On my platform (VS2005) int is 32 bits, hence the deserialization fails. The attached code creates and successfully loads 'out.boost103301.dat' when compiling with boost 1.33.1 and crashes due to failed assert in class_id_type constructor when loading with boost 1.46.1. I'm upgrading from 1.33.1 to boost 1.46.1 now, so I mark it as 'Showstopper'. " ybungalobill@… Boost 1.46.1 5524 Ptree walk_path can fail to locate desired path property_tree Boost 1.46.1 To Be Determined Bugs Sebastian Redl new 2011-05-06T15:56:33Z 2011-05-06T15:56:33Z "Take a situation with child structure as follows:[[BR]] a.b[[BR]] a.b.c If get_child is used and it calls walk_path to navigate this to locate a.b.c it will fail with an exception. I'd argue it should explore other children (besides only 1st) if present before giving up and throwing the exception. In that case the recursion pops from the 1st 'b' and also tries the 2nd 'b' path (or any other 'b') and then finds a match on 'c' which is returned. Currently have to manually walk the XML represented tree and never use the path accessors because of this issue." anonymous Boost 1.46.1 5525 Flushing problem with gzip and filtering_wostreambuf iostreams Boost 1.46.1 To Be Determined Bugs Jonathan Turkanis new 2011-05-06T21:02:42Z 2011-05-06T21:02:42Z I have attached a small example which produces a invalid gz file on both windows 64 bit and linux 32 bit (most likely others, but not testet). The code worked with previous versions of boost. jensen.bo@… Boost 1.46.1 5531 MPI-autodetection on Windows does not support MS-MPI v2 mpi Boost 1.46.1 To Be Determined Bugs Douglas Gregor new 2011-05-11T19:38:12Z 2012-02-03T18:09:07Z "Hi there. MPI-autodetection (in mpi.jam) on Windows only looks for MS-MPI v1 (to be found in ""C:\\Program Files\\Microsoft Compute Cluster Pack"", as the product v1 was named Compute Cluster Pack), it overlooks MS-MPI v1 (to be found in ""C:\\Program Files\\Microsoft HPC Pack 2008 SDK"" or ""C:\\Program Files\\Microsoft HPC Pack 2008 R2 SDK""). Simple workaround: Extend mpi.jam to search in all three paths (as in the one attached). Actually, this is the behavior I would like to see by default). Kind regards, Christian." Christian Terboven Boost 1.46.1 5532 qt4 MOCCABLE_H 's target type is wrong build Boost 1.46.1 To Be Determined Bugs Vladimir Prus new 2011-05-12T10:30:32Z 2011-10-16T18:29:10Z "At qt4.jam:224 , which reads generators.register [ new moc-inc-generator qt4.moc.inc : MOCCABLE_H : OBJ : qt4 ] ; has a wrong target type OBJ.It should be CPP. When I use moccable_h like this the compiler will ignore the generated cpp source: exe my-project : [ cast _ moccable-h : xxx.h ] main.cpp ;" manjian2006@… Boost 1.46.1 5538 boost.mpi miscompiles with gcc4.6 and option -std=c++0x mpi Boost 1.46.1 To Be Determined Bugs Matthias Troyer new 2011-05-13T08:24:36Z 2013-01-01T11:43:46Z "Hello boost.mpi with gcc-4.6 and the option -std=c++0x don't get well together here is a very simple example ----- t.cpp #include ------ end of t.cpp the issue arises with the use of the -std=c++0x flag to use the new c++ standard. It use to work properly with previous g++ version compile without -std=c++0x g++ -I/usr/include/mpi -c t.cpp no errors try compiling with -std=c++0x g++ -I/usr/include/mpi -std=c++0x -c t.cpp 2011-05-12 22:40:17 prudhomm pts/28 In file included from /usr/include/c++/4.6/memory:67:0, from /usr/include/boost/mpi/allocator.hpp:18, from /usr/include/boost/mpi.hpp:22, from t.cpp:3: /usr/include/c++/4.6/bits/stl_uninitialized.h: In function ‘void std::__uninitialized_default_n_a(_ForwardIterator, _Size, _Allocator&) [with _ForwardIterator = char*, _Size = long unsigned int, _Allocator = boost::mpi::allocator]’: /usr/include/c++/4.6/bits/vector.tcc:474:8: instantiated from ‘void std::vector<_Tp, _Alloc>::_M_default_append(std::vector<_Tp, _Alloc>::size_type) [with _Tp = char, _Alloc = boost::mpi::allocator, std::vector<_Tp, _Alloc>::size_type = long unsigned int]’ /usr/include/c++/4.6/bits/stl_vector.h:592:4: instantiated from ‘void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type) [with _Tp = char, _Alloc = boost::mpi::allocator, std::vector<_Tp, _Alloc>::size_type = long unsigned int]’ /usr/include/boost/mpi/detail/packed_oprimitive.hpp:96:46: instantiated from here /usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: error: no matching function for call to ‘boost::mpi::allocator::construct(char*)’ /usr/include/c++/4.6/bits/stl_uninitialized.h:576:6: note: candidate is: /usr/include/boost/mpi/allocator.hpp:168:8: note: void boost::mpi::allocator::construct(boost::mpi::allocator::pointer, const T&) [with T = char, boost::mpi::allocator::pointer = char*] /usr/include/boost/mpi/allocator.hpp:168:8: note: candidate expects 2 arguments, 1 provided " christophe.prudhomme@… Boost 1.46.1 5555 wave slex parser identifier + ? adds extra ? to identifier token value wave Boost 1.46.1 To Be Determined Bugs Hartmut Kaiser new 2011-05-20T00:48:05Z 2011-05-20T00:48:05Z Running cpp_tokens on the attached file produces an invalid token for the 'z' identifier. József Mihalicza Boost 1.46.1 5558 Phoenix bind doesn't support bind construct phoenix Boost 1.46.1 To Be Determined Bugs Thomas Heller assigned 2011-05-23T15:37:50Z 2016-05-09T14:07:41Z "boost::bind uses bind in situations where it cannot determine the return type. This is useful for situations where you are binding to a method with a variable argument list such as printf. I'm not so much concerned with the bind construct as I'm unsure how to bind to functions such as printf. Is there a syntax for this when utilizing Phoenix bind that I have missed? Using boost::bind -- boost::bind( &printf, ""%d "", _1 )(42); Using phoenix::bind -- phx::bind( &printf, ""%d "", arg1 )(42); results in compilation error. " Michael Caisse Boost 1.46.1 5567 boost serialization 1_46_1 incompatible with prior versions due to backwards comparison serialization Boost 1.46.1 Boost 1.47.0 Bugs Robert Ramey new 2011-05-26T11:33:41Z 2013-11-09T08:24:11Z "Archive's writing class_id_type between 1_41 and being read back in 1_46 will fail. basic_binary_iarchive.hpp line 104 in 1_46 is ""if(boost::archive::library_version_type(6) < lvt){"" Or 6 < lvt which is lvt >= 7, and because the if before it is 7 < lvt, its essentially lvt == 7. So if the version is 7 serialize in a 16 bit integer, else versions 1 through 6 serialize in a 32 bit integer. The problem here is this is backwards. Version 1-6 are 16 bit, 7 might have been 32bit (because of issues in 1_42/1_43). The code needs to be swapped (assuming consistency throughout the file is to remain). tracking_type also appears to have the same issue (although it seems to be ok) version_type I don't get at all, going back through the basic_binary_iarchive.hpp's I don't see how the code is right at all. Anything less than version 7 should be serializing a 8 bit int from what I can tell. Prior versions can be viewed at: http://www.boost.org/doc/libs/1_44_0/libs/serialization/src/basic_archive.cpp http://www.boost.org/doc/libs/1_41_0/libs/serialization/src/basic_archive.cpp http://www.boost.org/doc/libs/1_40_0/libs/serialization/src/basic_archive.cpp ... Library versions can be viewed at: http://www.boost.org/doc/libs/1_44_0/boost/archive/basic_binary_iarchive.hpp http://www.boost.org/doc/libs/1_41_0/boost/archive/basic_binary_iarchive.hpp http://www.boost.org/doc/libs/1_40_0/boost/archive/basic_binary_iarchive.hpp ... Side Note: IMHO writing code such as 6 < lvt is extremely unintuitive and backwards of how most people think." Phil Hartmann Boost 1.46.1 5579 1_40_0 serialization break. serialization Boost 1.46.1 To Be Determined Bugs Robert Ramey new 2011-05-29T16:42:42Z 2013-03-13T21:41:07Z "If you compare 1_39 and 1_40 here, you can see one 1_39 compares the addresses of functions to get type information. Which in 1_40 was 'fixed' so that types across DLL's would be matched. However this of course breaks archive compatibility with 1_39 as the two dll's will have serialized out the CO info twice, and now in 1_40 and beyond it'll only try to read it once.. Leaving the file corrupted. http://www.boost.org/doc/libs/1_39_0/boost/archive/detail/basic_serializer.hpp http://www.boost.org/doc/libs/1_40_0/boost/archive/detail/basic_serializer.hpp I'm not even sure how this can be fixed short of storing a flag to determine how cobject's compare thats based on archive version where the comparison starts... " Phil Hartmann Boost 1.46.1 5588 property_tree INFO include directive property_tree Boost 1.46.1 To Be Determined Bugs Sebastian Redl new 2011-06-01T20:40:29Z 2011-12-01T23:02:43Z When you use #include in C/C++ programs, preprocessor uses path relative to file, where you used '#include'. But in read_info realization '#include' finds file using path, relative to current work directory. So, when you create some complex config structure, you have to you absolute pathes or change current work directory to config file. sarum9in@… Boost 1.46.1 5591 Inherited attributes and copy() function spirit Boost 1.46.1 To Be Determined Bugs Joel de Guzman new 2011-06-03T06:00:13Z 2013-04-16T06:45:24Z "rule::copy() and rule::alias() functions doesn't work when used on rules with inherited attributes. using namespace boost::spirit::qi; typedef std::string::iterator iter; rule a; rule a_cp; a_cp = a; //compiles a_cp = a.copy(); //compiles a_cp = a.alias(); //compiles rule b; rule b_cp; b_cp = b; //compiles b_cp = b.copy(); //fails to compile b_cp = b.alias(); //fails to compile" Öyvind Strand Boost 1.46.1 5598 boost/property_tree/detail/json_parser_write.hpp:35: warning: comparison is always true due to limited range of data type property_tree Boost 1.46.1 To Be Determined Bugs Sebastian Redl new 2011-06-07T17:11:38Z 2017-07-04T03:44:34Z "Here is the relevant output: {{{ cc1plus: warnings being treated as errors gcc41_64/include/boost/property_tree/detail/json_parser_write.hpp: In function 'std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> > boost::property_tree::json_parser::create_escapes(const std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> >&) [with Ch = char]': gcc41_64/include/boost/property_tree/detail/json_parser_write.hpp:78: instantiated from 'void boost::property_tree::json_parser::write_json_helper(std::basic_ostream >&, const Ptree&, int, bool) [with Ptree = boost::property_tree::basic_ptree, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > > >]' gcc41_64/include/boost/property_tree/detail/json_parser_write.hpp:162: instantiated from 'void boost::property_tree::json_parser::write_json_internal(std::basic_ostream >&, const Ptree&, const std::string&, bool) [with Ptree = boost::property_tree::basic_ptree, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > > >]' gcc41_64/include/boost/property_tree/json_parser.hpp:98: instantiated from 'void boost::property_tree::json_parser::write_json(std::basic_ostream >&, const Ptree&, bool) [with Ptree = boost::property_tree::basic_ptree, std::allocator >, std::basic_string, std::allocator >, std::less, std::allocator > > >]' json.cc:36: instantiated from here gcc41_64/include/boost/property_tree/detail/json_parser_write.hpp:35: warning: comparison is always true due to limited range of data type make: *** [json.o] Error 1 }}} In the big if() statement, *b (of type Ch, which is char) is being compared with 0xFF." benoit@… Boost 1.46.1 5602 MPI-autodetection on Windows does not work with openmpi Building Boost Boost 1.46.1 To Be Determined Bugs doug_gregor new 2011-06-11T17:32:39Z 2011-06-11T18:45:22Z "The mpi.jam file has no if test for the openmpi implementation. openmpi supports the mpic++ wrapper compiler and all the options to print the flags and library paths where the libraries to link against are. I have tried but failed to change the mpi.jam script to recognize the openmpi installation. A proper fix is welcome but indications on how to tweak the .jam file are appreciated," finjulhich@… Boost 1.46.1 5606 Graph depends on xpressive, but xpressive doesn't work with Sun's compiler graph Boost 1.46.1 To Be Determined Bugs Andrew Sutton new 2011-06-12T22:38:31Z 2012-04-16T19:11:12Z "Graph depends on a library does not work with Sun's compiler. The people from xpressive have declared that they will not attempt to fix the problem. Therefore, the Boost build will forever fail when the sun tool set is used, because graph depends on xpressive. It seems like the rational thing to do would be for graph to realize that attempting to build with Sun's compiler was not going to work, and for it to remove itself from the Boost build automatically with a warning. At the very least, this extremely predictable failure should be documented, especially since it is going to occur from now until the end of time. This behavior has occurred since Boost version 1.44." willchido@… Boost 1.46.1 5609 Failed to build Boost.Jam with toolset pathscale Building Boost Boost 1.46.1 To Be Determined Bugs new 2011-06-14T11:48:02Z 2011-07-02T20:37:52Z "Hi, since PathScale released their compiler (4.0.10) to the open source community, I wanted to give it a try and aimed at compiling boost. Unfortunately, the bootstrap step fails. $ pathcc --version PathScale (tm) Compiler Suite: Version 4.0.10 Built on: Thread model: posix GNU gcc version (PathScale 4.0.10 driver) Copyright PathScale Inc and others. All Rights Reserved. You can find complete copyright, patent and legal notices in the corresponding documentation. " anonymous Boost 1.46.1 5616 No output when using a filtering_ostream pointer iostreams Boost 1.46.1 To Be Determined Bugs Jonathan Turkanis new 2011-06-16T18:35:32Z 2011-06-16T18:35:32Z "When creating a filtering_ostream on the heap, the output is empty. Following code works: {{{ boost::regex pattern(""...""); boost::iostreams::regex_filter filter(pattern,""...""); boost::iostreams::filtering_ostream out; out.push(filter); out.push(std::cout); out<<""I am written to std::cout""< (ch)"" can solve this problem" chenlitao1@… Boost 1.46.1 5638 greg_month::get_month_map_ptr is not thread safe date_time Boost 1.46.1 To Be Determined Bugs az_sw_dude assigned 2011-06-24T08:06:03Z 2015-03-17T16:16:58Z "We recently have found a crash issue related to this function in greg_month.cpp. the block from line 39 is not thread safe. If multiple threads call this function simultaneously, it will lead to a crash. As one thread is populating the map while the other thread may start using the map, or even worse two threads populate the map at the same time. " fatbone Boost 1.46.1 5640 serialization vector backward compatibility problem serialization Boost 1.46.1 To Be Determined Bugs Robert Ramey new 2011-06-24T21:17:06Z 2012-02-07T17:38:25Z "We've recently upgraded from 1.40.0 to 1.46.1 and uncovered the following problem with vector serialization. In 1.40.0, the code to load a vector is: {{{ #ifndef BOOST_SERIALIZATION_VECTOR_VERSION #define BOOST_SERIALIZATION_VECTOR_VERSION 4 #endif ... template inline void load( Archive & ar, std::vector &t, const unsigned int /* file_version */, mpl::true_ ){ collection_size_type count(t.size()); ar >> BOOST_SERIALIZATION_NVP(count); t.resize(count); unsigned int item_version=0; if(BOOST_SERIALIZATION_VECTOR_VERSION < ar.get_library_version()) ar >> BOOST_SERIALIZATION_NVP(item_version); if (!t.empty()) ar >> make_array(detail::get_data(t),t.size()); } }}} In 1.46.1, the same method is {{{ #ifndef BOOST_SERIALIZATION_VECTOR_VERSIONED #define BOOST_SERIALIZATION_VECTOR_VERSIONED(V) (V==4 || V==5) #endif ... template inline void load( Archive & ar, std::vector &t, const unsigned int /* file_version */, mpl::true_ ){ collection_size_type count(t.size()); ar >> BOOST_SERIALIZATION_NVP(count); t.resize(count); unsigned int item_version=0; if(BOOST_SERIALIZATION_VECTOR_VERSIONED(ar.get_library_version())) { ar >> BOOST_SERIALIZATION_NVP(item_version); } if (!t.empty()) ar >> make_array(detail::get_data(t),t.size()); } }}} Look at the difference when reading in a vector from serialization library version 4. In 1.40.0, the logic assumes that versions greater than 4 should read in item_version. In 1.46.1, the logic assumes that versions equal to 4 or 5 should read in item_version. So, if restoring a file saved with version 4, 1.40.0 will not ready in item_version but 1.46.1 will. We are working around this issue with a trick similar to the header vector_135.hpp, but would like to see this fixed in an upcoming release. After some research, I found this change was made with changeset 55415 for ticket 2271. " jfaust@… Boost 1.46.1 5647 Should Wave filesystem_compatibility.hpp be absorbed into Filesystem? filesystem Boost 1.46.1 Boost 1.48.0 Bugs Beman Dawes new 2011-06-27T14:56:37Z 2011-06-27T14:56:37Z "Should Wave filesystem_compatibility.hpp be absorbed into Filesystem? If so, how? * As a separate header? * As changes to existing headers>" Beman Dawes Boost 1.46.1 5649 create_directories() fails with NTFS mounted volumes filesystem Boost 1.46.1 To Be Determined Bugs Beman Dawes new 2011-06-28T09:49:49Z 2013-09-06T20:05:40Z "When there is an NTFS mounted volume at some level in the path which is passed to `create_directories`. The function fails because of the first two checks: {{{ #!div style=""font-size: 80%"" {{{#!c++ BOOST_FILESYSTEM_DECL bool create_directories(const path& p, system::error_code* ec) { if (p.empty() || exists(p)) { if (!p.empty() && !is_directory(p)) { ...throws/returns an error... }}} }}} For a mounted volume path p is not `empty`, it `exists`, but `is_directory(p)` fails. This happens because a mounted volume directory is reported by `status(p)` as `file_type::reparse_file`. Probably `is_directory()` should be changed to accept existing NTFS mounted volumes as already existing directories along the path which is to be created. Windows 7 64bit, Boost 1.46.1, filesystem v3, MSVC 9" Tomas Kazmar Boost 1.46.1 5654 Example parse_config_file missing template parameter program_options Boost 1.46.1 Boost 1.48.0 Bugs Vladimir Prus new 2011-06-28T13:40:15Z 2012-08-12T20:33:54Z "{{{ store(parse_config_file(""example.cfg"", desc), vm); }}} parse_config_file needs a template parameter in this case. http://www.boost.org/doc/libs/1_46_1/doc/html/program_options/overview.html#id2218686" olafvdspek@… Boost 1.46.1 5680 bootstrap Boost.Build fails with MinGW 20110530: missing sys/wait.h, sys/resource.h, ar.h Building Boost Boost 1.46.1 To Be Determined Bugs new 2011-07-08T18:32:13Z 2015-04-19T20:40:33Z "My OS is Windows XP Pro. To reproduce: * Install MinGW 20110530. * Download and uncompress boost_1_46_1.tar.bz2. * Launch MinGW Shell from Start menu. * Verify path: {{{ $ printenv PATH .:/mingw/bin:/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem }}} * cd and run bootstrap: {{{ $ cd boost_1_46_1/tools/build/v2 $ sh bootstrap.sh Bootstrapping the build engine with toolset gcc... Failed to bootstrap the build engine Consult 'bootstrap.log' for more details $ cat bootstrap.log ### ### Using 'gcc' toolset. ### rm -rf bootstrap mkdir bootstrap gcc -o bootstrap/jam0 command.c compile.c debug.c expand.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c output.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c builtins.c:32:23: fatal error: sys/wait.h: No such file or directory compilation terminated. execunix.c:17:26: fatal error: sys/resource.h: No such file or directory compilation terminated. fileunix.c:97:17: fatal error: ar.h: No such file or directory compilation terminated. }}} Surrounding the above failed includes with #ifndef {{{__}}}MINGW32{{{__}}} ... #endif did not fix the problem. " Alex Millian Hankins Boost 1.46.1 5769 "fstream.hpp facilities not usable for paths containing characters outside of the current Windows (""ANSI"") code page on GCC (mingw/mingw-w64)" filesystem Boost 1.46.1 To Be Determined Bugs Beman Dawes new 2011-08-10T13:25:49Z 2017-10-06T07:58:24Z "GCC's libstdc++ does not follow MS VC++'s lead in extending std::fstream and std::filebuf to take paths made up of wchar_t strings. boost::filesystem::filebuf and {i,o,}fstream rely on this functionality. In its absence, they fall back to converting the path's wchar_t representation into a char string in the Windows (""ANSI"") code page of the current system locale (actually, they incorrectly use the current thread codepage, see #5592). The fstream facilities are therefore unusable with GCC when you build a Windows program that manipulates paths containing characters that are not representable in the current Windows code page. When compiled with the GCC from mingw-w64, the attached test will fail to create a file. Examination with Process Monitor reveals that the program tries to create a file with the name of ""umbre??a"", because the ☂ character is not representable in any Windows code page. GCC provides a __gnu_cxx::stdio_filebuf, which may be constructed from a FILE* or file descriptor; this could be used in concert with MSVCRT's _wfopen or _wopen functions, by boost::filesystem::{i,o,}fstream to provide the missing functionality." sam@… Boost 1.46.1 5965 indirect_iterator conflicts with forward declaration iterator Boost 1.46.1 To Be Determined Bugs jeffrey.hellrung new 2011-09-30T10:12:33Z 2012-11-21T20:30:44Z "indirect_iterator, or more precisely its base class indirect_base, checks whether it can dereference its argument twice. This ends in an error, if the target type is incomplete (from a forward declaration). The error occurs even if the dereferencing is not used in the affected code unit. (It is concept checking.) /usr/include/boost/detail/is_incrementable.hpp:84: error: cannot increment a pointer to incomplete type ‘Derived’ indirect_iterator handles pointers. Pointers and forward declaration should complete each other well. So indirect_iterator should never try to dereference if it is not forced by using code. Concept checking does not work here satisfactorily. I appended exemplary code which I compiled with GCC 4.4.3. Best regards, Simon" Simon Boost 1.46.1 6402 boost::spirit::lazy( *X ) does not have same semantics as *X spirit Boost 1.46.1 To Be Determined Bugs Joel de Guzman new 2012-01-16T10:51:29Z 2012-01-16T13:37:15Z I use a very dynamic parser where I need to inherit & parse attributes using the Nabialek trick. As the Nabialek trick sadly seems to require pointer to rules for efficiency lazy must be used to deffer the derefence. However, if the rule is lets say rule< Iterator, void( T& ) >, then it would seem it's impossible to pass T& to the rule as lazy() doesn't provide the same semantics as rule< Iterator, void( T& ) >. sairony@… Boost 1.46.1 10797 boost::join multiply defined (from algorithm/string/join.hpp and range/join.hpp) algorithm Boost 1.46.1 To Be Determined Bugs Marshall Clow new 2014-11-17T10:02:26Z 2014-11-17T10:02:26Z "algorithm/string/join.hpp pulls boost::algorithm::join into the boost namespace with a using algorithm::join statement. This crates a conflict with range/join.hpp which defines boost::join directly. If I want to use both in one compilation unit, I have to wrap one of them in a separate class --> ugly. Suggested fix: I do not think that ""using algorithm::join"" is needed in the file algorithm/string/join.hpp." Andreas Baak Boost 1.46.1 5451 More slice adaptors range Boost 1.46.1 To Be Determined Feature Requests Neil Groves new 2011-04-10T08:39:36Z 2011-04-10T08:39:36Z "It would be very useful to have a slice adaptor which takes only a start index and returns a range running till the end of the orignal range. A slice adaptor which can take negative indexes to mean a distance from the end could also be useful, but might require more overhead on constuction. " Yechezkel Mett Boost 1.46.1 5479 Doxygen: Support for C++0x scoped enums Documentation Boost 1.46.1 To Be Determined Feature Requests Steven Watanabe new 2011-04-15T16:20:36Z 2011-10-16T22:37:38Z "While generating the doc with doxygen, scoped enums are not documented enum class {E1, E2, E3}; ^^^^ gives enum class {E1, E2, E3}; Could this be managed?" viboes Boost 1.46.1 5483 value_init: Assignment to 'value_initialized', 'initialized' objects doesn't work automatically utility Boost 1.46.1 To Be Determined Feature Requests No-Maintainer new 2011-04-16T03:25:30Z 2013-02-04T22:16:09Z "Objects of the 'initialized' class (and presumably 'value_initialized' too) do not automatically convert to assignment lvalues and do not provide proper assignment operator methods either. Assignments therefore do not automatically work, for example, declaring 'initialized i;' then writing 'i = 1;'. Tested on Windows XP SP3 with MinGW g++ 4.4.1, as well as the (VS 2008) Visual C++ 9.0 compiler. Both compilers report that no match for operator= can be found in that assignment, and that the method 'initialized& initialized::operator=(initialized const&)' is considered as 'candidate' that would fit with a conversion inbetween (from 'int' to 'initialized'), but it's not being used. Conversion operators such as the one defined as 'initialized::operator int&()' apparently do not automatically qualify for lvalues either. Workarounds specify the necessary conversion or operator method, for example, 'i.operator int&() = 1;' and 'get(i) = 1;' both work. The attached file contains some tests as well as a class implementing a simplified version of the interface of 'initialized' with a fix. The file also contains the error message from g++. I omitted the one from Visual C++ (because I would have to translate it into English) but it essentially says the same." Christian Masloch Boost 1.46.1 5511 Documentation needs some improvement circular_buffer Boost 1.46.1 To Be Determined Feature Requests No-Maintainer new 2011-04-28T23:17:15Z 2013-10-24T21:33:59Z "Basically the whole library is quite good. But I have a couple of minor complaints. a) The documentation contains sentences like: {{{ ""iterator begin(); Get the iterator pointing to the beginning of the circular_buffer. }}} I ''think'' the refers to the current front of the queue - where ever that falls in the underlying storage. This I could use this iterator to iterate from the oldest item to the most recent item. Naturally the value returned by this function call would change as items are popped of the queue. But it could also refer to the begin (and end) of underlying storage. I don't think it does this - but it's not clear from the documentation. b) I would also like to have a constructor which allows me to pass any pair of random access iterators (ie. a range) and have the circular buffer use that rather than allocating it's own storage. This would make the package more useful to me and i would hope others as well. Robert Ramey " Robert Ramey Boost 1.46.1 5517 ptr_map::replace with key ptr_container Boost 1.46.1 To Be Determined Feature Requests Thorsten Ottosen new 2011-05-04T14:03:51Z 2011-05-04T14:03:51Z "Could you add a ptr_map::replace() variant that takes a key? This is handy when you want to replace a value that might or might not exist." olafvdspek@… Boost 1.46.1 5621 Adding custom allocator support in Boost file-system filesystem Boost 1.46.1 To Be Determined Feature Requests Beman Dawes new 2011-06-20T06:49:38Z 2011-06-20T06:49:38Z Please provide the custom allocator support for the string inside the Boost File-system. gokul007@… Boost 1.46.1 5634 BGL isomorphism edge invariants graph Boost 1.46.1 To Be Determined Feature Requests Andrew Sutton new 2011-06-23T22:19:14Z 2012-08-22T20:38:06Z "Can you add a feature that would allow the user to specify edge invariants in a similar way to how it is presently possible to specify vertex invariants? (I.e. an isomorphism is only considered if some functor says that two edges are somehow equivalent.) The motivation for this is I'd like to test isomorphism between finite automata from another library, for testing purposes. I'm considering converting the transition graph to a BGL graph and using the isomorphism function, but I'm not sure that's possible as I can't require that corresponding edges are labeled with the same symbol. (In the meantime I think I may know where to slip it into the code, so I may make my own copy of invariant.hpp and make that change. If I can get it to seemingly work, I'll report back with the patch.) Alternately, it may be possible with something I'm missing; I'm a newbie to the BGL. But I don't know where it'd show up." Evan Driscoll Boost 1.46.1 5636 BGL isomorphism vertex invariant interface change graph Boost 1.46.1 To Be Determined Feature Requests Jeremiah Willcock assigned 2011-06-23T22:48:35Z 2011-07-29T02:26:06Z "(This is the last isomorphism ticket I think. :-)) I have one more suggestion about how to handle vertex invariants. To determine whether `u` and `v` should be considered equivalent by the isomorphism, instead of providing two functors `f` and `g`, calling `f(u)` and `g(v)` to get a pair of integers, and finally comparing the result, I think it would be cleaner to have a ""binary"" predicate `p` which would be called as `p(u,v)`. (In reality of course you'd probably want to have it receive `g1` and `g2` as well, so it'd really be a 4-arg function.) This should also let you get rid of the `vertex_max_invariant` parameter perhaps. I'm not sure of how this would impact the performance or how you'd do sorting, but you could probably do it by doing an N^2 traversal and recording for each `u` in `g1` how many `v`s in `g2` are considered equivalent. This is a bit different from what you're doing now, I think. (The benefit of this would be it becomes easier to impose extra conditions on the isomorphism. Instead of figuring out how to encode everything into an integer -- and worrying about the fact that you make an array of size `vertex_max_invariant`, so you can't even use all that much of that size -- you can just test it directly.)" Evan Driscoll Boost 1.46.1 5646 Test needed for Boost libraries dependent on Filesystem filesystem Boost 1.46.1 To Be Determined Feature Requests Beman Dawes new 2011-06-27T14:36:56Z 2011-06-27T14:36:56Z "A (local) test script needs to be developed that tests Boost libraries that are dependent on Filesystem both before and after a set of changes, and reports any differences in outcome. Although the immediate motivation is to better test that Boost.Filesystem changes do not break Boost libraries dependent on Filesystem, such a script would be useful for other libraries. Thus it should not be specific to Boost.Filesystem." Beman Dawes Boost 1.46.1 5655 parse_config_file option to not throw if file can't be opened program_options Boost 1.46.1 Boost 1.48.0 Feature Requests Vladimir Prus new 2011-06-28T14:06:34Z 2011-10-16T18:11:36Z Could you add an option to parse_config_file to not throw when the file can't be opened? olafvdspek@… Boost 1.46.1 5656 Support options without '=' program_options Boost 1.46.1 Boost 1.48.0 Feature Requests Vladimir Prus new 2011-06-28T14:21:25Z 2013-03-05T20:19:02Z "parse_config_file throws invalid_syntax when a line doesn't contain '=' But for bool options, a '=' should not be required." olafvdspek@… Boost 1.46.1 5651 Improvements to to_[lower/upper]_copy algorithm Boost 1.46.1 To Be Determined Patches Marshall Clow new 2011-06-28T11:40:12Z 2011-12-28T18:56:50Z "to_[lower/upper]_copy implicitly deduces the return type from the input type unless you supply the output as a second parameter. This is not always possible, consider for example: const std::string example = to_lower_copy< std::string >(""foo"") + to_upper_copy< std::string >(""bar""); . To achieve the same we currently need to construct an additional unnecessary temporary which only purpose is to inform the algorithm of the return type. The attached case_conv.hpp introduces 1 new overload for each variant which shouldn't break any existing code. Discussion can be found at: http://lists.boost.org/Archives/boost/2011/06/183031.php ." sairony@… Boost 1.46.1 5637 use of mpl::print imposes default constructible requirement on argument mpl Boost 1.46.1 To Be Determined Tasks Aleksey Gurtovoy new 2011-06-24T01:00:34Z 2015-09-15T14:44:48Z "I'm using the following to debug some TMP code that looks like the following. {{{ #include struct X { X(int); }; boost::mpl::print< X >::type x; boost::mpl::print< X >::type y; }}} I get an error message that the type X is not default constructible. A little investigation yields the definition of mpl::print (simplified for exposition) {{{ template struct print : identity { enum { n = sizeof(T) + -1 }; }; }}} So invoking the print creates an instance with the default constructor which provokes the error in this case. For my purposes, I made the following change which seems to address the problem: {{{ template struct print : identity { enum { n = sizeof(T) + -1 }; }; }}} I'm using MSVC 9.0. A couple of misceleanous issues besides this: On my current version of GCC - 4.3.4 I get no warning at all. If the same type is printed more than once, I only get the warning on the first instance. Robert Ramey " Robert Ramey Boost 1.46.1 5658 how to get rid of nasty compiler warning in boost/property_tree/detail/rapidxml.hpp property_tree Boost 1.46.1 To Be Determined Tasks Sebastian Redl assigned 2011-06-29T07:39:25Z 2014-02-14T15:10:46Z "compiling e.g libs/graph/src/graphml.cpp warns ... {{{ /boost/property_tree/detail/rapidxml.hpp: In function `size_t boost::property_t ree::detail::rapidxml::internal::get_index(Ch) [with Ch = char]': ./boost/property_tree/detail/rapidxml.hpp:1413: instantiated from `static unsi gned char boost::property_tree::detail::rapidxml::xml_document::whitespace_p red::test(Ch) [with Ch = char]' ./boost/property_tree/detail/rapidxml.hpp:1542: instantiated from `static void boost::property_tree::detail::rapidxml::xml_document::skip(Ch*&) [with Stop Pred = boost::property_tree::detail::rapidxml::xml_document::whitespace_pr ed, int Flags = 3072, Ch = char]' ./boost/property_tree/detail/rapidxml.hpp:1377: instantiated from `void boost: :property_tree::detail::rapidxml::xml_document::parse(Ch*) [with int Flags = 3072, Ch = char]' ./boost/property_tree/detail/xml_parser_read_rapidxml.hpp:116: instantiated fr om `void boost::property_tree::xml_parser::read_xml_internal(std::basic_istream< typename Ptree::key_type::value_type, std::char_traits >&, Ptree&, int, const std::string&) [with Ptree = boost::property_ tree::basic_ptree >]' ./boost/property_tree/xml_parser.hpp:52: instantiated from `void boost::proper ty_tree::xml_parser::read_xml(std::basic_istream >&, Ptree&, int) [ with Ptree = boost::property_tree::ptree]' libs/graph/src/graphml.cpp:49: instantiated from here ./boost/property_tree/detail/rapidxml.hpp:317: warning: comparison is always fal se due to limited range of data type }}} Caused by the template: {{{ template inline size_t get_index(const Ch c) { // If not ASCII char, its sematic is same as plain 'z' if (c > 255) { return 'z'; } return c; } }}} How to avoid ? Just specify additionally a user defined implementation of get_index for the ""char"" type : {{{ inline size_t get_index(const char c) { return c; } template inline size_t get_index(const Ch c) { // If not ASCII char, its sematic is same as plain 'z' if (c > 255) { return 'z'; } return c; } }}} I checked the code size (using gcc4.0) : same and the difference of the ASM code: ""same"" {{{ 14972c14972 < cmpq (%r15), %rdi --- > cmpq %rdi, (%r15) 14974c14974 < jae .L3637 --- > jbe .L3637 15002c15002 < cmpq -16(%rsi), %rdi --- > cmpq %rdi, -16(%rsi) 15004c15004 < jae .L3643 --- > jbe .L3643 15017c15017 < cmpq -16(%rdx), %rdi --- > cmpq %rdi, -16(%rdx) 15019c15019 < jb .L3796 --- > ja .L3796 15487c15487 --- }}}" Dieter Stach Boost 1.47.0 4276 "warning ""type qualifiers ignored on function return type"" in ptr_map" ptr_container Boost 1.47.0 To Be Determined Bugs Thorsten Ottosen new 2010-06-01T12:15:42Z 2016-10-25T14:07:52Z "The following program compiled with gcc using options -W and -Wall spits out a warning about ignored type qualifiers. test.cpp: #include int main() { } g++ -W -Wall test.cpp ../include/boost/ptr_container/detail/map_iterator.hpp:52: warning: type qualifiers ignored on function return type It seems like there is a superfluous const in the -> operator. const ref_pair* const operator->() const should be const ref_pair* operator->() const" boris.bigott@… Boost 1.47.0 4772 binary_buffer_iprimitive fails on vector access when reading in zero length item at end of buffer_ mpi Boost 1.47.0 Boost 1.46.0 Bugs Matthias Troyer reopened 2010-10-22T19:37:11Z 2011-09-21T18:03:39Z "When binary_buffer_iprimitive's position == buffer_.size() and binary_buffer_iprimitive::load_impl is called with l = 0, the bracket operator on buffer_ will attempt an out of bounds access. The assertion in load_impl suggests the author was aware these conditions are normal since the assertion evaluates to true. However, the parameters for the call to std::memcpy cannot be evaluated because an assertion within buffer_ fails. Changing load_impl to look like this fixes the problem: void load_impl(void * p, int l) { assert(position+l<=static_cast(buffer_.size())); if (l) { std::memcpy(p,&buffer_[position],l); position += l; } } It looks like the bug should also exist in Boost's trunk, but I cannot get the software I'm working on to build with Boost 1.44 and newer, but that is another issue." Jeff Jackowski Boost 1.47.0 5398 progress.hpp does not compile with exceptions off timer Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-03-31T00:41:12Z 2011-03-31T07:23:24Z "uses try/catch instead of BOOST_TRY/BOOST_CATCH with exceptions off, you cannot use throw(), try, catch, etc., hence boost::throw_exception(), BOOST_TRY, BOOST_CATCH, BOOST_RETHROW " anonymous Boost 1.47.0 5400 token_functions.hpp does not compile with exceptions off tokenizer Boost 1.47.0 To Be Determined Bugs jsiek new 2011-03-31T00:50:22Z 2015-02-07T03:39:48Z "uses throw (instead of boost::throw_exception as it should) with exceptions off, you cannot use throw(), try, catch, etc., hence BOOST_TRY, BOOST_CATCH, BOOST_RETHROW" anonymous Boost 1.47.0 5402 bind.hpp generates declared but never referenced warnings for placeholders with armcc bind Boost 1.47.0 To Be Determined Bugs Peter Dimov new 2011-03-31T01:03:57Z 2011-04-05T22:33:28Z "generates spurious variable defined but never referenced under armcc (check for __ARMCC_VERSION) ""../../boost/bind/placeholders.hpp"", line 55: Warning: #177-D: variable ""::_1"" was declared but never referenced boost::arg<1> _1; ^ ""../../boost/bind/placeholders.hpp"", line 56: Warning: #177-D: variable ""::_2"" was declared but never referenced boost::arg<2> _2; ^ ""../../boost/bind/placeholders.hpp"", line 57: Warning: #177-D: variable ""::_3"" was declared but never referenced boost::arg<3> _3; ^ ""../../boost/bind/placeholders.hpp"", line 58: Warning: #177-D: variable ""::_4"" was declared but never referenced boost::arg<4> _4; ^ ""../../boost/bind/placeholders.hpp"", line 59: Warning: #177-D: variable ""::_5"" was declared but never referenced boost::arg<5> _5; ^ ""../../boost/bind/placeholders.hpp"", line 60: Warning: #177-D: variable ""::_6"" was declared but never referenced boost::arg<6> _6; ^ ""../../boost/bind/placeholders.hpp"", line 61: Warning: #177-D: variable ""::_7"" was declared but never referenced boost::arg<7> _7; ^ ""../../boost/bind/placeholders.hpp"", line 62: Warning: #177-D: variable ""::_8"" was declared but never referenced boost::arg<8> _8; ^ ""../../boost/bind/placeholders.hpp"", line 63: Warning: #177-D: variable ""::_9"" was declared but never referenced boost::arg<9> _9; ^ " anonymous Boost 1.47.0 5448 "Windows ""\\\\?\\"", ""\\\\?\\UNC\\"", and ""\\\\.\\"" path meta characters" filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-04-09T14:34:04Z 2011-04-10T02:00:38Z "Windows treats ""\\\\?\\"", ""\\\\?\\UNC\\"", and ""\\\\.\\"" at the start of a path as meta characters signaling special handling of the remainder of the path. So, for example, ""\\\\?\\"" should be treated as an empty path! See ""Naming Files, Paths, and Namespaces"", http://msdn.microsoft.com/en-us/library/aa365247%28v=vs.85%29.aspx Ticket 5405 supplied a patch that allows class path to handle a portion of what this implies, but does not deal with the general problem. A few test cases have been added to path_test.cpp, but they are currently commented out." Beman Dawes Boost 1.47.0 5687 some evaluation functions do not work with BOOST_RESULT_OF_USE_DECLTYPE phoenix Boost 1.47.0 To Be Determined Bugs Thomas Heller reopened 2011-07-12T11:45:37Z 2012-08-28T01:43:00Z "Codes using `phoenix::construct` fail to compile in C++0x with `BOOST_RESULT_OF_USE_DECLTYPE` (Tested on gcc 4.6.1 and clang TOT). Here is a minimal test code: {{{ #define BOOST_RESULT_OF_USE_DECLTYPE #include #include int main (int argc, char* argv[]) { boost::phoenix::construct()(); return 0; } }}} Also, you can get the compile error by compiling `libs/phoenix/test/object/new_delete_tests.cpp` with `BOOST_RESULT_OF_USE_DECLTYPE`. " Michel MORIN Boost 1.47.0 5702 Filename is returned within quotes instead without filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-07-16T09:30:02Z 2011-07-19T07:31:08Z "In the reference (http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/reference.html#path-decomposition) it is said that for example the filename returned by filename() will be without the quotes: {{{#!c++ std::cout << path(""/foo/bar.txt"").filename(); // outputs ""bar.txt"" (without the quotes) }}} But actually I'm getting an output with the filename enclosed in quotes like: {{{ ""bar.txt"" }}} I'm using Windows Vista." moritz@… Boost 1.47.0 5712 terminate called recursively with filesystem header filesystem Boost 1.47.0 Bugs Beman Dawes new 2011-07-18T22:15:37Z 2011-07-18T22:15:37Z "Hello, I'm using boost::filesystem within my project (boost 1.47.0). I have compiled the boost under cygwin with bjam. I have some problems with exception throws / catches: The following example shows the problem: #include #include int main(int argc, char* argv[]) { throw std::runtime_error(""xxx""); return 0; } If I compile this code under Cygwin and link cygboost_filesystem, cygboost_system and libbost_exception, the programs terminates with this messages: terminate called after throwing an instance of 'std::runtime_error' terminate called recursively If I remove the boost/filesystem include the program produce the correct message: terminate called after throwing an instance of 'std::runtime_error' what(): xxx If I change the program to: int main(int argc, char* argv[]) { try { throw std::runtime_error(""xxx""); } catch (...) {} return 0; } the program breaks down with the filesystem include: terminate called after throwing an instance of 'std::runtime_error' terminate called recursively without the include always works fine. Thanks a lot " philipp.kraus@… Boost 1.47.0 5734 possible handle leak in posix implementation copy_file_api filesystem Boost 1.47.0 Boost 1.48.0 Bugs Beman Dawes assigned 2011-07-26T04:04:07Z 2011-07-26T14:49:21Z "There is possible handle leak in POSIX implementation of function '''copy_file_api'''. {{{ ... if ((infile = ::open(from_p.c_str(), O_RDONLY))< 0) { return false; } struct stat from_stat; if (::stat(from_p.c_str(), &from_stat)!= 0) { return false; } ... }}} if '''::stat''' failed, then function exits without closing '''infile''' handle. This problem exists both in '''v3''' and '''v2''' implementations of filesystem. Also this problem exists in previous releases. " alexey.kutumov@… Boost 1.47.0 5765 Container Device/Sink bug iostreams Boost 1.47.0 To Be Determined Bugs Jonathan Turkanis new 2011-08-09T11:49:15Z 2011-08-09T11:49:15Z "i think write should be like this, otherwise if one seeks back (after writing to overwrite replace some data, number of bytes seeked back will be duplicated on the next write. (original line changed/replaced is commented out in code) {{{ #!c++ std::streamsize write(const char_type* s, std::streamsize n) { using namespace std; std::streamsize result = 0; if (pos_ != container_.size()) { std::streamsize amt = static_cast(container_.size() - pos_); result = (min)(n, amt); std::copy(s, s + result, container_.begin() + pos_); pos_ += result; } if (result < n) { container_.insert(container_.end(), s + result, s + n); //container_.insert(container_.end(), s, s + n); pos_ = container_.size(); } return n; } }}}" aris.basic@… Boost 1.47.0 5785 regression in parsing a list of lists spirit Boost 1.47.0 To Be Determined Bugs Joel de Guzman new 2011-08-15T16:54:36Z 2011-08-15T16:54:36Z "The following code doesn't compile in boost-1.47.0, but compiles fine in boost-1.44.0: {{{ #include #include int main () { std::string str (""0.1:1.5,0.2:4,-1.2:5.5;1:2,3:4,5:6;10:20,20:30,30:40""); using namespace boost::spirit::qi; std::vector > > v; phrase_parse (str.begin(), str.end (), ((double_ >> ':' >> double_) % ',') % ';', space, v); return 0; } }}} The (final) error message is: {{{ include/boost/spirit/home/support/container.hpp:278: error: no matching function for call to ‘std::vector, std::allocator > >::insert(__gnu_cxx::__normal_iterator*, std::vector, std::allocator > > >, const double&)’ }}} " matt@… Boost 1.47.0 5786 Section 5.2 in Getting Started Guide is misleading Getting Started Guide Boost 1.47.0 To Be Determined Bugs Dave Abrahams new 2011-08-16T11:19:14Z 2011-08-16T11:19:14Z "Section 5.2 of the Getting Started Guide: ""Or, Simplified Build From Source"" says to run: bootstrap .\b2 This does work (except when it gets the toolchain wrong) and successfully builds boost, and the output does correctly list the include and library paths. However, it leaves boost in a state inconsistent with the instructions in Section 6.1 and 6.2. These have examples which assume the libraries are in the lib subdirectory of the boost root (which it looks like they are for pre-compiled builds), whereas the instructions in 5.2 leave them in the stage/lib subdirectory. There is an ""install"" option which puts the libraries in another location, but this isn't mentioned in the Getting Started Guide. Section 5.4 also doesn't mention that the paths are listed in the expected build output, so this is easy to miss if you are not specifically looking for it. This means that following the instructions for building from source in the Getting Started Guide doesn't work, as Section 6.4 will fail with link errors. " john.reynolds@… Boost 1.47.0 5815 booast asio crash in io_service run asio Boost 1.47.0 To Be Determined Bugs chris_kohlhoff new 2011-08-26T17:45:14Z 2011-10-16T18:00:21Z "Boost Asio crashes on slackware linux with g++ (GCC) 4.5.2 I made a simple http server startig from the examples on the website. When I add a deadline timer to shutdown the connection, only adding it in the connection class and and initializing it with the io_service makes the program to seg fault in io_service run. " mileandrei@… Boost 1.47.0 5819 error in solaris_fenced_block.hpp in solaris 10 sun c++ 5.8 asio Boost 1.47.0 To Be Determined Bugs chris_kohlhoff new 2011-08-28T21:20:41Z 2013-02-15T11:42:13Z """/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/asio/detail/solaris_fenced_block.hpp"", line 37: Error: The function ""membar_consumer"" must have a prototype. ""/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/asio/detail/solaris_fenced_block.hpp"", line 43: Error: The function ""membar_producer"" must have a prototype. ""/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/asio/detail/impl/socket_ops.ipp"", line 952: Error: msg_flags is not a member of msghdr. ""/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/bind/bind.hpp"", line 69: Error: boost::_bi::F is not a namespace or class name. ""/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/bind/bind_template.hpp"", line 15: Where: While specializing ""boost::_bi::result_traits"". ""/sr/gldev/wfpvcs/tunis/bbouzayani/QuickFast_SOL10/boost_1_47_0/stage/include/./boost/bind/bind_template.hpp"", line 15: Where: Specialized in boost::_bi::bind_t, boost::arg<1>, boost::_bi::value > in_values(communicator.size()); std::vector< std::list > out_values(communicator.size()); // Point the lists in in_values to more than numeric_limits::max() bytes of data boost::mpi::all_to_all(communicator,in_values,out_values); }}} }}} Such code ends up passing the allocator, using openmpi-1.4.3, an invalid argument. Looking at all_to_all.hpp and the method... {{{ #!div style=""font-size: 80%"" {{{#!c++ template void all_to_all_impl(const communicator& comm, const T* in_values, int n, T* out_values, mpl::false_) { ... } }}} }}} I think I see why this happens. The method begins as follows... {{{ #!div style=""font-size: 80%"" {{{#!c++ std::vector send_sizes(size); // The displacements for each outgoing value. std::vector send_disps(size); // The buffer that will store all of the outgoing values std::vector > outgoing; // Pack the buffer with all of the outgoing values. for (int dest = 0; dest < size; ++dest) { // Keep track of the displacements send_disps[dest] = outgoing.size(); // Our own value will never be transmitted, so don't pack it. if (dest != rank) { packed_oarchive oa(comm, outgoing); for (int i = 0; i < n; ++i) oa << in_values[dest * n + i]; } // Keep track of the sizes send_sizes[dest] = outgoing.size() - send_disps[dest]; } }}} }}} If outgoing.size() or (outgoing.size() - send_disps[dest]) is greater than numeric_limits::max(), then send_disps[dest] or send_sizes[dest] flips over to negative values or is simply junk. After that happens the rest of the code in all_to_all_impl() doesn't really make any sense. My guess is that instead of using int here... {{{ #!div style=""font-size: 80%"" {{{#!c++ std::vector send_sizes(size); std::vector send_disps(size); std::vector recv_sizes(size); ... }}} }}} you should use allocator::size_type." Kelly Davis Boost 1.47.0 5850 last_write_time on Windows may not work on SMB2-network-mounted drive filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes assigned 2011-08-31T15:22:13Z 2011-10-11T12:21:05Z "Consider the following logical operation against a file on a network-mounted drive served over SMB2: 1. fopen(""r+b"")/fwrite/fclose a file. 2. boost::filesystem::last_write_time(file, some other specific time) 3. fopen(""rb"")/fclose a file. As soon as the file is opened in step 3, it appears that the SMB2/redirector actually closes the file and ""flushes"" its pending write in service of step 1. This has the effect of overwriting the time modification in step 2. I believe this is happening because boost's non-POSIX/Windows implementation of last_write_time uses CreateFile() and asks only for FILE_WRITE_ATTRIBUTES. Using GENERIC_WRITE appears to work correctly. Also note, calling utime() instead of boost::filesystem::last_write_time() works correctly. Please see attached test code demonstrating boost's failure, utime()'s success, and native API workaround. Please feel free to contact me for follow up. Thanks, -Ken" Ken Harris Boost 1.47.0 5861 Iterators documentation is invalid iterator Boost 1.47.0 To Be Determined Bugs jeffrey.hellrung new 2011-09-03T15:36:19Z 2012-11-21T22:10:47Z "under /doc/libs/1_47_0/libs/iterator/: … href=""/favicon.ico"" type=""image/ico""> Boost 1.47.0 5863 Warnings when including boost/mpi/skeleton_and_content.hpp mpi Boost 1.47.0 To Be Determined Bugs Matthias Troyer new 2011-09-04T19:56:09Z 2013-01-01T11:35:43Z "Unused identifiers at boost/mpi/detail/ignore_iprimitive.hpp line 55; boost/mpi/detail/ignore_oprimitive.hpp line 47; Just comment out or remove it. ;-) Regards, Júlio." Júlio Hoffimann Mendes Boost 1.47.0 5864 unable to compile boost::mpi under Windows using msvc-2008-compiller mpi Boost 1.47.0 To Be Determined Bugs Douglas Gregor new 2011-09-05T06:27:08Z 2013-08-03T23:32:39Z "My steps to reproduce: 1. Setup environment for msvc-2008 compiler using bat-file for Visual Studio 2008 command line environment. 2. Compile library openmpi-1.4.3 using cmake (as specified in its documentation) and install it to ""d:\Libs\mpi-1.4.3\Release"". 3. Add path to ""d:\Libs\mpi-1.4.3\Release\bin"" to my PATH environment. 4. Check, that mpic++ works good: {{{ > mpic++ --showme cl.exe /I""d:/Libs/mpi-1.4.3/Release/include"" /TP /EHsc /D ""OMPI_IMPORTS"" /D ""OPAL_IMPORTS"" /D ""ORTE_IMPORTS"" /link /LIBPATH:""d:/Libs/mpi-1.4.3/Release/lib"" libmpi.lib libopen-pal.lib libopenrte.lib libmpi_cxx.lib libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib }}} 5. Add string 'using mpi ;' to my \tools\build\v2\user-config.jam file. 6. Try to compile boost::mpi: {{{ > bjam.exe --prefix=d:\Programming\mpi-work\boost-mpi\installed --build-dir=d:\Programming\mpi-work\boost-mpi\bld --with-mpi install }}} As a result I got the error: {{{ Системе не удается найти указанный путь. Системе не удается найти указанный путь. Системе не удается найти указанный путь. Системе не удается найти указанный путь. MPI auto-detection failed: unknown wrapper compiler mpic++ Please report this error to the Boost mailing list: http://www.boost.org You will need to manually configure MPI support. }}} ('Системе не удается найти указанный путь.' - means 'System can't find specified path') The same result I got using b2.exe instead of bjam.exe. I tried to read the documentation to setup exact paths to openmpi for mpi module in the user-config.jam. But I couldn't understand, where should I put include- and library-paths in it. My environment - Windows XP SP2 x32, Visual Studio 2008 with compiler version 15.00.21022.08. I have attached partial command line environment as file to the bug report." Slav Grig Boost 1.47.0 5876 Serialization - tracking of non-versioned classes serialization Boost 1.47.0 To Be Determined Bugs Robert Ramey assigned 2011-09-08T09:42:18Z 2016-04-05T10:51:57Z "I quote a case from my workplace. The issue came up for std::vector, but I use a simple struct X to reproduce the problem. See the attached file for detailed instructions. Opened by Yakov Galka 9/8/2011 (Today) 8:31 AM Edit The following code: {{{ struct X { ... }; X x2; BoostLoad(""SerializationBug.dat"", x2); #if FLAG volatile int x = 0; if(x) { X *x3; BoostLoad(""this code is never executed"", x3); } #endif }}} Produces different results depending on whether FLAG == 0 or 1, although it's clear that it must not change it's behavior. After some research it happens that the handling of tracking level is broken in boost since at least boost 1.46.1. Assigned to Yakov Galka by Yakov Galka 9/8/2011 (Today) 8:31 AM Notified ######. Edited by Yakov Galka 9/8/2011 (Today) 8:53 AM [Revised 11:44 AM] Edit It happens for objects with implementation level of object_serializable. That is: {{{ BOOST_CLASS_IMPLEMENTATION(X, boost::serialization::object_serializable) }}} For greater implementation level, the tracking level is read from the archive. However it still must affect the saving of objects to any archives (binary, xml, text). If it's not clear enough, the above code reads/writes the the file correctly when FLAG == 0, but tries to load x2 as-if it's tracked when FLAG == 1. Edited by Yakov Galka 9/8/2011 (Today) 10:38 AM Edit I've successfully reproduced this same bug in boost 1.33.1, although there it's silent (no crash, just wrong data is read). Boost serialization is broken really hard on the low-level: basic_iserializer::tracking() decides whether the class should be tracked or not based on m_bpis value. However it can't decide this based on the information it has, since it's shared among objects serialized trough a pointer and not through a pointer. Possible Fix: make basic_iserializer::tracking return the tracking level instead of a boolean value and let the caller decide what this tracking level means. It's a lot of work, and it may break computability with archives serialized incorrectly in 1.33.1, which happens to be possible. We are screwed anyway. Edited by Yakov Galka 9/8/2011 (Today) 11:44 AM Revised Yakov Galka's 8:53 AM entry from 9/8/2011" ybungalobill@… Boost 1.47.0 5877 Ambiguous call building Boost.Python quickstart example python USE GITHUB Boost 1.47.0 To Be Determined Bugs Stefan Seefeld new 2011-09-08T13:12:59Z 2012-12-07T22:37:16Z "If I use .\b2 to do a build of plain vanilla Boost 1.47 on 32-bit Windows 7 using Python 3.2 and MSVC 10.0 SP1, it completes without error. I then add the lib= and include= environment variables as instructed at the end of the build, and CD to the python quickstart example. When I then use b2 to build the quickstart example, it fails with: {{{ embedding.cpp embedding.cpp(39) : error C2668: 'std::basic_string<_Elem,_Traits,_Ax>::basic_st ring' : ambiguous call to overloaded function with [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xstring(700): c ould be 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_E lem,_Traits,_Ax> &&)' with [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\xstring(590): o r 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const _Elem *)' with [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] while trying to match the argument list '(boost::python::detail::method_ result)' }}} and {{{ embedding.cpp(56) : error C2065: 'initembedded_hello' : undeclared identifier }}} Of course, the second error may be caused by the first. See http://mail.python.org/pipermail/cplusplus-sig/2011-September/016147.html for a more complete history and console listing." paul@… Boost 1.47.0 5883 Neither nor works on prebuilt library targets build Boost 1.47.0 To Be Determined Bugs Vladimir Prus new 2011-09-09T18:11:25Z 2012-08-10T06:04:45Z "For example, suppose I have a jamroot file as follows; {{{ run test.cpp : : : : test.run ; explicit test.run ; lib gmp : : test.run ; explicit gmp ; exe main.exe : gmp main.cpp ; explicit main.exe ; }}} Here, I just expect that `` feature on the `lib` target introduces a dependency on the `test.run` target. However, command line invocation like {{{ bjam main.exe }}} pulls neither the build nor run of `test.run` at all, and only `main.exe` is built. " anonymous Boost 1.47.0 5888 [Documentation] iterator_facade docs -- const correctness problem. iterator Boost 1.47.0 To Be Determined Bugs jeffrey.hellrung new 2011-09-10T19:10:50Z 2012-11-21T22:17:18Z "On this documentation page, second box: http://www.boost.org/doc/libs/1_47_0/libs/iterator/doc/iterator_facade.html#a-constant-node-iterator there is a problem with const-correctness on the dereference function. For the const_node_iterator, Value = const node_base, thus yielding {{{ const node_base& dereference() const { return *m_node; } const node_base* m_node; }}} However, for node_iterator, Value = node_base: {{{ node_base& dereference() const { return *m_node; // Error: cannot convert const variable to non_const reference } node_iterator* m_node; }}} Correct would be to const-overload dereference: {{{ typedef boost::iterator_facade< node_iter , Value , boost::forward_traversal_tag > super; typename super::reference dereference() { return *m_node; } const typename super::reference dereference() const { return *m_node; } }}} " Frank Erens Boost 1.47.0 5898 bzip2_decompressor still does not handle pbzip2-compressed files correctly iostreams Boost 1.47.0 To Be Determined Bugs Jonathan Turkanis new 2011-09-14T00:39:57Z 2011-09-14T00:39:57Z "This is an extension of ticket #3853. I believe that the bug was not resolved correctly. In particular, there appears to be a subtle problem which occurs when the boundary between two bz streams falls at precisely the wrong place in the input buffer. The attached piece of code illustrates the problem. It may be compiled with, say: g++ testpbzip2.cc -o testpbzip2 -lboost_iostreams -lbz2 ./testpbzip2 The input file (which is inlined in the source file) was created using the following commands: dd if=/dev/zero of=file bs=1000 count=901 pbzip2 -9 file The problem was initially found on a real file with the default buffer size of 4096. The smallest example that I've found which exercises the problem at this buffer size is 160kB, and hence not attached to this ticket. It is available on request." Andrew.Bromage@… Boost 1.47.0 5902 Division by zero when requesting null sized buffers pool Boost 1.47.0 To Be Determined Bugs John Maddock new 2011-09-16T10:06:40Z 2012-07-16T20:00:31Z "The following code yields a division by zero in pool::malloc_need_resize() : {{{ boost::pool<> p(0, 1, 1); p.malloc(); }}} The code above requests at most one buffer of size zero. The expected behavior would be one of (i) malloc fails, (ii) malloc returns a null sized buffer. Regards" Étienne Dupuis Boost 1.47.0 5912 tools/build/v2/contrib/boost.jam update build Boost 1.47.0 To Be Determined Bugs Vladimir Prus new 2011-09-19T05:54:05Z 2011-09-19T05:54:05Z "Boost has introduced new built libraries `libboost_chrono*` and `libboost_exception*`, which is not supported by the current `boost.jam`. I have attached a patch for this update. Note: `libboost_exception*` only has static variants right now, so `BOOST_EXCEPTION_DYN_LINK` is not needed to be defined. " Ai Azuma Boost 1.47.0 5937 Sun C++ 5.11 Linux compilation errors: operations.cpp filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes assigned 2011-09-24T12:46:46Z 2011-09-27T17:59:30Z "CC: Sun C++ 5.11 Linux_i386 2010/08/13 usage: CC [ options ] files. Use 'CC -flags' for details ""libs/filesystem/v3/src/operations.cpp"", line 1760: Error: DT_UNKNOWN is not defined. ""libs/filesystem/v3/src/operations.cpp"", line 1766: Error: DT_DIR is not defined. ""libs/filesystem/v3/src/operations.cpp"", line 1768: Error: DT_REG is not defined. ""libs/filesystem/v3/src/operations.cpp"", line 1770: Error: DT_LNK is not defined. 4 Error(s) detected. ""CC"" -library=stlport4 -xO4 -mt -erroff=%none -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I""."" -c -o ""/home/pal/work/cpp/tmp/boost/bin.v2/libs/filesystem/build/sun/release/address-model-64/link-static/stdlib-sun-stlport/threading-multi/v3/src/operations.o"" ""libs/filesystem/v3/src/operations.cpp""" Peter Loibl Boost 1.47.0 5945 Error in Connected Components Result graph Boost 1.47.0 To Be Determined Bugs ngedmond new 2011-09-27T06:16:08Z 2011-09-27T17:30:41Z "I've been using the connected components function from the parallel Boost graph library. The function has helped my coding and I'm grateful to the authors. I have tested the function on various graphs and verified its results. However, in one test case, the function leaves a vertex out of its rightful component when running with 16 processes. The problem does not occur when running with fewer processes. As the graph where the problem occurs is complicated, I would be unreasonable to ask for too much help in resolving the problem. However, any pointers would be greatly appreciated. In the attached code, I build and run the connected components function on a graph. I build the graph from 16 attached files numbered 'a' to 'p'. The i-th file contains the number and owner-local pairs of adjacent vertices of consecutive vertices to be stored on the i-th process. After adding the vertices and edges between them, I first verify there is an edge between the problem vertex (0,20) and another vertex, then run the connected components function. Then printing the parent of problem vertex and its children shows the vertex is in a separate component from its neighbor. It would be great if you could look over the code and point out any obvious errors. Thank you!" Lau Yang Hao Boost 1.47.0 5948 ptr_map_adapter::insert( key_type& key, mapped_type x ) should have const kex paramter ptr_container Boost 1.47.0 To Be Determined Bugs Thorsten Ottosen new 2011-09-27T11:31:22Z 2011-09-27T11:31:22Z "ptr_map_adapter::insert( key_type& key, mapped_type x ) should be ptr_map_adapter::insert( '''const''' key_type& key, mapped_type x ) as the other insert methods are." M.Mayer@… Boost 1.47.0 5961 ptr_container supports comparison of iterators of different types ptr_container Boost 1.47.0 To Be Determined Bugs Thorsten Ottosen new 2011-09-29T10:11:47Z 2011-09-29T10:11:47Z "The void_ptr_iterator, which handles much of the ptr_container iterator functionality, oddly supports comparison operations between iterators of differing types. For example: {{{ ptr_vector vi; ptr_vector vs; bool eq = (vi.begin() == vs.begin()); }}} The affected operators are: == != < <= > >=" Rob Desbois Boost 1.47.0 5966 Cannot send std::map with more than 1 key/value pair mpi Boost 1.47.0 To Be Determined Bugs Matthias Troyer new 2011-09-30T19:19:05Z 2013-01-01T11:33:11Z "Sending a std::map (or std::set) of size greater than 1 causes an MPI_ERR_TRUNCATE error. The following code reproduces this error: {{{ #include #include int main( int argc, char * argv [] ) { boost::mpi::environment env(argc, argv); boost::mpi::communicator world; if(world.rank()==0){ std::map test; test[1]=50; test[2]=100; world.send(1, 1, boost::mpi::skeleton(test)); world.send(1, 1, boost::mpi::get_content(test)); std::cout << ""sent"" << std::endl; } else{ std::map test; world.recv(0,1,boost::mpi::skeleton(test)); world.recv(0,1,boost::mpi::get_content(test)); std::cout << test.size() << std::endl; } } }}}" Tim Jacobs Boost 1.47.0 5987 Error in boost-build/jam_src/build.bat build Boost 1.47.0 To Be Determined Bugs Vladimir Prus new 2011-10-07T03:26:13Z 2011-10-07T03:26:13Z "in :Start if ""_%1_"" == ""__"" ( call :Guess_Toolset if not errorlevel 1 goto Setup_Toolset ) else ( call :Test_Option ""%1"" if not errorlevel 1 ( <-- error here call :Guess_Toolset if not errorlevel 1 goto Setup_Toolset ) else ( setlocal & endlocal set ""BOOST_JAM_TOOLSET=%1"" shift goto Setup_Toolset ) ) is incorrect, will always ignore specified toolset, should be if ""_%1_"" == ""__"" ( call :Guess_Toolset if not errorlevel 1 goto Setup_Toolset ) else ( call :Test_Option ""%1"" if errorlevel 1 ( call :Guess_Toolset if not errorlevel 1 goto Setup_Toolset ) else ( setlocal & endlocal set ""BOOST_JAM_TOOLSET=%1"" shift goto Setup_Toolset ) ) which then allows >build mingw to work correctly" multisitetracker@… Boost 1.47.0 5988 boost::filesystem::absolute doesn't work with ../relative_path or ./relative_path filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-10-07T04:21:02Z 2011-10-07T07:09:20Z "In boost filesystem v3, boost::filesystem::absolute only appends the relative path to base path. It should also remove ""./"" from relative paths and ""backtrack"" on base path if relative path contains ""../../"" etc. For example, Input: ""d:\current\path"" "".\..\relative\path"" Result obtained: ""d:\current\path\.\..\relative\path"" Desired result: ""d:\current\relative\path"" " Sachin Garg Boost 1.47.0 6010 Linkage problems in assignment.hpp uBLAS Boost 1.47.0 Boost 1.48.0 Bugs David Bellot reopened 2011-10-11T18:03:01Z 2013-01-24T19:45:32Z "Original report in uBlas mailing list: {{{ Hi, I started using ublas's ""<<="" assignment, and I'm starting to regret it. First symptom: if I compile with the gcc flag -Wmissing-prototypes I get the following warnings: In file included from /Users/devernay/Development/stereocam/surf/CameraMatrixP.hpp:16, from /Users/devernay/Development/stereocam/surf/TriFocalTensor/Trifocaltensor.hpp:18, from /Users/devernay/Development/stereocam/surf/TriFocalTensor/TrifocaltensorBundleAdjustement.cpp:20: /opt/local/include/boost/numeric/ublas/assignment.hpp:454: warning: no previous prototype for 'boost::numeric::ublas::begin1_manip boost::numeric::ublas::begin1()' /opt/local/include/boost/numeric/ublas/assignment.hpp:498: warning: no previous prototype for 'boost::numeric::ublas::begin2_manip boost::numeric::ublas::begin2()' /opt/local/include/boost/numeric/ublas/assignment.hpp:543: warning: no previous prototype for 'boost::numeric::ublas::next_row_manip boost::numeric::ublas::next_row()' /opt/local/include/boost/numeric/ublas/assignment.hpp:587: warning: no previous prototype for 'boost::numeric::ublas::next_column_manip boost::numeric::ublas::next_column()' /opt/local/include/boost/numeric/ublas/assignment.hpp:888: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_row_policy boost::numeric::ublas::traverse_policy::by_row()' /opt/local/include/boost/numeric/ublas/assignment.hpp:892: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_row_policy boost::numeric::ublas::traverse_policy::by_row_wrap()' /opt/local/include/boost/numeric/ublas/assignment.hpp:896: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_row_policy boost::numeric::ublas::traverse_policy::by_row_no_wrap()' /opt/local/include/boost/numeric/ublas/assignment.hpp:900: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_column_policy boost::numeric::ublas::traverse_policy::by_column()' /opt/local/include/boost/numeric/ublas/assignment.hpp:904: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_column_policy boost::numeric::ublas::traverse_policy::by_column_wrap()' /opt/local/include/boost/numeric/ublas/assignment.hpp:908: warning: no previous prototype for 'boost::numeric::ublas::traverse_policy::by_column_policy boost::numeric::ublas::traverse_policy::by_column_no_wrap()' But the second symptom is more critical: Since these symbols are defined in EVERY file that includes them, I cannot link anything and I get tons of ""multiply defined symbols"". Looking at the file, I found out that: - begin1(), begin2(), and a few others are not inlined, but conditionally inlined, using BOOST_UBLAS_INLINE (which inlines only if NDEBUG is defined), and are NOT members of classes, thus the multiply defined symbols... - boost::numeric::ublas::traverse_policy::by_row() and other are just defined, and not inlined. So, really, what's the solution? Here's what I think: BOOST_UBLAS_INLINE should ONY be used for class members, NOT for functions, which should be simply declared ""inline"". by_row() and friends should either be inlined or declared as static members of an empty class. I tried putting the magic word ""inline"" in front of each of these, and it works. fred }}}" nasos_i@… Boost 1.47.0 6024 Behaviour and documentation don't match tokenizer Boost 1.47.0 To Be Determined Bugs jsiek new 2011-10-14T07:33:14Z 2011-10-14T07:33:14Z "Hi, > explicit char_separator() Explicit? Doesn't explicit only apply to one argument constructors? > The function std::isspace() is used to identify dropped delimiters and std::ispunct() is used to identify kept delimiters. In addition, empty tokens are dropped. std::string s(""[1][3][5][]9""); BOOST_FOREACH(auto i, boost::tokenizer<>(s)) std::cout << i << std::endl; This outputs only numbers. Shouldn't the brackets be included too?" Olaf van der Spek Boost 1.47.0 6026 phoenix block statement tries to copy objects instead of references phoenix Boost 1.47.0 To Be Determined Bugs Kohei Takahashi assigned 2011-10-14T16:17:15Z 2016-05-09T15:02:25Z "Let's use a simplest class, that can't be copied: {{{ class A { A() {} A(const A&); public: static A* construct() { return new A(); } const A& operator<<(const char *p) const { return *this; } }; A *pa = A::construct(); A &a = *pa; }}} The code which use this object one time normally works: {{{ (boost::phoenix::ref(a) << boost::phoenix::placeholders::_1)(""aaa""); }}} But when I try to use this object two times, I get an error: {{{ ( boost::phoenix::ref(a) << boost::phoenix::placeholders::_1 ,boost::phoenix::ref(a) << boost::phoenix::placeholders::_1 )(""aaa""); }}} Result: 'A::A' : cannot access private member declared in class 'A' Expecting: pass compilation and invoke ""A::operator<<"" two times. Note: preprocessing directive ""BOOST_SPIRIT_USE_PHOENIX_V3"" was defined." armagvvg@… Boost 1.47.0 6034 Problem of the split function in boost/date_time/time_parsing.hpp date_time Boost 1.47.0 To Be Determined Bugs az_sw_dude new 2011-10-19T12:13:46Z 2011-10-19T12:21:07Z "If we call the function '''split''' with the string ""2010-01-01"" and "" "" as delimiter then the function sets the variables '''first''' and '''second''' with ""2010-01-01"" Maybe we should write this piece of code to initialize the parameter '''second''' with the correct value. {{{ bool split(const std::string& s, char sep, std::string& first, std::string& second) { int sep_pos = static_cast(s.find(sep)); first = s.substr(0,sep_pos); second = sep_pos == -1 ? """" : s.substr(sep_pos+1); return true; } }}} " fbriol@… Boost 1.47.0 6037 Errors at https://svn.boost.org/trac/ trac / subversion Boost 1.47.0 To Be Determined Bugs Douglas Gregor new 2011-10-19T22:51:12Z 2014-01-26T21:49:55Z "bin: Error ([Errno 2] No such file or directory: '/opt/trac/bin/VERSION') Boost C++ Libraries cache: Error ([Errno 2] No such file or directory: '/opt/trac/cache/VERSION') include: Error ([Errno 2] No such file or directory: '/opt/trac/include/VERSION') lib: Error ([Errno 2] No such file or directory: '/opt/trac/lib/VERSION') OSL Test trac share: Error ([Errno 2] No such file or directory: '/opt/trac/share/VERSION') " Olaf van der Spek Boost 1.47.0 6045 Date/Time: dst_calculator::local_is_dst doesn't deal with DST changeover at end of day date_time Boost 1.47.0 To Be Determined Bugs az_sw_dude new 2011-10-20T23:26:32Z 2015-03-03T15:07:36Z "Hello boosters, dst_calculator::local_is_dst assumes that the hour lost in the ""forward"" DST changeover (in Spring, when DST begins) fully occurs within a single day. If your time zone rule specifies that DST begins at 23:59:99.999 on October 15th, with a duration of an hour, and you attempt to create a ptime for 00:00:00.000 on October 16th, it will succeed even though it ought to return invalid_time_label. I admit that this seems like an odd case, and personally I would expect all DST offsets to be in the 0h-3h range. However if you are creating custom time zones based on the win32 time zone information, the GetTimeZoneInformation API returns a TIME_ZONE_INFORMATION struct with values returned a millisecond before midnight. Specifically this happens with Brasilian standard/daylight time. For now I am ""cleaning up"" these odd values returned from windows, but boost probably should do this calculation correctly to begin with. I can provide a repro case if need be, although I think the behaviour of the code in question is pretty clear. Thanks, Matt Adam" Matt Adam Boost 1.47.0 6055 unqualified sqrt() fails to compile on SunCC/SunOS uBLAS Boost 1.47.0 To Be Determined Bugs Gunter new 2011-10-25T10:34:51Z 2011-10-25T10:38:54Z "Compiling uBlas' test_complex_norms on SunOS with SunCC: {{{ ] sunCC -library=stlport4 -I../ ../libs/numeric/ublas/test/test_complex_norms.cpp ""../libs/numeric/ublas/test/test_complex_norms.cpp"", line 37: Error: The function ""sqrt"" must have a prototype. ""../libs/numeric/ublas/test/test_complex_norms.cpp"", line 37: Error: The function ""sqrt"" must have a prototype. ""../libs/numeric/ublas/test/test_complex_norms.cpp"", line 65: Error: The function ""sqrt"" must have a prototype. ""../libs/numeric/ublas/test/test_complex_norms.cpp"", line 65: Error: The function ""sqrt"" must have a prototype. 4 Error(s) detected. }}} The standard math header included here - - does not inject math functions into the global namespace. The only standard way to use these functions (sqrt included) is via std:: namespace. All the uses of sqrt should be converted to std::sqrt, otherwise compilers with strictly conforming STLs (like SunCC -stlport4) will not be able to compile. std::sqrt works fine with all the compilers I tried (SunCC, g++). (suggested patch attached)" Fedor Sergeev Boost 1.47.0 6056 units/test_output: unqualified sqrt() fails to compile on SunCC/SunOS units Boost 1.47.0 To Be Determined Bugs Matthias Schabel new 2011-10-25T10:59:36Z 2011-10-25T11:02:26Z "Compiling Boost/units test_output on SunOS with SunCC: {{{ ] sunCC -library=stlport4 -I../ ../libs/units/test/test_output.cpp ""../libs/units/test/test_output.cpp"", line 242: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 242: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 336: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 336: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 384: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 384: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 393: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 393: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 394: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 394: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 395: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 395: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 396: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 396: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 397: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 397: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 413: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 413: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 414: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 414: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 415: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 415: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 416: Error: The function ""pow"" must have a prototype. ""../libs/units/test/test_output.cpp"", line 416: Error: The function ""pow"" must have a prototype. 24 Error(s) detected. }}} The standard math header included here - '''''' - does not inject math functions into the global namespace. The only standard way to use these functions (pow included) is via std:: namespace. All the uses of pow should be converted to std::pow, otherwise compilers with strictly conforming standard headers (like SunCC) will not be able to compile. std::pow works fine with all the compilers I tried (SunCC, g++). (suggested patch attached) " Fedor Sergeev Boost 1.47.0 6063 resize does not offset rectangles (etc.) correctly or crashes polygon Boost 1.47.0 To Be Determined Bugs Andrii Sydorchuk assigned 2011-10-26T21:18:46Z 2014-02-10T22:06:28Z "When using the 'corner_fill_arc' parameter to polygon_set_concept::resize(), a minkowski sum using a polygonalized circle is used to get the offset shape. A symptom of the problem is demonstrated by the following code: {{{ { polygon_set_data ps1, ps2, ps3; ps1.insert(rectangle_data(0, 0, 50, 50)); ps2.insert(rectangle_data(0, 0, 50, 50)); ps3.insert(rectangle_data(0, 0, 50, 50)); std::cout << ""rect before resize: "" << ps1 << std::endl; ps1.resize(6, true, 0); ps2.resize(6, true, 5); ps3.resize(6, true, 6); rectangle_data ps1_extents, ps2_extents, ps3_extents; extents(ps1_extents, ps1); extents(ps2_extents, ps2); extents(ps3_extents, ps3); std::cout << ""extents of resized rect with '0' (4) segments in circle: "" << ps1_extents << std::endl; std::cout << ""extents of resized rect with 5 segments in circle: "" << ps2_extents << std::endl; std::cout << ""extents of resized rect with 6 segments in circle: "" << ps3_extents << std::endl; } }}} If I put this at the end of the gtl_boost_unit_test.cpp, I get the following output: {{{ rect before resize: Polygon Set Data { <0 0, 50 0>:1 <50 0, 50 50>:-1 <0 50, 50 50>:-1 <0 0, 0 50>:1 } extents of resized rect with '0' (4) segments in circle: -5 54 -5 54 extents of resized rect with 5 segments in circle: -6 54 -6 55 extents of resized rect with 6 segments in circle: -6 55 -6 56 }}} This shows that the extents of the offset shape vary as the number of segments does - which should not be the case! The extents should all be: -6 56 -6 56 ---- The problem (to my eyes) is that the polygonalized circle does not generally have the right shape to get proper offsets in axis-oriented directions, so the offset is basically multiplied by some factor of sqrt(2). Attached is an image of the circle generated with num_circle_segments=16. The radius of the circle - i.e. distance from center to each vertex - is 2. The grid spacing is 1. As can be seen, the top/bottom and left/right sides of the circle do not lie on the grid. If the circle started with a vertex at(0,2) this would not occur and one would presumably get proper offsets in axis-aligned directions. Alternately one could offset all the vertices slightly farther, but this would offset some vertices farther than desired. I would guess the fix is to change the behaviour of make_arc(), which generates these points, but I'm not sure exactly what the original author's intent was - so maybe just using a new function would be best (after all, the complexity of make_arc is overkill when you're generating a simple full circle) ---- Another problem is that the behaviour of the 'corner_fill_arc' parameter is not really well described. Using this gives much more than corner-filling behaviour - it gives different offsets in different directions. I would suggest explaining it as it is - a minkowski sum with a polygonalized circle, with all that implies. E.g. for a 45-degree segment the offset will differ from a 90-degree segment unless you pick the right value of num_circle_segments. Maybe a more comprehensible solution would be to implement corner rounding by the intersection of the normal resize()d shape (as given by corner_fill_arc=false) with the resize()d shape given by corner_fill_arc=true with a larger 'resizing' (picked so that the minimum resizing equals the original resizing). This would only affect corners, instead of the whole shape. " dbfaken@… Boost 1.47.0 6065 Accessing Windows paths with non-ANSI characters fails with g++ filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-10-27T13:20:17Z 2011-10-27T13:20:17Z "For example, the tut5 example in Boost.Filesystem's tutorial does not work with g++ 4.4.1 (it fails to create the filenames with smileys), but that example does work with Visual C++ 10.0. ""ANSI"" here refers to the process' ""ANSI codepage"". By default in a US or Western European Windows installation that's codepage 1252, Windows ANSI Western. Cause: Boost.Filesystem uses extensions in the Dinkumware standard library implementation to provide general Unicode access to paths in Windows. g++'s standard library lacks those extension as of version 4.4.1 (and probably up to and including the latest version). Extending the g++ standard library in a similar way as Dinkumware was discussed in June 2011, , but as far as I know nothing more came of that. Boost.Filesystem v2 worked around the g++ implementation by using Windows short filenames and the Windows API-funcion CreateFile for creation of files. One problem is that the user IN PRINCIPLE can turn off generation of short filenames as a marginal optimization. However, Windows uses short filenames in the registry, reportedly MSI (the Microsoft Installer) uses short filenames, etc., so it's a very unlikely scenario. In the unlikely event that a user does turn off short names, then programs using the v2 workaround will fail in the same way as if they didn't have the workaround, i.e. as currently. " alf.p.steinbach@… Boost 1.47.0 6066 Getting back std::string from a utree string node throws std::bad_cast spirit Boost 1.47.0 To Be Determined Bugs Joel de Guzman new 2011-10-27T13:50:21Z 2011-10-27T13:50:21Z "When using: std::string s1(""test""); boost::spirit::utree u = s1; Either of: std::string s2 = u.get(); or std::string s2 = u.get(); fail with a ""std::bad_cast"" thrown. Proceeding with: boost::spirit::utf8_string_range_type rt = u.get(); std::string s2(rt.begin(), rt.end()); works fine... Please see attached file for a complete example." Rémy Chibois Boost 1.47.0 6070 extends::operator() and operator= eagerly compute return type can result in hard error proto Boost 1.47.0 Boost 1.48.0 Bugs Eric Niebler new 2011-10-29T04:21:54Z 2011-10-29T04:21:54Z "In the cases when unary operator() and operator= are invalid in a particular domain, the return types of extends::operator() and operator= should not be computed. (Well, ideally, those functions shouldn't exist at all, but we live in an imperfect world.) Trouble is, as soon as the extends template is instantiated, the return types for those functions are eagerly computed, causing the generator to operate on a type that it may not be able to handle. This can cause a hard error. See http://lists.boost.org/proto/2011/10/0595.php for a full description of this issue. The attached patch addresses the issue. It may have compile time implications, though." Eric Niebler Boost 1.47.0 6072 Bad iterator difference for m.begin1() - m.end1() in ublas uBLAS Boost 1.47.0 To Be Determined Bugs Gunter new 2011-10-30T12:20:23Z 2011-10-30T12:20:23Z "In functional.hpp at a couple of places, for example: static BOOST_UBLAS_INLINE difference_type distance_i (difference_type k, size_type /* size_i */, size_type size_j) { return size_j != 0 ? k / size_j : 0; } k [ / | % ] size_[ i | j ] is used, where k is difference_type (signed), size_i|j is size_type (unsigned). This results in promoting k to unsigned, and can yield very strange results when k is negative. For example, m being a size 2x2 ublas::matrix, m.begin1() - m.end1() yields 2147483646 instead of -2. Putting a static_cast(size_i|j) in functional.hpp seems to solve the problem." Robin Palotai Boost 1.47.0 6097 wrong filesystem::path::stem() and ..::extension() documentation filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2011-11-06T09:07:01Z 2012-08-15T20:13:21Z "At [http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/reference.html] we can see that path::stem is declared as {{{ path stem(const path& p) const; }}} while in reality it does not take any arguments. Same problem with extension(). " anonymous Boost 1.47.0 6101 overhead with creating multi_array_ref with GCC 3.4.6 multi_array Boost 1.47.0 To Be Determined Bugs Ronald Garcia new 2011-11-07T08:53:09Z 2011-11-07T08:53:09Z "We spotted this with profiler and had to switch from boost::const_multi_array_ref to just std:pair of pointers. GCC 3.4.6 generates huge code for this primitive function (to represent a raw pointer as a 1D-array), comparing to GCC 4.4.4: {{{ boost::const_multi_array_ref make(const int* begin, const boost::array& size) { return boost::const_multi_array_ref(begin, size); } }}} The generated code and compilation options are attached." Maxim Yanchenko Boost 1.47.0 6122 split_unix() strips an empty quoted string. program_options Boost 1.47.0 To Be Determined Bugs Vladimir Prus new 2011-11-13T15:38:25Z 2011-11-13T15:38:25Z "the split_unix() strips any empty string from input, e.g.: {{{ input = ""path_to_exec arg0 \""\"" arg1""; result vector: [0] = ""path_to_exec"" [1] = ""arg0"" [2] = ""arg1"" }}} " pluto@… Boost 1.47.0 6128 rolling_variance addition accumulator Boost 1.47.0 To Be Determined Bugs Eric Niebler new 2011-11-16T16:50:52Z 2014-06-26T19:19:44Z "LS, I have just finished writing an implementation and test of a rolling_variance which I would be happy to contribute to the framework. It includes a redone version of rolling_mean which avoids potential overflow and accuracy issues. The rolling_variance currently returns zero when there are less than 2 samples available. I'd be happy to do assist to make this fit the accumulator framework better and I include a first draft of the code. Nothing spectacular, but I have not seen the 'rolling' version being published anywhere in the exact form needed, making this non-trivial to implement anyway. - Pieter" Pieter Ober Boost 1.47.0 6140 "error: ""MSVC_WORKAROUND_GUARD"" is not defined" parameter Boost 1.47.0 Boost 1.49.0 Bugs Daniel Wallin new 2011-11-18T11:27:37Z 2012-02-05T04:33:03Z "{{{ boost/parameter/aux_/unwrap_cv_reference.hpp:47:1: error: ""MSVC_WORKAROUND_GUARD"" is not defined boost/parameter/aux_/unwrap_cv_reference.hpp:47:1: error: ""MSVC"" is not defined }}} There is a problem in boost/parameter/aux_/unwrap_cv_reference.hpp at line 47. It contains the following code: {{{ #if BOOST_WORKAROUND(MSVC, == 1200) }}} but preprocessing fails with the errors above. I checked all boost header files and even documentation for boost/detail/workaround.hpp says, that correct form must be: {{{ #if BOOST_WORKAROUND(BOOST_MSVC, == 1200) }}} After this change, preprocessing is ok. There are no other occurrences of this bug in boost 1.47.0. This bug is present also in boost 1.48.0. Should you need more information, just ping me. Ivo Raisr " Ivo Raisr Boost 1.47.0 6142 boost::mpl/has_xxx.hpp gives several errors mpl Boost 1.47.0 Boost 1.49.0 Bugs Aleksey Gurtovoy new 2011-11-18T13:04:39Z 2015-02-17T21:09:23Z "when using boost 1.47.0 with gcc 4.1.2 and -Wundef -Werror, it gives the following errors {{{ boost/mpl/has_xxx.hpp:344:9: error: ""BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION"" is not defined boost/mpl/has_xxx.hpp:357:9: error: ""BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES"" is not defined mpl/has_xxx.hpp:386:9: error: ""BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION"" is not defined boost/mpl/has_xxx.hpp:459:8: error: ""BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE"" is not defined }}} This problem has been already addressed by bug report 4666, but apparently its part for MPL has been forgotten. Therefore I would like to resurrect this problem again. Either the logic of defining these four #define's needs to be revisited in the header file, or their usage must be rewritten to check whether the #define is defined at all. For the latter case, I'm attaching a patch. Should you need more information, just ping me. Ivo Raisr" Ivo Raisr Boost 1.47.0 6188 boost directory_iterator construct throw segmentation fault filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes assigned 2011-12-01T04:13:41Z 2012-01-22T15:50:02Z Hi, if i view content of directory in ubuntu only i get a segmentation fault it allways happents in (/proc) directory. anonymous Boost 1.47.0 6280 numeric_cast throws on exactly representable conversion numeric Boost 1.47.0 To Be Determined Bugs Douglas Gregor new 2011-12-16T21:53:37Z 2016-06-06T19:21:07Z "If a double or float representing the smallest possible value of int64_t is cast to int64_t using numeric_cast, an exception is thrown saying that a negative overflow has occured. I would expect the cast to work, since the value is exactly representable in the target type. Since the absolute value is a power of two, there should not be any error in the floating point representation. This is also reproducable in trunk, according to VeXocide. I found the problem in Boost 1.47.0 on Windows, using MinGW 4.5.2." Simeon Maxein Boost 1.47.0 6446 Mulicast receiver does not work asio Boost 1.47.0 To Be Determined Bugs chris_kohlhoff reopened 2012-01-26T10:05:16Z 2015-10-31T00:19:44Z "Quickfast 1.4 uses Boost 1.47.0 to receive FAST Marketdata via Multicast. We are developing an EBS (Eurex) Market Data Feed on Red Hat Linux 5.7 64 Bit. Starting the InterpretApplication from quickfast no data are received. Starting in parallel a Java based multicast reader, then the data are then received in the InterpretApplication. I have also tried it with the boost test program: http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/example/multicast/receiver.cpp with the same behaviour best regards Dieter" dieter.mayer@… Boost 1.47.0 6496 interval equality operator throws interval Boost 1.47.0 To Be Determined Bugs Boris Gubenko new 2012-01-30T20:02:50Z 2012-01-30T20:05:38Z "the following code throws: boost::numeric::interval intv(1.0, 2.0); boost::numeric::interval intv2 = intv; bool b = (intv == intv2); bug or my fault?" gast128 Boost 1.47.0 6512 Find a framework directory on darwin not work python USE GITHUB Boost 1.47.0 To Be Determined Bugs Vladimir Prus new 2012-02-02T10:33:58Z 2012-02-02T18:04:19Z "patch for '''python.jam''' {{{ 866c866 < local framework-directory = $(libraries[-1]) ; --- > framework-directory = $(libraries[-1]) ; }}} Sorry, my English is very bad to explain more, patch should fix it." iinik@… Boost 1.47.0 6561 pool.free() crashes if given a null pointer pool Boost 1.47.0 To Be Determined Bugs John Maddock new 2012-02-15T15:02:27Z 2018-05-12T21:30:27Z "The documentation states that the pointer given to pool.free() should be a pointer returned by pool.malloc(). However, if pool.malloc() fails and return a null value, calling pool.free() with the returned value does crash... It would be nice if pool.free() did not crash given a null pointer. Example crash : {{{ pool.free(pool.malloc()); }}} Regards" Étienne Dupuis Boost 1.47.0 6587 pb : tuple_basic.hpp 396 eror c2678 tuple Boost 1.47.0 To Be Determined Bugs Joel de Guzman new 2012-02-21T13:34:57Z 2012-04-26T06:37:02Z "C:/Program Files (x86)/boost/boost_1_47\boost/tuple/detail/tuple_basic.hpp(396): error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const std::_Smanip<_Arg>' (or there is no acceptable conversion) " hoel.langouet@… Boost 1.47.0 6970 Boost Wave incompatible with unicode paths on Windows wave Boost 1.47.0 To Be Determined Bugs Hartmut Kaiser new 2012-06-07T04:40:16Z 2012-06-07T04:40:16Z "Boost::Wave frequently casts boost::filesystem::path to std::string, which transforms all unicode characters to '?'. For example, in cpp_context.hpp / init_context(), line 331, but there are many other instances. I suppose that the fix is to just use boost::filesystem::path at all times for paths, instead of converting to std::string and back, or to explicitly convert to utf-8 before converting to string. I mark this bug as a showstopper because it makes the Wave library unusable for projects that may be deployed on Windows computers in a non-English locale, or with non-ASCII usernames or filenames." david@… Boost 1.47.0 7160 BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG and DATE_TIME_NO_DEFAULT_CONSTRUCTOR date_time Boost 1.47.0 To Be Determined Bugs az_sw_dude new 2012-07-23T14:31:00Z 2012-11-17T16:00:00Z "I think I found a couple issues that are somewhat related to one another: '''Issue 1 - Defining BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG and using the ptime default constructor along with a thread causes runtime crash''' Steps to reproduce: 1. Define BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG (to use nanosecond resolution in a posix_time) in the pre-processor definitions (VS2008). 2. Create a boost::posix_time::ptime using the default constructor. 3. Create a boost::thread and call join. Example: {{{ #include #include class ThreadClass { public: ThreadClass() { } void operator()() { return; } }; int main() { boost::posix_time::ptime currentTimeUTC; ThreadClass tc; boost::thread t(tc); t.join(); //causes a runtime access violation here std::cout << ""done"" << std::endl; system(""pause""); return 0; } }}} '''Issue 2 - defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR causes compile-time error ""no appropriate default constructor available""''' In Issue 1 above, if you do not use a default constructor for a ptime, it seems to fix the issue. So I figured that was fine and I could prevent a user of my library from using that default constructor by defining DATE_TIME_NO_DEFAULT_CONSTRUCTOR. However, this now breaks at compile time: Steps to reproduce: 1. Use the same code as above, just for ease of use. 2. Define the pre-processor definition: DATE_TIME_NO_DEFAULT_CONSTRUCTOR. 3. Compile the program. 4. The following error is produced: error C2512: 'boost::posix_time::ptime' : no appropriate default constructor available e:\libraries\boost\boost_1_47\boost\thread\win32\thread_data.hpp 145 The issue, I believe, is that I am using a boost thread, which uses a ptime default constructor in its ''explicit timeout(sentinal_type)'' constructor when it doesn't set the ''abs_time'' member variable. I am using Boost 1.47, however looking at the latest boost code (1.51), I don't see any fixes for these issues that stand out (I am not able to try the latest versions of Boost, so I apologize if they are fixed, but I would think that they are not)" Ricky Stoneback Boost 1.47.0 7202 filesystem: Function remove_all_aux() with an argument of type system::error_code& can throw exception in case of filesystem error filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2012-08-07T14:11:02Z 2012-08-07T14:11:02Z "Function remove_all_aux() calls non-exception safe fs::directory_iterator constructor (without argument of system::error_code& type). For example, in case of free file descriptors lack in filesystem this constructor can throw an exception ""Too many open files"". The better way is to use exception-safe overload of fs::directory_iterator constructor (with argument of system::error_code& type). Possible fix is in attachment. The issue is actual for any version from 1.47 to 1.50" batsun@… Boost 1.47.0 7420 If I call managed_shared_memory() function when I create a lot of objects, it ocurrs error. interprocess Boost 1.47.0 To Be Determined Bugs Ion Gaztañaga new 2012-09-25T07:47:47Z 2012-10-09T21:42:00Z " I want to call managed_shared_memory(), when I create a lot of objects... however,it ocurrs error. In additional, it's too show to create shared memory and segment.. You can check a attached file. Should I call managed_shared_memory() only one time? please answer.. " anonymous Boost 1.47.0 7614 duplicate dosctring is generated for pure virtual methods python USE GITHUB Boost 1.47.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-10-31T07:41:34Z 2012-10-31T07:41:34Z "When defining a method through ""def"" and using ""pure_virtual"" (see below) the given docstring is duplicated in the result python definition. C++ class with pure-virtual method: =================================== class IOperation { public: virtual string AsString() = 0; } The wrapper to expose it to Python: =================================== class_ >(""IOperation"", ""docstring for class"", no_init) .def(""AsString"", pure_virtual(&IOperation::AsString), ""docstring for method AsString"") ; Result python class definition: =============================== class IOperation(instance): """""" docstring for class """""" def AsString(self): """""" docstring docstring """""" pass " tomer.spector@… Boost 1.47.0 7698 Boost directory iterator constructor crashes when folder gives input/output error filesystem Boost 1.47.0 To Be Determined Bugs Beman Dawes new 2012-11-15T13:34:43Z 2018-01-23T14:21:59Z "By using the directory iterator on a non accessible forlder under Linux, the following crash happens: #0 0x0000003064a329a5 in raise () from /lib64/libc.so.6 #1 0x0000003064a34185 in abort () from /lib64/libc.so.6 #2 0x0000003064a2b935 in __assert_fail () from /lib64/libc.so.6 #3 0x000000000043a7b5 in boost::shared_ptr::operator-> (this=0x7fffd216cf30) at /usr/include/boost/smart_ptr/shared_ptr.hpp:414 #4 0x00000000005e89f2 in boost::filesystem3::detail::directory_iterator_increment (it=..., ec=0x0) at libs/filesystem/v3/src/operations.cpp:1947 #5 0x00000000004363af in boost::filesystem3::directory_iterator::increment (this=0x7fffd216cf30) at /usr/include/boost/filesystem/v3/operations.hpp:630 #6 0x00000000005e8810 in boost::filesystem3::detail::directory_iterator_construct (it=..., p=..., ec=0x7fffd216cf40) at libs/filesystem/v3/src/operations.cpp:1918 #7 0x000000000054a120 in boost::filesystem3::directory_iterator::directory_iterator (this=0x7fffd216cf30, p=..., ec=...) at /usr/include/boost/filesystem/v3/operations.hpp:598 A sample code that generates the crash is the following: boost::system::error_code ec; boost::filesystem3::directory_iterator itr(dir_path, ec); Where the dir_path is a folder that is not accessible. Using the ls command from terminal on the same folder returns: input/output error If the error returned is permission denied, everything works fine. I triggered the input/output error using the curlftpfs library which mounts a ftp as a folder on the system. The permission denied error can be generated on the same folder using nfs share." cpl Boost 1.47.0 8936 month_iterator snaps-to-end when starting on the last day of a 30 day month date_time Boost 1.47.0 To Be Determined Bugs az_sw_dude new 2013-07-29T17:31:03Z 2013-08-03T16:34:26Z "I am using the month_iterator to iterate months, the snap-to-end works fine when I start on a month with 31 days, however if my start date is 2013-11-30 for example, when I iterate forward a month this becomes 2013-12-31. This is not what I expect as I never started on 31 and so it should go to 2013-12-30. I am using boost 1.47, are you aware of this behavior and has it been resolved in a later version? Thanks" kieran.jeffrey-smart@… Boost 1.47.0 10223 Destructor of boost::mpi::environment should not throw exception mpi Boost 1.47.0 To Be Determined Bugs Matthias Troyer new 2014-07-22T01:41:31Z 2014-07-22T01:41:31Z "The destructor of boost::mpi::environment uses the BOOST_MPI_CHECK_RESULT macro to invoke MPI_Finalize. BOOST_MPI_CHECK_RESULT(MPI_Finalize, ()); If MPI_Finalize does not return MPI_SUCCESS, the macro will throw boost::mpi::exception. However, it is not a good idea for a destructor to throw. I suggest the destructor just call MPI_Finalize() without using the MACRO" anonymous Boost 1.47.0 5390 Add a rule to Boost Build to just run the C++ preprocessor build Boost 1.47.0 To Be Determined Feature Requests Vladimir Prus new 2011-03-30T21:03:45Z 2011-04-07T23:41:22Z There is no rule to run the C++ preprocessor in Boost Build I suggest a rule to do this should be added. eldiener@… Boost 1.47.0 5452 boost::mpl::plus changes type mpl Boost 1.47.0 To Be Determined Feature Requests Joel Falcou new 2011-04-10T21:35:08Z 2011-04-10T21:35:08Z "The return type of boost::mpl::plus seems to be always integral_c independent of the input types. This is very unconvenient. please make plus, long_<1> >::type return long_<2> " Peter Foelsche Boost 1.47.0 5698 Contains parameter parameter Boost 1.47.0 To Be Determined Feature Requests Daniel Wallin new 2011-07-14T14:52:50Z 2011-07-14T14:52:50Z "I tested this {{{ template struct contains_parameter : mpl::not_< typename boost::is_void< typename parameter::binding< Args, Tag, void >::type >::type > {}; }}} which first appeared here: http://boost.2283326.n4.nabble.com/boost-users-Boost-Parameter-ArgumentPack-is-type-contained-td3415943.html and would like to suggest it as an addition." er.ci.2020@… Boost 1.47.0 5743 Serializable boost::multi_array class multi_array Boost 1.47.0 To Be Determined Feature Requests Ronald Garcia new 2011-07-30T14:02:58Z 2012-11-17T22:04:26Z "An interface for Boost.Serialization library. I tried to make it myself, but as an external user is difficulty to understand safely the concepts and relevant attributes to serialize. Thank you." Júlio Hoffimann Boost 1.47.0 5745 Use native typeof support for Oracle Solaris Studio C++ compiler typeof Boost 1.47.0 Boost 1.48.0 Feature Requests Peder Holt assigned 2011-08-01T14:51:58Z 2011-08-09T09:50:47Z "Oracle Solaris Studio (former !SunStudio) C++ compiler supports native typeof since version 5.9. At the same time, support for typeof emulation is not so good (many compilation errors). It would be beneficial for Boost users if Boost used native typeof instead of emulation. Here is proposed patch: {{{ *** boost/typeof/typeof.hpp 2011-08-01 18:46:33.411406362 +0400 --- boost/typeof/typeof.hpp.new 2011-08-01 18:46:43.680746049 +0400 *************** *** 155,160 **** --- 155,176 ---- # else # error native typeof is not supported # endif + #elif defined(__SUNPRO_CC) + # if (__SUNPRO_CC < 0x590 ) + # ifdef BOOST_TYPEOF_NATIVE + # error native typeof is not supported + # endif + # ifndef BOOST_TYPEOF_EMULATION + # define BOOST_TYPEOF_EMULATION + # endif + # else + # ifndef BOOST_TYPEOF_EMULATION + # ifndef BOOST_TYPEOF_NATIVE + # define BOOST_TYPEOF_NATIVE + # endif + # define BOOST_TYPEOF_KEYWORD __typeof__ + # endif + # endif #else //unknown compiler # ifndef BOOST_TYPEOF_NATIVE # ifndef BOOST_TYPEOF_EMULATION }}}" Maxim Kartashev Boost 1.47.0 5806 Property tree supporting custom allocators such as the boost pool ones property_tree Boost 1.47.0 To Be Determined Feature Requests Sebastian Redl new 2011-08-23T10:15:35Z 2015-01-21T13:14:19Z "I'm currently working on a c++ extension based on custom allocators and i wanted to use property_tree in my serialization section as it seems very well designed, but i'm stuck with the fact that basic_ptree doesn't allow an allocator type to be passed as argument. It would be very nice to add custom allocation to property_tree so that we can : first customize internal ptree allocations and then use customized version of STL with it. regards. " vivien.millet@… Boost 1.47.0 5882 Add _GLIBCXX_DEBUG for on in gcc.jam build Boost 1.47.0 To Be Determined Feature Requests Vladimir Prus new 2011-09-09T17:12:40Z 2012-08-09T07:39:24Z "Right now runtime-debugging does zilch for GCC, which is pretty nonsensical. I'd like to see: toolset.flags gcc.compile OPTIONS on : _GLIBCXX_DEBUG ;" matt.chambers42@… Boost 1.47.0 5889 Add way to get the path to the running executable filesystem Boost 1.47.0 To Be Determined Feature Requests Beman Dawes new 2011-09-10T21:40:26Z 2016-04-20T15:13:33Z "The filesystem component is missing a function to return the path to the currently running executable. This is useful for finding associated program files without resorting to e.g. environmental variables. A discussion of the current system-specific ways to do this: http://stackoverflow.com/q/1023306 and http://stackoverflow.com/q/933850 An example of a similar function exists in the Qt library: QCoreApplication::applicationFilePath()" ergosys@… Boost 1.47.0 5896 Range directory iterators filesystem Boost 1.47.0 To Be Determined Feature Requests Beman Dawes assigned 2011-09-13T22:42:39Z 2012-04-19T15:26:00Z "With C++11 now finalized as a standard, and compilers being more compliant every day, it makes sense to have range-based versions of the directory_iterator classes. This would make it much easier to use the range-based for loop, as well as Boost.Range functionality. Basically, it could just be a couple of helper functions that create a boost::iterator_range instance." jmckesson@… Boost 1.47.0 5925 shared_array: size, begin, end, data? smart_ptr Boost 1.47.0 To Be Determined Feature Requests Peter Dimov new 2011-09-21T21:09:23Z 2011-09-21T21:09:23Z "Could the size, begin, end and data member functions be added to shared_array? It'd be quite handy to have size() available." olafvdspek@… Boost 1.47.0 5947 Use CLOCK_PROCESS_CPUTIME_ID on platform providing them chrono Boost 1.47.0 To Be Determined Feature Requests viboes assigned 2011-09-27T11:30:41Z 2012-06-03T14:11:46Z "The posix implementation of process real cpu clock uses the times() function. The resolution is better if we use ::clock_gettime( CLOCK_PROCESS_CPUTIME_ID, &ts ); on platforms for which the CLOCK_PROCESS_CPUTIME_ID is supported. " viboes Boost 1.47.0 5949 bootstrap.sh and -isysroot under MacOSX Building Boost Boost 1.47.0 To Be Determined Feature Requests new 2011-09-27T16:05:26Z 2011-09-27T16:05:26Z "bootstrap.sh (which needs to made executable) eventually calls tools/build/v2/engine/build.sh, which in turn calls 'cc'. On the Mac to be able to run 'cc' without much fuss you need to pass the -isysroot option with th proper Developer SDK directory. Alas, build.hs does not foresee the use such option. I'd make much simpler the life on MacOSX circumventing Xcode. Marco Antoniotti " Marco Antoniotti Boost 1.47.0 5970 Support chaining crc Boost 1.47.0 To Be Determined Feature Requests Daryle Walker new 2011-10-03T13:10:47Z 2011-10-03T13:10:47Z "Could the process functions return *this such that chaining is possible? For example: boost::crc_32_type().process_bytes(d, cb_d).get_checksum(). " Olaf van der Spek Boost 1.47.0 5992 opening wide character string paths in memory-mapped file interprocess Boost 1.47.0 To Be Determined Feature Requests Ion Gaztañaga new 2011-10-07T15:08:11Z 2016-02-13T19:10:22Z "Without support for wide character string paths, we cannot easily open files with Unicode paths in Windows. This makes interprocess/file_mapping practically unusable for Windows programming. A suggestion might be to abstract out the use of raw strings for paths by using filesystem. Without the fix, we are using Win32 API to open memory-mapped files and forking the code for other platforms." Jim Park Boost 1.47.0 5997 Listening on multiple endpoints (doc / acceptor group) asio Boost 1.47.0 To Be Determined Feature Requests chris_kohlhoff new 2011-10-08T11:11:44Z 2011-10-08T11:11:44Z "Could you add an example of listening on multiple endpoints? I assume this requires multiple acceptors. Those could be stored in a ptr container. Maybe an acceptor group (like thread group) might be useful?" Olaf van der Spek Boost 1.47.0 6018 Add touch() and create_file() functions filesystem Boost 1.47.0 To Be Determined Feature Requests Beman Dawes assigned 2011-10-13T12:38:26Z 2011-10-13T12:38:51Z "A function with the functionality of the POSIX touch utility would be a great convenience. It meets both the need to update times and the need to create a file. OTOH, it is a bit of a mishmash of logically separate features. Maybe what is really needed is a create_file() function that errors if the file already exists and a touch() function that errors if the file doesn't exist. Alternatively, both could return a bool, true if successful, and not consider it an error if the file, respectfully, already/doesn't exist. " Beman Dawes Boost 1.47.0 6073 typed subarray from incompatible/raw memory multi_array Boost 1.47.0 To Be Determined Feature Requests Ronald Garcia new 2011-10-31T09:28:39Z 2011-10-31T09:28:39Z "Consider this example: {{{ struct A { double x, y; }; struct B : A { double z; }; struct C { A a; double z; }; struct D { double z; A a; }; struct unknown { ...; A a; ....; }; }}} Let's say I have in memory an n-dimensional array of B, or C, or D, or even unknown structure where I know only total size of the element and offset of A inside it, both in run-time (e.g. a binary file produced by NumPy.mmap). What I need is a multi_array_view that could behave as an multi_array of A, given the sizeof of ""real"" element containing A, and offset of A inside it, like this: {{{ void* p = mmap(...); size_t el_size = size_of_element_in_p; size_t offset = offset_of_A_inside_element; boost::multi_array::multi_array_typed_view my_view(p, extents, el_size, offset ); }}} Strided view (boost::detail::multi_array::multi_array_view) could do the job in simple cases when size of ""real"" element is a multiple of sizeof(A), but not in the above case." Maxim Yanchenko Boost 1.47.0 6075 Can we add policy based disabling of error checking inside math distributions? math Boost 1.47.0 To Be Determined Feature Requests John Maddock new 2011-10-31T13:41:37Z 2011-10-31T13:41:37Z "..from the boost dev mailing list.. I wrote: Would it be possible to move the detail::check_scale(d) etc into the Policy class? That way I could provide a different policy that get's eliminated compile time via an implementation like ""inline policy::check_scale(d){return;}"" John wrote: I don't think we could move all the checks inside the policy class as each distribution is more or less different, but we could pass a compile time param to the checking functions to have the same effect. In fact can you file a bug report so I don't forget?" thijs@… Boost 1.47.0 7405 Coercion to multi_array_ref from array_view multi_array Boost 1.47.0 To Be Determined Feature Requests Ronald Garcia new 2012-09-21T22:10:52Z 2012-09-21T22:10:52Z "I'd like to have functions that can be passed references to arrays of a given storage type and rank. Take a look at the following code: template void foo_duck(A ma) { ma[0][1] = 1.0; } typedef boost::multi_array_ref ref_array_2d; void foo_ref(ref_array_2d ma) { ma[0][1] = 1.0; } int main() { typedef boost::multi_array array_3d; typedef boost::multi_array_types::index_range range; array_3d A(boost::extents[3][4][4]); array_3d::array_view<2>::type slice = A[boost::indices[1][range()][range()]]; foo_duck(slice); foo_ref(slice); return 0; } foo_duck works fine, but foo_ref does not; I get a compiler error (gcc 4.6.3, boost 1.47) like so: ""error: could not convert ‘slice’ from ‘boost::multi_array::array_view<2ul>::type {aka boost::detail::multi_array::multi_array_view}’ to ‘ref_array_2d {aka boost::multi_array_ref}’"" I suspect, without having looked at the code itself, that multi_array_ref was never designed to be coerced from array_view, but I don't understand why. Is there a solution to my foo_ref problem that doesn't involve moving all such functions to headers and templating them?" Jason Sewall Boost 1.47.0 7759 Support ; as comment character in config file program_options Boost 1.47.0 To Be Determined Feature Requests Vladimir Prus new 2012-12-03T17:09:12Z 2012-12-03T17:09:12Z "Currently # is hardcoded as comment character, but for ini file, both # and ; are widely used as comment characters. Because program_options doesn't allow a non-section line without =, the config file parsing will fail if there are ; comments which doesn't have = in it. For example, this line will fail to parse: ; This is a comment The easiest fix will be adding check of ; in common_config_file_iterator::get() Thanks." uniwangshan@… Boost 1.47.0 5340 Patch to support concrete base classes becomming abstract classes serialization Boost 1.47.0 To Be Determined Patches Robert Ramey new 2011-03-19T00:26:28Z 2014-08-13T12:24:35Z "If you are serializing a pointer to a polymorphic object as a pointer to its base class, and that base class is concrete, it will fail to load if that base class later becomes abstract. That is because the serializer for the base class is automatically registered if it is concrete, but not if it is abstract, making a mismatch in the class id for the object. I have attached a patch that detects this case and registers the serializer for the abstract class if it occurs. This patch contains multiple pieces. Fist, basic_iarchive.cpp is patched in load_pointer() to detect that mismatch in class ids and register the serializer. Second, iserializer.hpp is patched so that register_type() for abstract classes returns the proper pointer serializer. (though it isn't directly registered) Third, pointer_iserializer::load_object_pointer() now uses templates to split into two implementations: one for abstract and one for non-abstract classes. The abstract implementation throws an archive_exception, to which an abstract_class_error field has been added. This patch does not handle going from an abstract base class to a concrete base class, as that would break backwards compatibility. However, it should be more common to go from concrete to abstract than the other way around, and having this support can solve a lot of debugging headaches when it comes up. (headaches that prompted me adding this support) I have tried to keep consistent with your coding style and techniques to make it as seamless to patch as possible." Aaron Barany Boost 1.47.0 5341 Patch to improve shared library behavior with serialization serialization Boost 1.47.0 To Be Determined Patches Robert Ramey reopened 2011-03-19T00:34:50Z 2014-07-17T08:13:21Z "There are some issues that I have come across when using serialization with objects across shared libraries. I have made a patch that resolves the issues I have encountered, and will hopefully make serialization finally be friendly across multiple shared libraries. The primary issue that I had was if there is a serializer created for an object, there can be some shared libraries that have a pointer serializer registered, and others that don't. This is actually quite common if you have the base class of an object declared in a separate library, since serializng a base class with base_object doesn't instanciate a pointer serializer. Here is one case where this would prove to be an issue. Let's say the first time you wrote out a type it had no pointer serializer registered. It would write in the type info that tracking is not required and write out the object. Later, an object of the same type is written out from another shared library, but in this library a pointer serializer is registered. In this case, it will write out the object id, followed by the object itself. When that file is read in, it will read that the type has tracking disabled with the type information, and read the first instance just fine. However, on the second instance it still thinks that tracking is disabled, and will fail to read in the object id, even though it was written out. I solved this issue by re-writing the archive serializer map to manage both pointer and non-pointer serializers. The map itself stores the non-pointer serializers in a multiset, so the serializers for all shared libraries are stored. When a iserializer/oserializer is constructed it is registered for that object type, and when it is destructed it is unregistered. pointer_iserializer/pointer_oserializer also register and unregister themselves with the map, but the behavior is different. What it will do is look at all non-pointer serializers of the proper type currently registered, and for any that don't have any pointer serializer registered for them it will use the pointer serializer currently being registered. When a pointer serializer is unregistered, it will search for an equivalent pointer serialier registered for another serializer for the same type (that was instanciated in a different library), or NULL if there is no such pointer serializer, and replace all instances of the pointer serializer being unregistered with that. Additionally, if a non-pointer serializer is being registered, it will look for an existing pointer serializer for that type to use. (it will quickly be replaced if there is a pointer serializer for that type instanciated in that library) The effect at the end of the day is that for any given serializer, either all libraries or no libraries will have a pointer serializer registered for the corresponding non-pointer serializer. Since unregistration of pointer serializers tries to look for an equivalent to take its place, it should handle dynamic loading and unloading of libraries properly. Also, it should add no runtime cost during the actual usage of the serializers, only during the registration and unregistration. The other issue I was having was I needed to create my own archive, but there was no way to export the archive serializer map symbols unless I put it in the boost serialization library, since it used the BOOST_ARCHIVE_OR_WARCHIVE_DECL() to generate the dllexport/dllimport declspecs. I changed it to use a technique described here. (http://support.microsoft.com/kb/168958) This allows customization for whether the symbols are imported and exported for each instantioation of archive_serializer_map. I also had to change all of the current archives to use this new method to register the archive serializer map. I tried to keep consistent with your coding style and techniques. Since both this patch and the concrete to abstract patch I submitted earlier modify iserializer.hpp, I have also attached a combined patch that applies both." Aaron Barany Boost 1.47.0 5862 "broken links in ""New Iterator Concepts""" iterator Boost 1.47.0 To Be Determined Patches jeffrey.hellrung new 2011-09-03T16:50:29Z 2012-11-21T22:14:14Z "In [http://www.boost.org/doc/libs/1_47_0/libs/iterator/doc/new-iter-concepts.html New Iterator Concepts]: is:: [http://anubis.dkuug.dk/JTC1/SC22/WG21/docs/lwg-active.html#200 issue 200] let:: [http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#200 issue 200] is:: once [http://anubis.dkuug.dk/JTC1/SC22/WG21/docs/lwg-active.html#299 issue 299] is resolved let:: since [http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-closed.html#299 issue 299] has been resolved" Christopher Yeleighton Boost 1.47.0 5904 "Patch to suppress ""unreachable code"" warning from Visual Studio 2008/2010 (VC90/VC100)" iostreams Boost 1.47.0 Boost 1.48.0 Patches No-Maintainer new 2011-09-16T11:20:18Z 2011-09-19T18:35:00Z "Probably as a result of ticket #3311, Visual Studio correctly identifies unreachable code when instantiating a boost::iostreams::stream with a Device that doesn't support certain functionality (e.g. a write-only Sink). Since the relevant code is reachable for other kinds of Device, the simplest fix is to just suppress the warning. The equivalent warning for Borland is already suppressed in boost/iostreams/detail/config/disable_warnings.hpp. Code: {{{ #include #include #include boost::iostreams::stream< boost::iostreams::back_insert_device< std::deque< char > > > s; }}} Result (provided not /Od): {{{ 1>...\boost_1_47_0\boost\iostreams\detail\adapter\concept_adapter.hpp(77) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(259) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(260) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(261) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(263) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(266) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\adapter\concept_adapter.hpp(95) : warning C4702: unreachable code 1>...\boost_1_47_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(333) : warning C4702: unreachable code }}} Patch for boost/iostreams/detail/config/disable_warnings.hpp: {{{ 17a18 > # pragma warning(disable:4702) // Unreachable code. }}} Please would someone apply this for Boost 1.48.0? " gareth.sylvester-bradley@… Boost 1.47.0 5963 Patch [Fixes #5961]: Disallow comparisons of differing iterator types in ptr_container ptr_container Boost 1.47.0 To Be Determined Patches Thorsten Ottosen new 2011-09-29T14:10:28Z 2011-09-30T11:01:42Z "Patch removes support for comparing differing iterator types from ptr_container's void_ptr_iterator. The comparators in question are == != < <= > >=. Changes are: - Add container type template parameter to void_ptr_iterator. This is what ensures compared iterators of differing types are still for the same referenced container type. - Add self type as template argument to base class for containers ptr_array, ptr_circular_buffer, ptr_deque, ptr_list, ptr_set, ptr_multiset, ptr_unordered_set, ptr_unordered_multiset, and ptr_vector - Pass container type template parameter from sequence_config and set_config to iterator typedefs, from ptr_sequence_adapter to reversible_ptr_container, and from ptr_set_adapter and ptr_multiset_adapter through ptr_set_adapter_base to associative_ptr_container" Rob Desbois Boost 1.47.0 5996 "Warnings when compiled with ""-Wshadow""" ptr_container Boost 1.47.0 To Be Determined Patches Thorsten Ottosen new 2011-10-08T10:30:46Z 2012-04-27T07:37:28Z "g++ 4.4.5 reports warnings when compiles various components with ""-Wshadow"", files: {{{ boost/ptr_container/exception.hpp boost/ptr_container/detail/move.hpp boost/ptr_container/detail/static_move_ptr.hpp boost/ptr_container/detail/reversible_ptr_container.hpp boost/unordered/detail/equivalent.hpp boost/unordered/detail/buckets.hpp boost/unordered/detail/emplace_args.hpp boost/unordered/detail/unique.hpp boost/concept_check.hpp }}} Similar tickets: #5439, #4362, #4365 . Those warnings exists in both Boost 1.47.0 and svn trunk 74788, I attached a patch file against svn trunk 74788." Shuo Chen Boost 1.47.0 6109 Enable native typeof for IBMCPP typeof Boost 1.47.0 To Be Determined Patches Peder Holt new 2011-11-09T22:31:30Z 2014-07-22T00:02:36Z IBM XL C/C++ has native typeof support. hstong@… Boost 1.47.0 5443 Building multithreading (-mt) libs on Mac OS X 10.6 Getting Started Guide Boost 1.47.0 To Be Determined Support Requests Dave Abrahams new 2011-04-08T18:00:33Z 2011-04-09T23:24:00Z "The docu (http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html) states that mutli-threading libs will have the ""-mt"" suffix, but I cannot get such libs to build on my Mac OS X 10.6 (Intel Core 2 Duo). The build process seems to build multi-threaded libs because the directory it creates for itself is, for example: /tmp/boost/bin.v2/libs/regex/build/darwin-4.2.1/release/threading-multi/ But the only resulting binary in that dir is libboost_regex.dylib. Am I building the libs wrong, or is the docu wrong about the -mt suffix, or is this a Mac problem?" daniel@… Boost 1.47.0 5766 Uninitialized variable warnings with GCC 4.4.5-6 geometry Boost 1.47.0 To Be Determined Support Requests Barend Gehrels new 2011-08-09T12:41:52Z 2013-04-05T21:16:03Z "Uninitialized variable warnings with Redhat GCC 4.4.5-6 (x86-64), Boost r73613: In file included from /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/overlay.hpp:21, from /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:27, from /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/difference.hpp:14, from /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/geometry.hpp:47, from /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry.hpp:17, from /home/wash/hpx/examples/geometry/point_geometry/server/point.cpp:16: /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp: In member function ‘bool boost::geometry::detail::overlay::sort_on_segment_and_distance::operator()(const Indexed&, const Indexed&) const [with TurnPoints = std::deque >, std::allocator > > >, Indexed = boost::geometry::detail::overlay::indexed_turn_operation > >, Geometry1 = boost::geometry::model::polygon, true, true, std::vector, std::vector, std::allocator, std::allocator>, Geometry2 = boost::geometry::model::polygon, true, true, std::vector, std::vector, std::allocator, std::allocator>, bool Reverse1 = false, bool Reverse2 = false, Strategy = boost::geometry::strategy::side::side_by_triangle]’: /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: warning: ‘pi.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[1ul]’ may be used uninitialized in this function [-Wuninitialized] /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: note: ‘pi.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[1ul]’ was declared here /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: warning: ‘pi.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[0ul]’ may be used uninitialized in this function [-Wuninitialized] /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: note: ‘pi.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[0ul]’ was declared here /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: warning: ‘pj.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[1ul]’ may be used uninitialized in this function [-Wuninitialized] /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: note: ‘pj.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[1ul]’ was declared here /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: warning: ‘pj.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[0ul]’ may be used uninitialized in this function [-Wuninitialized] /shared/boost/trunk/stage/gcc-4.4.5-release/include/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp:114: note: ‘pj.boost::geometry::model::d2::point_xy::.boost::geometry::model::point::m_values[0ul]’ was declared here " Bryce Adelstein Lelbach Boost 1.47.0 5985 Quickbook needs Users Guide documentation quickbook Boost 1.47.0 To Be Determined Tasks Daniel James new 2011-10-06T11:24:47Z 2014-04-09T02:26:31Z "Quickbook is currently a disaster to learn to use. The markup itself seems easy, and the ""Chapter 33. Quickbook 1.5"" docs are fine as far as they go. But without a Users Guide, a new user is left groping in the dark. A Users Guide should answer the question ""How do I build my docs?"". It should begin with the simplest possible example .qbk and Jamfile, and then progress from there. It should include a description and examples of how to invoke bjam to build QB docs. This ticket is a superset of #1205" Beman Dawes Boost 1.48.0 6089 Non const & used in ptr_map::insert ptr_container Boost 1.48.0 To Be Determined Bugs Thorsten Ottosen new 2011-11-03T18:24:57Z 2017-01-17T22:15:34Z "The boost::ptr_map inserter takes a ""key_type &"" rather than a ""const key_type &."" This is annoying if you have a function that takes a const &. I've attached a patch which should fix the problem." jdoliner@… Boost 1.48.0 6145 MinGW / GCC 4.6.1 warns about conflicts between Boost.Thread and Boost.InterProcess (Win32 C API) interprocess Boost 1.48.0 To Be Determined Bugs Ion Gaztañaga new 2011-11-18T18:28:21Z 2014-11-06T04:14:10Z "I compile boost-1.48 with GCC 4.6.1 using MinGW-32 3.10 on Windows XP. My compiling options are : {{{ g++ -std=c++0x }}} I encounter the following conflicts : {{{ ~/boost-1.48/interprocess/detail/win32_api.hpp:808:116: warning: declaration of 'void* boost::interprocess::winapi::CreateMutexA(boost::interprocess::winapi::interprocess_security_attributes*, int, const char*)' with C language linkage [enabled by default] ~/boost-1.48/thread/win32/thread_primitives.hpp:119:55: warning: conflicts with previous declaration 'void* boost::detail::win32::CreateMutexA(boost::detail::win32::_SECURITY_ATTRIBUTES*, int, const char*)' [enabled by default] }}} {{{ ~/boost-1.48/interprocess/detail/win32_api.hpp:813:127: warning: declaration of 'void* boost::interprocess::winapi::CreateSemaphoreA(boost::interprocess::winapi::interprocess_security_attributes*, long int, long int, const char*)' with C language linkage [enabled by default] ~/boost-1.48/thread/win32/thread_primitives.hpp:120:55: warning: conflicts with previous declaration 'void* boost::detail::win32::CreateSemaphoreA(boost::detail::win32::_SECURITY_ATTRIBUTES*, long int, long int, const char*)' [enabled by default] }}} The problem looks like closed tickets #4217 and #5030. It looks like ""extern C"" modifier make the compiler to ignore namespace declarations, hence the conflicts. For example, discarding namespaces, '''Boost.Thread''' declares CreateMutexA() like this : {{{ extern ""C"" { struct _SECURITY_ATTRIBUTES; __declspec(dllimport) void* __stdcall CreateMutexA('''boost::detail::win32::_SECURITY_ATTRIBUTES'''*,int,char const*); } }}} whereas '''Boost.Interprocess''' declares it like this : {{{ struct interprocess_security_attributes { unsigned long nLength; void *lpSecurityDescriptor; int bInheritHandle; }; extern ""C"" __declspec(dllimport) void * __stdcall CreateMutexA('''boost::interprocess::winapi::interprocess_security_attributes'''*, int, const char *); }}} To avoid the compiler warnings, the same type should be used for the first parameter of CreateMutexA()." Cyril Othenin-Girard Boost 1.48.0 6150 [units] The Euro sign is not correctly encoded (in UTF8 or ISO-8859-1) in a source file units Boost 1.48.0 Boost 1.49.0 Bugs Matthias Schabel new 2011-11-19T19:35:54Z 2018-07-06T09:37:00Z "An [http://svn.boost.org/svn/boost/trunk/libs/units/example/autoprefixes.cpp example source file] contains the Euro currency symbol, but is encoded neither in UTF-8 nor in ISO-8859-x. Could you replace that wrongly encoded symbol with a standard one, e.g., UTF8 (i.e., €)? Among other things, that issue: * wrongly displays in Web browser (as seen [http://svn.boost.org/svn/boost/trunk/libs/units/example/autoprefixes.cpp here]) * triggers errors when performing RPM packaging " denis.arnaud_boost@… Boost 1.48.0 6155 VS2010 compile error in lambda, if posix_time.hpp is included. date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2011-11-20T13:13:21Z 2011-11-20T13:35:39Z "boost 1.46.1 compiles ok.[[BR]] boost 1.48 gives:[[BR]] ""error C2663: 'std::vector<_Ty>::at' : 2 overloads have no legal conversion for 'this' pointer"" See annotations in attached testcase. Compiler error?" fzuuzf@… Boost 1.48.0 6176 rolling_mean not as flexible as mean accumulator Boost 1.48.0 To Be Determined Bugs Eric Niebler new 2011-11-27T08:39:44Z 2011-11-27T08:39:44Z "The mean_impl struct has a SumFeature template parameters that allows it to be used to calculate the mean of weights and the mean of variates in addition to the standard mean. There is no corresponding template parameter for rolling_mean_impl, so it is less flexible. If this were fixed, it would be possible to add new accumulators such as rolling_mean_of_weights, rolling_mean_of_variates, analogous to mean_of_weights, mean_of_variates. " s.d.c.west@… Boost 1.48.0 6197 Maximum file name length for ODS-2 (OpenVMS) not mentioned in portability guide filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2011-12-02T10:40:43Z 2011-12-02T10:40:43Z "In the ""Path Name Protablity Guide"" there is a list of length limits for names in paths for different operating systems. There should also be mentioned that the standard OpenVMS file system (ODS-2) allows only 39 characters for the filename (and another 39 for the extension). There is exactly one header file in the current boost distribution which has more than 39 characters in the filename (Ticket #6196)." cmatuszewski Boost 1.48.0 6236 code_converter does not allocate second buffer iostreams Boost 1.48.0 To Be Determined Bugs Jonathan Turkanis new 2011-12-07T23:36:55Z 2011-12-07T23:40:04Z "The code_converter will not allocate the second buffer for bidirectional devices. The open method checks if (can_write::value && !is_double::value) but it should be if (can_write::value && is_double::value) " Steve Clementi Boost 1.48.0 6278 mem_fn has a different result_type bind Boost 1.48.0 To Be Determined Bugs Peter Dimov new 2011-12-16T10:54:46Z 2012-10-22T22:01:37Z "The following code does not compile: {{{ #!c++ /* All function objects returned by mem_fn expose a result_type typedef that represents the return type of the member function. For data members, result_type is defined as the type of the member. */ typedef int type_of_the_member; struct U { type_of_the_member m; }; template < class F > typename F ::result_type U_m (F const &t, U &u) { typedef typename F:: result_type r; typedef type_of_the_member r; typename F:: result_type r1; return t (u); } U u; int x ((U_m (::boost ::mem_fn (&U ::m), u))); }}} [http://codepad.org/1op6p2Mc codepad] says: ''error: conflicting declaration 'typedef type_of_the_member r' ''" giecrilj@… Boost 1.48.0 6295 Documentation Example Error asio Boost 1.48.0 To Be Determined Bugs chris_kohlhoff new 2011-12-19T11:06:05Z 2011-12-19T11:24:42Z "In the example documentation for the multicast sender in the asio section (http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio/example/multicast/sender.cpp), the code for sending the message in the handle_timeout( ... ) method instantiates a buffer by referencing directly the 'message_' member variable, which is a std::string. This results in a 'string is not dereferanceable' exception being thrown (on Windows anyway). If this is changed so that buffer is created using the 'message_.data()' method then all is well. " anonymous Boost 1.48.0 6296 wrong has_trivial_constructor value for custom class follows to programm fail uBLAS Boost 1.48.0 To Be Determined Bugs Gunter new 2011-12-19T12:23:19Z 2012-01-23T07:20:03Z "System: -- Windows Server 2008 R2 x64 -- Visual Studio 2010 I use wrapper for MPFR (http://www.holoborodko.com/pavel/mpfr/) and custom std::complex type implementation for mpreal class (see attachment) typedef mpfr::mpreal number; typedef std::complex complex; typedef boost::numeric::ublas::matrix cmatrix; cmatrix m1 = E - J; // E, J -- cmatrix storege.hpp: explicit BOOST_UBLAS_INLINE unbounded_array (size_type size, const ALLOC &a = ALLOC()): alloc_(a), size_ (size) { if (size_) { data_ = alloc_.allocate (size_); // has_trivial_constructor returns true for complex, // but this is my custom class with implemented default construtor if (! detail::has_trivial_constructor::value) { for (pointer d = data_; d != data_ + size_; ++d) alloc_.construct(d, value_type()); } } else data_ = 0; }" azubanov@… Boost 1.48.0 6302 int_adapter::from_special(special_values) is not inlined, so duplicated date_time Boost 1.48.0 Bugs az_sw_dude new 2011-12-19T23:12:17Z 2012-07-05T02:42:59Z "It seems that this function {{{ template class int_adapter { static int_adapter from_special(special_values sv) { switch (sv) { case not_a_date_time: return not_a_number(); case neg_infin: return neg_infinity(); case pos_infin: return pos_infinity(); case max_date_time: return (max)(); case min_date_time: return (min)(); default: return not_a_number(); } } }}} is not been inlined with gcc 3.4.6 and so it is duplicated at link time. See link error on regression test {{{ Test output: Sandia-gcc-3.4.6 - thread - test_condition_lib / gcc-3.4.6 Rev 76061 / Mon, 19 Dec 2011 12:54:33 +0000 Report Time: Mon, 19 Dec 2011 21:30:12 +0000 Compile [2011-12-19 13:33:17 UTC]: succeed ""/sierra/Sntools/extras/compilers/gcc-3.4.6/bin/g++"" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -pthread -fPIC -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_TEST_NO_AUTO_LINK=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_LIB=1 -I"".."" -c -o ""/scratch/kbelco/boost/results/boost/bin.v2/libs/thread/test/test_condition_lib.test/gcc-3.4.6/debug/address-model-32/threading-multi/test_condition.o"" ""../libs/thread/test/test_condition.cpp"" Link [2011-12-19 13:33:17 UTC]: fail ""/sierra/Sntools/extras/compilers/gcc-3.4.6/bin/g++"" -o ""/scratch/kbelco/boost/results/boost/bin.v2/libs/thread/test/test_condition_lib.test/gcc-3.4.6/debug/address-model-32/threading-multi/test_condition_lib"" -Wl,--start-group ""/scratch/kbelco/boost/results/boost/bin.v2/libs/thread/test/test_condition_lib.test/gcc-3.4.6/debug/address-model-32/threading-multi/test_condition.o"" ""/scratch/kbelco/boost/results/boost/bin.v2/libs/thread/test/test_condition_lib.test/gcc-3.4.6/debug/address-model-32/threading-multi/tss_null.o"" ""/scratch/kbelco/boost/results/boost/bin.v2/libs/test/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_unit_test_framework.a"" ""/scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a"" -Wl,-Bstatic -Wl,-Bdynamic -lrt -Wl,--end-group -g -pthread -m32 `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' referenced in section `.rodata' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o): defined in discarded section `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o) `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' referenced in section `.rodata' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o): defined in discarded section `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o) `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' referenced in section `.rodata' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o): defined in discarded section `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o) `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' referenced in section `.rodata' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o): defined in discarded section `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o) `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' referenced in section `.rodata' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o): defined in discarded section `.gnu.linkonce.t._ZN5boost9date_time11int_adapterIxE12from_specialENS0_14special_valuesE' of /scratch/kbelco/boost/results/boost/bin.v2/libs/thread/build/gcc-3.4.6/debug/address-model-32/link-static/threading-multi/libboost_thread.a(thread.o) collect2: ld returned 1 exit status }}} " viboes Boost 1.48.0 6304 parsing ptime with set facet fails date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2011-12-20T09:02:51Z 2012-01-23T06:12:37Z "Hi, when parsing a ptime with ""%Y-%m-%d"" facet, the parser ignores checking the intermediate characters: ""-"". This patches makes the parser check for intermediate characters. Kind regards Thomas Lemm " Thomas.Lemm@… Boost 1.48.0 6327 Error in documentation of boost::numeric::ublas::triangular_matrix uBLAS Boost 1.48.0 To Be Determined Bugs Gunter new 2011-12-28T11:26:10Z 2011-12-28T11:26:10Z "The documentation under http://www.boost.org/doc/libs/1_48_0/libs/numeric/ublas/doc/triangular.htm#1TriangularMatrix says in Section 1.1: ''For a (n x n )-dimensional '''lower''' triangular matrix and 0 <= i < n,0 <= j < n holds ti, j = 0 , if i > j. If furthermore holds ti, i= 1 the matrix is called unit '''lower''' triangular. For a (n x n )-dimensional lower triangular matrix and 0 <= i < n,0 <= j < n holds ti, j = 0 , if i < j. If furthermore holds ti, i= 1 the matrix is called unit lower triangular.'' Based on the code example in Section 1.2, I think that the bolded occurrences of ""lower"" should be replaced with ""upper"", so that the above paragraph reads: ''For a (n x n )-dimensional '''upper''' triangular matrix and 0 <= i < n,0 <= j < n holds ti, j = 0 , if i > j. If furthermore holds ti, i= 1 the matrix is called unit '''upper''' triangular. For a (n x n )-dimensional lower triangular matrix and 0 <= i < n,0 <= j < n holds ti, j = 0 , if i < j. If furthermore holds ti, i= 1 the matrix is called unit lower triangular.'' " Roman Werpachowski Boost 1.48.0 6350 MINGW Build missing mingw.jam build Boost 1.48.0 Boost 1.49.0 Bugs Vladimir Prus new 2012-01-03T07:44:00Z 2012-12-17T06:46:45Z "If I try to build boost on Windows7 with mingw-shell: {{{ ./bootstrap.sh --toolset=mingw }}} then b2 and bjam will be build successfully, but the call {{{ ./b2 }}} fails with {{{ mingw.jam: No such file or directory d:/extswrc/boost/tools/build/v2/build\toolset.jam:38: in toolset.using rule mingw.init unknown in module toolset. Windows, these are static d:/extswrc/boost/tools/build/v2/build\project.jam:888: in using project-config.jam:12: in modules.loadsing shared runtime. On Linux, these d:/extswrc/boost/tools/build/v2\build-system.jam:257: in load-config d:/extswrc/boost/tools/build/v2\build-system.jam:423: in load-configuration-files d:/extswrc/boost/tools/build/v2\build-system.jam:555: in load d:\extswrc\boost\tools\build\v2/kernel\modules.jam:283: in import d:\extswrc\boost\tools\build\v2\kernel\bootstrap.jam:142: in boost-build d:\extswrc\boost\boost-build.jam:17: in module scopeg }}} if I copy the gcc.jam to mingw.jam and rename gcc into mingw in mingw.jam then I can build boost with b2. So I would suggest to add a mingw.jam file to tools/build/v2/tools." anonymous Boost 1.48.0 6358 Documentation numeric Boost 1.48.0 To Be Determined Bugs Fernando Cacciola new 2012-01-04T20:40:27Z 2012-01-04T20:40:27Z "I want to use boost numeric conversion. I NEED to use boost numeric conversion. But I can't really figure out how to use it. a) the interface with policies which contain function options which contain... is just too hard to follow. I think this is a design problem. b) the documentation of all this isn't complete - and it reflects the interface. trying to figure it out is like pulling teeth. It ""looks like"" it depends upon numeric_limits for minimums, maximums, etc. I would hope this means that if I create my own numeric type and specialize numeric_limits for it, the convert<...> will ""just work"" and I'll get an overflow/under flow exception when I need it. But trying to verify that this works like this by looking at the documentation is like pulling teeth. I believe the library works and/or can be made to work for what I want to do, but the documentation is presenting a real obstacle so I have to look at the code itself - which I shouldn't have to do. Robert Ramey " Robert Ramey Boost 1.48.0 6363 Incorrect error documentation for time_zone_from_region() in tz_db_base.hpp date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2012-01-07T00:50:48Z 2012-01-07T00:50:48Z "In the event of an error, time_zone_from_region()'s documentation is incorrect in the following ways: - The function returns a null pointer. It does not throw an exception. - The specified ""record_not_found"" exception does not exist. Here's the doc/code in question (identical in at least 1.46.0-1.48.0): {{{ //! Returns a time_zone object built from the specs for the given region /*! Returns a time_zone object built from the specs for the given * region. If region does not exist a local_time::record_not_found * exception will be thrown */ boost::shared_ptr time_zone_from_region(const string_type& region) const { // get the record typename map_type::const_iterator record = m_zone_map.find(region); if(record == m_zone_map.end()){ return boost::shared_ptr(); //null pointer } return record->second; } }}}" nickbp@… Boost 1.48.0 6365 Compiler warnings when running static code analysis after build on MSVC 10 exception Boost 1.48.0 To Be Determined Bugs Emil Dotchevski new 2012-01-07T14:36:49Z 2012-01-07T14:36:49Z "As the title says I'm getting several compiler warnings when running static code analysis in Visual Studio 10 (attached the list to the ticket). The reported warnings are harmless (are only triggered by the static analyzer and not when compiling with warning level 4), but could you fix them if you have the time? I'm getting two type of warnings. == Warning type 1 == warning C6246: Local declaration of 'l' hides declaration of the same name in outer scope. For additional information, see previous declaration at line '131' of 'c:\users\seppe\boost_1_48_0\boost\exception\diagnostic_information.hpp': Lines: 131 c:\users\seppe\boost_1_48_0\boost\exception\diagnostic_information.hpp 140 warning C6246: Local declaration of 'fn' hides declaration of the same name in outer scope. For additional information, see previous declaration at line '132' of 'c:\users\seppe\boost_1_48_0\boost\exception\diagnostic_information.hpp': Lines: 132 c:\users\seppe\boost_1_48_0\boost\exception\diagnostic_information.hpp 144 and the affected code: {{{ 130: char const * const * f=get_error_info(*be); 131: int const * l=get_error_info(*be); 132: char const * const * fn=get_error_info(*be); 133: if( !f && !l && !fn ) 134: tmp << ""Throw location unknown (consider using BOOST_THROW_EXCEPTION)\n""; 135: else 136: { 137: if( f ) 138: { 139: tmp << *f; 140: if( int const * l=get_error_info(*be) ) 141: tmp << '(' << *l << ""): ""; 142: } 143: tmp << ""Throw in function ""; 144: if( char const * const * fn=get_error_info(*be) ) 145: tmp << *fn; 146: else 147: tmp << ""(unknown)""; 148: tmp << '\n'; 149: } }}} Both warnings can be fixed by: - line 140: replacing if( int const * l=get_error_info(*be) ) with if( l ) - line 144: replacing if( char const * const * fn=get_error_info(*be) ) with if( fn ) == Warning type 2 == Only displaying the first warning. warning C6246: Local declaration of 'e' hides declaration of the same name in outer scope. For additional information, see previous declaration at line '300' of 'c:\users\seppe\boost_1_48_0\boost\exception\detail\exception_ptr.hpp': Lines: 300 c:\users\seppe\boost_1_48_0\boost\exception\detail\exception_ptr.hpp 332 and the affected code: {{{ 296: inline 297: exception_ptr 298: current_exception_impl() 299: { 300: exception_detail::clone_base const * e=0; <> 328: try 329: { 330: throw; 331: } 332: catch( 333: exception_detail::clone_base & e ) 334: { 335: return exception_ptr(shared_ptr(e.clone())); 336: } ... }}} Well this is more of a false positive of the static analyzer, but can be avoided by changing the variable name of the caught exception. '''Remark''': A warning is generated for each caught exception in the method (see attached list). " seppe.de.clercq@… Boost 1.48.0 6391 New reverse_graph edge descriptor type breaks shared property maps graph Boost 1.48.0 To Be Determined Bugs Jeremiah Willcock new 2012-01-11T15:00:26Z 2012-03-23T10:35:05Z "The newly implemented data type for the edge descriptor of reversed_graph does not allow for the transparent sharing of edge property maps between the base and reversed graphs, which was possible with the old code (< 1.48), since its type is not related to the base graph. This is a very useful feature, and I think it should be preserved. I'm sending attached a patch which makes the reversed edge descriptior a derived class from the base edge descriptor. This makes the type itself distinct from the base graph, avoiding any ambiguities, while at the same time preserving interchangeability with the base descriptor when required, e.g. when accessing property maps. This also makes the code a bit more elegant." tiago@… Boost 1.48.0 6398 intermodule_singleton crash in Windows interprocess Boost 1.48.0 To Be Determined Bugs Ion Gaztañaga reopened 2012-01-13T20:10:52Z 2014-10-30T15:00:22Z "Steps to reproduce the problem: * Create singleton_dll.dll. * Create singleton_exe.exe, which uses singleton_dll.dll. * Run. On exit, an access violation happens. Seemingly, the problem happens when two different singletons are created, one in the main executable and the other in a DLL. If both singletons are created in the same module everything's OK, though. More context in http://lists.boost.org/Archives/boost/2012/01/189577.php" Joaquín M López Muñoz Boost 1.48.0 6403 Erroneous comment iterator Boost 1.48.0 To Be Determined Bugs jeffrey.hellrung new 2012-01-16T15:49:48Z 2014-06-04T10:09:40Z "In boost/iterator/detail/facade_iterator_category.hpp, line 76, there's a comment: {{{ // If writability has been disabled per the above metafunction, the // result will not be convertible to output_iterator_tag. }}} This comment corresponds to behavior that was removed in changeset: https://svn.boost.org/trac/boost/changeset/21683 Now the result will never be convertible to output_iterator_tag. " Ronald Garcia Boost 1.48.0 6404 Documentation bug for iterator_facade iterator Boost 1.48.0 To Be Determined Bugs jeffrey.hellrung new 2012-01-16T15:50:34Z 2014-06-04T10:11:58Z "In the documentation for iterator_facade, there's a bit of a booboo where the function is first written: {{{ iterator-category(CategoryOrTraversal, value_type, reference) }}} Then defined as: {{{ iterator-category(C,R,V) }}} So I think the argument order is flipped. " Ronald Garcia Boost 1.48.0 6427 OperationalError: database is locked trac / subversion Boost 1.48.0 To Be Determined Bugs Douglas Gregor new 2012-01-20T07:38:05Z 2012-01-20T07:38:05Z "==== How to Reproduce ==== While doing a GET operation on `/query`, Trac issued an internal error. ''(please provide additional details here)'' Request parameters: {{{ {'col': [u'id', u'summary', u'status', u'type', u'milestone', u'component'], 'component': u'exception', 'order': u'priority', 'status': [u'assigned', u'new', u'reopened']} }}} User agent: `#USER_AGENT#` ==== System Information ==== ''System information not available'' ==== Enabled Plugins ==== ''Plugin information not available'' ==== Python Traceback ==== {{{ Traceback (most recent call last): File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 513, in _dispatch_request dispatcher.dispatch(req) File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 258, in dispatch req.session.save() File ""build/bdist.linux-i686/egg/trac/web/session.py"", line 88, in save @self.env.with_transaction() File ""build/bdist.linux-i686/egg/trac/db/api.py"", line 77, in transaction_wrapper fn(ldb) File ""build/bdist.linux-i686/egg/trac/web/session.py"", line 110, in delete_session_cookie """""", (self.sid,)) File ""build/bdist.linux-i686/egg/trac/db/util.py"", line 65, in execute return self.cursor.execute(sql_escape_percent(sql), args) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 78, in execute result = PyFormatCursor.execute(self, *args) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 56, in execute args or []) File ""build/bdist.linux-i686/egg/trac/db/sqlite_backend.py"", line 48, in _rollback_on_error return function(self, *args, **kwargs) OperationalError: database is locked }}}" Andrey Semashev Boost 1.48.0 6437 Documentation bug: ptr_map inherits from ptr_map_adapter, not ptr_multi_map_adapter ptr_container Boost 1.48.0 To Be Determined Bugs Thorsten Ottosen new 2012-01-23T12:08:39Z 2012-01-23T13:03:57Z "It seems that the documentation for ptr_multi_map_adatpter is wrong as there is a discrepancy with the code. I am a beginner, so if I am wrong, please gently explain why. http://www.boost.org/doc/libs/1_48_0/libs/ptr_container/doc/ptr_multimap_adapter.html shows: {{{ class ptr_multimap_adapter { // ... iterator insert( key_type& k, T* x ); template< class U > iterator insert( const key_type&, std::auto_ptr x ); // ... } }}} However, the source code shows: {{{ std::pair insert( key_type& key, mapped_type x ) { return insert_impl( key, x ); } template< class U > std::pair insert( const key_type& key, std::auto_ptr x ) { return insert_impl( key, x.release() ); } }}} It seems there is a mismatch between the documentation and the code as to the type of the return value (iterator vs. pair). The following test code provides an example of what I was trying to do after reading the documentation, but obviously that didn't compile: {{{ #include #include #include int main() { boost::ptr_map map; boost::ptr_map::iterator map_it; std::string* s = new std::string(""one""); int i = 1; //map_it = map.insert(i, s); // Does not compile. std::pair< boost::ptr_map::iterator, bool> ret = map.insert(i, s); // This compiles. } }}} How is the code documentation generated? By hand? While learning how to use ptr_container, I have often wished there were more extensive documentation and examples on how to use ptr_map. If the above is indeed a documentation bug, can you use this opportunity to add a sample code section on how to create, insert and retrieve elements with a ptr_map? Thanks. " augustin Boost 1.48.0 6439 convert.cpp does not compile when defining BOOST_NO_STD_LOCALE program_options Boost 1.48.0 To Be Determined Bugs Vladimir Prus new 2012-01-23T20:57:38Z 2012-04-03T12:55:16Z " The reason for this build failure is that BOOST_USE_FACET is not defined when compiling with BOOST_NO_STD_LOCALE. The two methods can easily be excluded for NO_STD_LOCALE. See attached patch. The patch is against trunk as of today. gcc.compile.c++ bin.v2/libs/program_options/build/gcc-4.6.1/release/threading-multi/convert.o libs/program_options/src/convert.cpp: In Funktion »std::wstring boost::from_local_8_bit(const string&)«: libs/program_options/src/convert.cpp:134:53: Fehler: expected primary-expression before »,« token libs/program_options/src/convert.cpp:134:63: Fehler: »BOOST_USE_FACET« wurde in diesem Gültigkeitsbereich nicht definiert libs/program_options/src/convert.cpp: In Funktion »std::string boost::to_local_8_bit(const wstring&)«: libs/program_options/src/convert.cpp:142:51: Fehler: expected primary-expression before »,« token libs/program_options/src/convert.cpp:142:61: Fehler: »BOOST_USE_FACET« wurde in diesem Gültigkeitsbereich nicht definiert libs/program_options/src/convert.cpp:143:5: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type] libs/program_options/src/convert.cpp: In Funktion »std::wstring boost::from_local_8_bit(const string&)«: libs/program_options/src/convert.cpp:135:5: Warnung: Kontrollfluss erreicht Ende von Nicht-void-Funktion [-Wreturn-type] ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_NO_STD_LOCALE -DBOOST_ALL_NO_LIB=1 -DBOOST_PROGRAM_OPTIONS_DYN_LINK=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/program_options/build/gcc-4.6.1/release/threading-multi/convert.o"" ""libs/program_options/src/convert.cpp"" (The reason for BOOST_NO_STD_LOCALE is the libstdc++ in my target system that throws an exceptions for std::locale(""""); 8-((( )" leutloff@… Boost 1.48.0 6444 qi::lit() parses into a '\0' in 1.47 and 1.48 spirit Boost 1.48.0 To Be Determined Bugs Joel de Guzman reopened 2012-01-24T20:15:20Z 2012-01-25T08:50:08Z "In 1.46.0, qi::lit() would end up in the result. This changed in 1.47.0 such that they were not parsed into the result (qi::char_ is to be used instead). However, NUL characters now show up in the resulting token. Example code and output attached. Synopsis: Parser: +(qi::alnum | qi::lit('-')) Input: ""a-b-c"" 1.46.0: ""a-b-c"" 1.47.0: ""a\000b\000c"" 1.48.0: ""a\000b\000c"" The '\000' characters can be seen in gdb; std::ostream just shows ""abc"" instead." mathstuf@… Boost 1.48.0 6448 basic_filesystem_error still referenced in docs filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2012-01-26T12:05:48Z 2012-05-28T17:35:25Z "In /trunk/libs/filesystem/v3/index.html: ""...Boost.Filesystem functions throw basic_filesystem_error exceptions if..."" In /trunk/libs/filesystem/v3/doc/reference.html: ""class basic_filesystem_error : public system_error"" ""The class template basic_filesystem_error ..."" basic_filesystem_error doesn't exist in v3 AFAICT and filesystem_error isn't a class template as basic_filesystem_error was." bibil.thaysose@… Boost 1.48.0 6449 numeric_cast is broken when using VC and /RTCc option numeric Boost 1.48.0 To Be Determined Bugs Douglas Gregor new 2012-01-26T13:29:17Z 2012-01-26T13:29:17Z "run-time checker detects the illegal assignment in GT_HiT::apply() in numeric\conversion\detail\converter.hpp called by 'numeric_cast'. please compile the attached file with below command. > cl.exe numeric.cpp /EHsc /RTCc /Zi I confirmed same problem using VC2005 + boost 1.47.0 and VC2010 + boost 1.48.0. " y.hoshizuki Boost 1.48.0 6458 Bug in a multi_array print_array example multi_array Boost 1.48.0 To Be Determined Bugs Ronald Garcia new 2012-01-27T14:52:09Z 2012-08-18T15:13:20Z "http://www.boost.org/doc/libs/1_48_0/libs/multi_array/example/print_array.cpp change '''void print(std::ostream& os, const double& x)''' to '''template<> void print(std::ostream& os, const double& x)''' reference: http://stackoverflow.com/questions/9034554/pretty-print-of-boostmulty-array-example-fails/" nootropic.kint@… Boost 1.48.0 6497 bjam build failing when including QtUiTools build Boost 1.48.0 To Be Determined Bugs Vladimir Prus new 2012-01-30T20:25:54Z 2014-12-15T17:15:49Z "qt//QtUiTools causes bjam to fail prior to starting compilation with an error...[[BR]] xx/tools\builtin.jam:869: in linking-generator.generated-targets[[BR]] '* argument error[[BR]] '* rule generator.generated-targets ( sources + : property-set : project name ? )[[BR]] '* called with: ( : object(property-set)@1776 : object(project-target)@46 QtUiTools )[[BR]] '* missing argument sources[[BR]] xx/build/v2/build\generators.jam:543:see definition of rule 'generator.generated-targets' being called[[BR]] Commenting out qt//QtUiTools from my Jamfile allows the build to work up to the point that I need QUILoader.h, which is part of of qt//QtUiTools I'm Using bjam from boost 1.48 with QT 4.8.0, both compiled sucessfully on Windows 7 with 32-bit MSVC 2010. If you have any suggestions for a work-arround, please let me know" Brad Jascob Boost 1.48.0 6500 testfrom_facet.cpp is unused and broken date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2012-01-31T09:05:31Z 2012-01-31T09:05:31Z "The above file is part of the test directory of the DateTime library, but it isn't compiled as part thereof. It also doesn't compile, because it depends on algorithm_ext/container_print.hpp. I'd either revive it or drop it. " Ulrich Eckhardt Boost 1.48.0 6506 date_time\test\posix_time\testperiod.cpp is obsolete and should be removed date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2012-02-01T13:10:50Z 2012-02-02T15:47:42Z "Quote from the file itself, which is otherwise empty: {{{ //FILE OBSOLETE: replace by testtime_period.cpp }}} " Ulrich Eckhardt Boost 1.48.0 6515 Serilaization of std::vector is broken for optimizing archives serialization Boost 1.48.0 To Be Determined Bugs Robert Ramey assigned 2012-02-02T18:40:38Z 2012-07-15T20:35:16Z "Serializing a vector causes corruptions in the created archive. The reason is this function (in boost/serialization/vector.hpp): {{{ template inline void save( Archive & ar, const std::vector &t, const unsigned int /* file_version */, mpl::true_ ){ const collection_size_type count(t.size()); ar << BOOST_SERIALIZATION_NVP(count); if (!t.empty()) ar << make_array(detail::get_data(t),t.size()); } }}} While detail::get_data(t) is not specialized for std::vector (but it should be), and t.size() returns the number of bits stored in the vector, which is probably not what's expected either. I'm encountering this problem with MSVC10, 64bit, Windows7." Hartmut Kaiser Boost 1.48.0 6525 format atldbgmem.h m_storage VS2010 optional Boost 1.48.0 To Be Determined Bugs Fernando Cacciola new 2012-02-05T15:36:02Z 2017-10-12T14:47:08Z "Hi, Format component of Boost 1.48 doesn't compile with memory debugging enabled in VS2010. With included in stdafx.h (precompiled header), compiler says error: {{{ 1>d:\boost\boost_1_48_0\boost\optional\optional.hpp(346): error C2061: syntax error : identifier 'm_storage' 1> d:\boost\boost_1_48_0\boost\optional\optional.hpp(345) : while compiling class template member function 'void boost::optional_detail::optional_base::construct(const std::locale &)' 1> with 1> [ 1> T=boost::io::detail::locale_t 1> ] 1> d:\boost\boost_1_48_0\boost\optional\optional.hpp(500) : see reference to class template instantiation 'boost::optional_detail::optional_base' being compiled 1> with 1> [ 1> T=boost::io::detail::locale_t 1> ] 1> d:\boost\boost_1_48_0\boost\format\internals.hpp(56) : see reference to class template instantiation 'boost::optional' being compiled 1> with 1> [ 1> T=boost::io::detail::locale_t 1> ] 1> d:\boost\boost_1_48_0\boost\format\internals.hpp(57) : see reference to class template instantiation 'boost::io::detail::stream_format_state' being compiled 1> 1>Build FAILED. }}} The code itself: {{{ #include int _tmain(int argc, _TCHAR* argv[]) { boost::format fmt(""Value: %d\nString: %s\n""); fmt % 10 % _T(""My string""); printf(fmt.str().c_str()); return 0; } }}} Without atldbgmem.h included the code compiles with no error messages Regards, Evgeniy " epodkopaev@… Boost 1.48.0 6532 KeyError: 'attachment' python USE GITHUB Boost 1.48.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-02-07T13:24:36Z 2012-02-07T13:25:48Z "==== How to Reproduce ==== While doing a POST operation on `/attachment/ticket/5372/`, Trac issued an internal error. ''(please provide additional details here)'' } void doSomething(boost::weak_ptr weakp, int* number) { int i = 0; while(++i<10000) { User agent: `Mozilla/5.0 (iPad; CPU OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3` ==== System Information ==== ''System information not available'' ==== Enabled Plugins ==== ''Plugin information not available'' ==== Python Traceback ==== {{{ Traceback (most recent call last): File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 513, in _dispatch_request dispatcher.dispatch(req) File ""build/bdist.linux-i686/egg/trac/web/main.py"", line 235, in dispatch resp = chosen_handler.process_request(req) File ""build/bdist.linux-i686/egg/trac/attachment.py"", line 448, in process_request self._do_save(req, attachment) File ""build/bdist.linux-i686/egg/trac/attachment.py"", line 620, in _do_save upload = req.args['attachment'] KeyError: 'attachment' }}}" Trvus549@… Boost 1.48.0 6542 cannot assign empty matrix to matrix uBLAS Boost 1.48.0 To Be Determined Bugs Gunter new 2012-02-10T11:05:21Z 2012-02-10T11:05:21Z "The following gives a runtime error, because matrix b is empty boost::numeric::ublas::matrix a, b; a = b; I am submitting a patch to storage.hpp, but don't know if the problem appears elsewhere too." Alex Hagen-Zanker Boost 1.48.0 6544 The documentation of iterator_property_map is overly complicated and incorrect property_map Boost 1.48.0 To Be Determined Bugs Douglas Gregor new 2012-02-10T15:40:40Z 2012-04-16T17:49:27Z "The example that is used, is very complicated especially because it refers to the Graph library. The operator[] does not take a pointer_diff as parameter but an IndexMap::key_type" anonymous Boost 1.48.0 6545 boost:::python doesn't recognize std::shared_ptr python USE GITHUB Boost 1.48.0 To Be Determined Bugs Jim Bosch assigned 2012-02-11T14:03:12Z 2015-09-18T07:17:12Z boost::python specially handles boost::shared_ptr, but special handling is also needed for std::shared_ptr Neal Becker Boost 1.48.0 6547 Missing tribool in interval compare interval Boost 1.48.0 To Be Determined Bugs Boris Gubenko new 2012-02-11T20:37:29Z 2012-02-11T20:37:29Z boost/numeric/interval/compare.hpp fails to include boost/numeric/interval/compare/tribool.hpp (needed for tribool comparison mode) matt.keeter@… Boost 1.48.0 6579 """linked list"" bug Boost.Concept_check documentation" concept_check Boost 1.48.0 To Be Determined Bugs jsiek new 2012-02-19T02:03:05Z 2012-02-19T02:03:05Z "Right under the [http://www.boost.org/doc/libs/1_48_0/libs/concept_check/concept_check.htm#motivating-example ""Motivating Example"" section], first sentence it says ""... is applied to a linked list."" whereas the example does not have (or need) one. " anonymous Boost 1.48.0 6580 problem with OpenMP > 1.3I and boost-mpi-python mpi Boost 1.48.0 To Be Determined Bugs Douglas Gregor new 2012-02-19T17:12:56Z 2012-05-28T17:32:25Z "when installing with bjam and using openmpi for MPI, the bjam generated mpi.so can not be loaded from within python. the packagers for ubuntu solve this problem by putting mpi.so within a subdirectory boost so something like my_boost/lib/boost/mpi.so together with a __init__.py file that contains: import sys if sys.platform == 'linux2': import DLFCN as dl flags = sys.getdlopenflags() sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL) import mpi sys.setdlopenflags(flags) else: import mpi this way the mpi library can be imported as import boost.mpi this will open the __init__.py and ensure that the lib can be correctly loaded without this the lib should be imported as import mpi which fails with openmpi " anonymous Boost 1.48.0 6588 boost::wave list_includes sample will not link with cpplexer wave Boost 1.48.0 To Be Determined Bugs Hartmut Kaiser new 2012-02-21T20:23:12Z 2012-03-08T16:40:51Z "After working around a jamfile problem where none of the wave samples will build(ticket will be posted shortly after this), list_includes (among others) still refuses to link. This is with VS10 on WindowsXP, Boost 1.48.0 having been built succesfully with --build-type=complete, but not installed. I apologize for the nasty formatting, but the Command Prompt just isn't very helpful. {{{ C:\boost_1_48_0>b2.exe libs\wave\samples -q ...patience... ...patience... ...patience... ...found 2677 targets... ...updating 7 targets... msvc.link bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.exe Creating library bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-o n\link-static\threading-multi\list_includes.lib and object bin.v2\libs\wave\samples\list_includes\bu ild\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.exp list_includes.obj : error LNK2019: unresolved external symbol ""public: static struct boost::wave::cp plexer::lex_input_interface,class std::allocator< char>,class boost::wave::util::CowString >,char *> > > > > * __cdecl boost::wave::cpplexer::lexertl::new_lexer_gen,class std::allocator >,struct boost: :wave::util::file_position,c lass std::allocator,class boost::wave::util::CowString >,char *> > > >::new_lexer(class std::_String_iterator,class std::allocator > const &,class std::_String_iterator,class std::allocator > const &,struct boost::wave::util::file_p osition,class std::allocator ,class boost::wave::util::CowString >,char *> > > const &,enum boost::wave::language_support)"" (?new_lexer@?$new_l exer_gen@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@U?$file_position@V?$flex_ string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@ D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost@@@lexertl@cpplexer@ wave@boost@@SAPAU?$lex_input_interface@V?$lex_token@U?$file_position@V?$flex_string@DU?$char_traits@ D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@D@std@@@util@wave@boost @@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost@@@cpplexer@wave@boost@@@345@ABV?$_String_i terator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0ABU?$file_position@V?$flex_string@DU?$char_tr aits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringStorage@DV?$allocator@D@std@@@util@wave@ boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@45@W4language_support@45@@Z) referenced in funct ion ""public: static struct boost::wave::cpplexer::lex_input_interface,class std::allocator,class boost::wave::util::CowString >,char *> > > > > * __cdecl boost::wa ve::cpplexer::lexertl::lexertl_input_interface,cl ass std::allocator,class boost::wave::util::CowString >,char *> > > > >::new_lexer,class std::allocator > >(class std::_String_iterator,class std::allocator > const &,class std::_String_iterator,class std::allocator > const &,struct boost::wave::util::file_positi on,class std::allocator,class boost::wave::util::CowString >,char *> > > const &,enum boost::wave::language_support)"" (??$new_lexer@V?$_String _iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@?$lexertl_input_interface@V?$lex_token@U?$f ile_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringS torage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boos t@@@cpplexer@wave@boost@@@lexertl@cpplexer@wave@boost@@SAPAU?$lex_input_interface@V?$lex_token@U?$fi le_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStringSt orage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@wave@boost @@@cpplexer@wave@boost@@@234@ABV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0AB U?$file_position@V?$flex_string@DU?$char_traits@D@std@@V?$allocator@D@2@V?$CowString@V?$AllocatorStr ingStorage@DV?$allocator@D@std@@@util@wave@boost@@PAD@util@wave@boost@@@util@wave@boost@@@util@34@W4 language_support@34@@Z) bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\thread ing-multi\list_includes.exe : fatal error LNK1120: 1 unresolved externals call ""c:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 >nul link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console /out:""bin.v2\libs\wave\samples\l ist_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.ex e"" @""bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-static \threading-multi\list_includes.exe.rsp"" if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL% ...failed msvc.link bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-o n\link-static\threading-multi\list_includes.exe bin.v2\libs\wave\samples\list_includes\build\msvc-10 .0\debug\asynch-exceptions-on\link-static\threading-multi\list_includes.pdb... ...removing bin.v2\libs\wave\samples\list_includes\build\msvc-10.0\debug\asynch-exceptions-on\link-s tatic\threading-multi\list_includes.pdb ...failed updating 1 target... C:\boost_1_48_0> }}}" Joe Kerian Boost 1.48.0 6589 "boost::wave samples won't build with ""Simplified Build From Source"" build" wave Boost 1.48.0 To Be Determined Bugs Hartmut Kaiser new 2012-02-21T20:23:58Z 2012-02-21T20:23:58Z "According to a quick check on the #boost irc channel, jam _should_ be forcing the build of any boost libraries it needs. This does not appear to be happening when I try to build the boost::wave (1.48.0) samples with VS10 on WinXP. I get a series of linking errors, when I attempt: C:\boost_1_48_0> bjam.exe libs\wave\samples References to filesystem3 or even wave itself fail to link. A solution is to force everything to build in boost with: C:\boost_1_48_0> b2.exe --build-type=complete At that point many of the projects will build, but still some don't in a possibly unrelated issue documented here: https://svn.boost.org/trac/boost/ticket/6588" Joe Kerian Boost 1.48.0 6593 patch: bjam SHELL builtin: fix for strip-eol and added join-lines build Boost 1.48.0 To Be Determined Bugs Vladimir Prus new 2012-02-22T18:51:06Z 2012-02-22T18:51:06Z "The implementation of the 'strip-eol' option (which I submitted as a patch some time ago) had a flaw (as identified by Marc Dürner on the boost-build mailing list) in which it could strip newlines in the middle of the output, as opposed to only at the end of output, as intended. This patch fixes that issue and introduces a new option called 'join-lines' which will replace ALL newlines in the output with a space. Note that I've introduced a pair of functions that are candidates for the string module and which perhaps should be moved there. " codemonkey@… Boost 1.48.0 6617 filesystem::remove_all can't delete directory that contains directory junction filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2012-02-25T21:08:30Z 2012-02-25T21:08:30Z "filesystem::remove_all tries to delete junction by DeleteFile but it should be deleted by RemoveDirectory. http://msdn.microsoft.com/en-us/library/windows/desktop/aa365488%28v=vs.85%29.aspx Diff with fix is in attach" Nikolay Shelukhin Boost 1.48.0 6618 boost::container::flat_map not transparently accepting move-only values container Boost 1.48.0 To Be Determined Bugs Ion Gaztañaga new 2012-02-25T23:28:54Z 2015-12-06T08:48:52Z "I would have expected to be able to store move-only values in a boost::container::flat_map, and to have no code changes except in the header files, since it is supposed to be a drop-in replacement for std::map. However, I cannot create a key-value pair of a type it will accept, because of const errors. The attached program shows the problem. Perhaps allowing a non-const std::pair reference to be passed to insert would help, or even a new make_pair helper function that returned a BOOST_RV_REF(value_type)? The same thing happens with boost::container::map. " Charles David Tallman Boost 1.48.0 6622 boost::mpl::transform fails on boost::mpl::set in non-inserter form mpl Boost 1.48.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-02-26T22:44:53Z 2013-04-23T13:51:09Z "The following code does not compile with boost-1.48.0: {{{ typedef boost::mpl::transform< boost::mpl::set, boost::add_pointer >::type pointer_set; }}} It fails on a compile-time assert deeply into boost.mpl with ""REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST"". This makes sense, as boost::mpl::set is not a front extensible sequence. One can get this to work by using a custom inserter that utilises boost::mpl::insert instead of boost::mpl::push_front, or using a different sequence class in the output. However, I think boost::mpl::transform should either be able to detect a set properly, or the documentation should state that the non-inserter version of boost::mpl::transform requires a front extensible sequence." hack@… Boost 1.48.0 6644 "Windows: auto_link.hpp incorrectly errors with ""Mixing a dll boost library with a static runtime is a really bad idea...""" python USE GITHUB Boost 1.48.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-03-01T23:42:09Z 2015-07-07T10:54:42Z "I'm building a DLL which uses *static* runtime linking. Static runtime linking uses the /MT (and /MTd) switch. When Boost is compiled with under the DLL, the following error is reported: C:\Users\Public\boost-trunk\boost/config/auto_link.hpp(354) : fatal error C1189: #error : ""Mixing a dll boost library with a static runtime is a really bad idea..."" According to ""/MD, /MT, /LD (Use Run-Time Library)"", http://msdn.microsoft.com/en-US/library/2kzt1wy3(v=vs.90).aspx: /MT - Causes your application to use the multithread, static version of the run-time library. Defines _MT and causes the compiler to place the library name LIBCMT.lib into the .obj file so that the linker will use LIBCMT.lib to resolve external symbols. For completeness, here is the switch for dynamic runtime linking: /MD - Causes your application to use the multithread- and DLL-specific version of the run-time library. Defines _MT and _DLL and causes the compiler to place the library name MSVCRT.lib into the .obj file. ... Applications compiled with this option are statically linked to MSVCRT.lib. This library provides a layer of code that allows the linker to resolve external references. The actual working code is contained in MSVCR90.DLL, which must be available at run time to applications linked with MSVCRT.lib... To summarize, ""_MT"" is defined for both static and dynamic linking. ""_DLL"" is defined for just dynamic linking. And because I am building a DLL, ""_WINDLL"" is also defined. Perhaps the following would be better logic for auto_link.hpp (my apologies for not trying to figure out all the Boost defines): #if defined(BOOST_OS_WINDOWS) && defined(_MT) && !defined(_DLL) # define BOOST_OS_WINDOWS_STATIC 1 #elif defined(BOOST_OS_WINDOWS) && defined(_MT) && defined(_DLL) # define BOOST_OS_WINDOWS_DYNAMIC 1 #elif defined(BOOST_OS_WINDOWS) # pragma warning(""Neither static nor dynamic runtime linking has been picked up"") #endif " noloader@… Boost 1.48.0 6664 std::setw() is ignored by operator<< for ptime, time_duration, and date date_time Boost 1.48.0 To Be Determined Bugs az_sw_dude new 2012-03-08T21:15:41Z 2012-03-08T21:15:41Z "The following complete program demonstrates the issue. when using operator<< to display a ptime/time_duration/date, then the setw() manipulator is ignored. My development environment is boost 1.48, building a 32-bit app on Win7 (x64) under VS2008. I consider this a cosmetic issue as there is a very simple work-aroud - simply manually convert the ptime/date/duration object to a string before inserting it into the ostream object. {{{ #include #include #include #include #include int main() { boost::posix_time::ptime const now = boost::posix_time::second_clock::local_time(); std::cout << ""\ncorrectly formatted: "" << std::setw(40) << boost::posix_time::to_simple_string(now) << ""\nptime: "" << std::setw(40) << now << ""\ntime_duration: "" << std::setw(40) << now.date() << ""\ndate: "" << std::setw(40) << now.time_of_day() << std::endl; } }}} " Mark van Dijk Boost 1.48.0 6704 Boost version of mpi_in_place mpi Boost 1.48.0 To Be Determined Bugs Matthias Troyer new 2012-03-19T10:33:21Z 2013-08-29T14:40:15Z "In some mpi collective operations, like [http://www.open-mpi.org/doc/v1.4/man3/MPI_Allreduce.3.php all_reduce], that have an input and output bufer of the same size, it is possible to specify the same buffer for both input and output by using the MPI_IN_PLACE constant as a sendbuffer (see above link). That feature does not seems to be supported through boost::mpi. This can be illustrated through the attached program: {{{ alainm@vai:~/code/boost/mpibug$ mpiexec -np 2 ./a.out This is P0 good This is P1 good alainm@vai:~/code/boost/mpibug$ }}} {{{ alainm@vai:~/code/boost/mpibug$ mpiexec -np 2 ./a.out bug terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): MPI_Allreduce: MPI_ERR_BUFFER: invalid buffer pointer [vai:03464] *** Process received signal *** terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): MPI_Allreduce: MPI_ERR_BUFFER: invalid buffer pointer [vai:03465] *** Process received signal *** [vai:03465] Signal: Aborted (6) [vai:03465] Signal code: (-6) [vai:03464] Signal: Aborted (6) [vai:03464] Signal code: (-6) [vai:03465] [ 0] [0x4002040c] [vai:03465] *** End of error message *** [vai:03464] [ 0] [0x4002040c] [vai:03464] *** End of error message *** -------------------------------------------------------------------------- mpiexec noticed that process rank 1 with PID 3465 on node vai exited on signal 6 (Aborted). -------------------------------------------------------------------------- 2 total processes killed (some possibly by mpiexec during cleanup) alainm@vai:~/code/boost/mpibug$ }}} " Alain Miniussi Boost 1.48.0 6719 Interprocess shared_memory 1.48 files deleted by prior versions... interprocess Boost 1.48.0 To Be Determined Bugs Ion Gaztañaga new 2012-03-20T19:55:34Z 2012-03-20T19:55:34Z "This is reproducible on OSX. In boost 1.48.0, shared_memory creates a folder in /tmp/ called boost_interprocess/ all shared memory files are put in that folder. In boost 1.47.0 and prior, shared_memory creates a folder in /tmp/ called boost_interprocess/ and in there, it would create another sub-directory named by the boottime. It would also delete any other folders/files located in /tmp/boost_interprocess The problem is, now that I am using boost 1.48, my application uses /tmp/boost_interprocess. If any program using boost 1.47.0 shared memory, it will delete every files and folder in /tmp/boost_interprocess (which is what boost 1.48 uses.) I surely have the access to all my programs, and can make sure we are all using boost 1.48+, but I can't guarantee that the user doesn't have a program using boost 1.47 or prior... To fix this, there's one easy way, change the folder name boost_interprocess to something else... boost_interprocess2 for example. Hence, boost 1.47 will only delete what's in /tmp/boost_interprocess and leave all the other programs using /tmp/boost_interprocess2 in peace... or you could give the option to the users to change that folder name." monkey.d@… Boost 1.48.0 6722 Incorrect behaviour of boost::iostreams::filtering_stream with boost::iterator_range iostreams Boost 1.48.0 To Be Determined Bugs Jonathan Turkanis new 2012-03-21T14:12:51Z 2012-10-08T03:13:57Z "Please consider the following code: {{{ #include #include #include template std::string read_to_string(Stream& stream) { std::ostringstream destStream; destStream << stream.rdbuf(); return destStream.str(); } void main() { std::istringstream sourceStream(""123""); std::istream_iterator begin(sourceStream); std::istream_iterator end; auto range = boost::make_iterator_range(begin, end); boost::iostreams::filtering_stream sourceFilteringStream; sourceFilteringStream.push(range, 1); std::string output = read_to_string(sourceFilteringStream); BOOST_ASSERT(""123"" == output); } }}} After each char from ""sourceStream"" it produces additional garbage char in ""output"" and triggers the assert (at least in VS10). I've traced it to this code in boost/iostreams/detail/adapter/range_adapter.hpp: {{{ template<> struct range_adapter_impl { template static std::streamsize read (Iter& cur, Iter& last, Ch* s,std::streamsize n) { std::streamsize rem = n; // No. of chars remaining. while (cur != last && rem-- > 0) *s++ = *cur++; return n - rem != 0 ? n - rem : -1; } ... }}} ""rem"" becomes -1 after the end of the while-loop and the return value after reading 1 char is 2." vadik.stepanov@… Boost 1.48.0 6761 boost::filesystem::absolute mixes generic and native format filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2012-04-03T15:53:15Z 2012-05-28T17:21:40Z "Under Windows: {{{ absolute(wpath(L""test/filename.ext"")).native() }}} returns something akin to c:\somedir\test/filename.ext The problem is that ''absolute'' uses the current working directory when no cwd is given and the cwd under windows uses backslash. wpath using forward slash is valid, but the resulting path uses both, back- and forward slash, which is invalid and cannot be passed to ::CreateFile for example. absolute must verify that all parts use the same path delimiter." hajokirchhoff Boost 1.48.0 6764 rbtree_best_fit breaks if allocation alignment doesn't match the segment manager alignment interprocess Boost 1.48.0 To Be Determined Bugs Ion Gaztañaga new 2012-04-05T08:11:57Z 2014-04-04T09:50:15Z "I have a shared memory queue. The memory segment is divided into 3 parts: a header, a fixed number of element descriptors and an area available for element bodies. The latter is managed by a segment manager with the rbtree_best_fit allocation strategy, which is initialized so that it doesn't use the area with the element descriptors. If the allocation strategy uses default alignment settings, everything works as expected. But if a stricter alignment requirement is specified (32 bytes in my case), the rbtree_best_fit::priv_add_segment function fails with assertion failure 'priv_end_block() == end_block'. Apparently, the root of the issue is in the fact that the segment manager itself in my case is not aligned to 32 bytes (but is aligned sufficiently to be operated on). This configuration worked fine with Boost 1.46 but fails with 1.48. I think, such configuration is valid and the code should be made to support it. I have attached a test case that demonstrates the issue. I'm running on Linux, x86-64, gcc 4.6. PS: I also have a side question. As you may see in the code, I try to estimate the shared memory segment size to allocate. I assume the segment manager will add an overhead per allocation for its bookkeeping but I failed to see how I can discover the amount of this overhead, so I hardcoded 64 bytes. Is there a better way to do this? " Andrey Semashev Boost 1.48.0 6775 "boost::filesystem::path cannot be created from lexical_cast("""")" filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2012-04-09T14:04:32Z 2012-04-09T14:04:32Z "The boost {{{filesystem::path}}} can hold an ""empty"" state, where {{{.string()}}} returns {{{""""}}}. It even has a designated check for this state, {{{empty()}}} This state is useful as a kind of null-value, to turn on or off certain behavior. However, this state cannot be reached through {{{lexical_cast}}}, the following code will for example end with a {{{boost::bad_lexical_cast}}} error. {{{ #include #include #include int main() { boost::filesystem::path str = boost::lexical_cast(""""); return 0; } }}} IMO, this is a bug. {{{path}}} clearly has a normal and useful {{{empty()}}} state, which cannot for some reason be reached through {{{lexical_cast}}}. The equivalent test works for {{{std::string}}}, for example, so should not be inherent problem with {{{lexical_cast}}} itself. One consequence is that {{{path}}} cannot be used as a value-type for {{{program_options}}}, while allowing options with default-values to be turned of using empty values. (I.E. {{{--config-file """"}}})" Ulrik Mikaelsson Boost 1.48.0 6957 Boost.units: static pow<>() fails for quantities with non-double type units Boost 1.48.0 To Be Determined Bugs Matthias Schabel new 2012-05-31T19:07:45Z 2012-05-31T19:07:45Z "Below is a short example depicting that pow<>() works only in the quantity in the argument has double precision representation. Hope that helps. ajaruga@granda:~/icicle$ cat test.cpp #include #include using namespace boost::units; int main() { quantity a = 1 * si::metres; quantity b = pow<3>(a); } ajaruga@granda:~/icicle$ g++ -Dreal_t=double test.cpp && echo OK OK ajaruga@granda:~/icicle$ g++ -Dreal_t=float test.cpp && echo OK test.cpp: In function ‘int main()’: test.cpp:7:44: error: conversion from ‘boost::units::power_typeof_helper >, boost::units::dimensionless_type>, boost::units::homogeneous_system > >, boost::units::list > > > > > > > > > >, float>, boost::units::static_rational<3l> >::type {aka boost::units::quantity >, boost::units::dimensionless_type>, boost::units::homogeneous_system > >, boost::units::list > > > > > > > > > >, double>}’ to non-scalar type ‘boost::units::quantity >, boost::units::dimensionless_type>, boost::units::homogeneous_system > >, boost::units::list > > > > > > > > > >, float>’ requested " Anna Jaruga Boost 1.48.0 7047 Deriving custom archive classes from boost::archive::text_oarchive_impl and boost::archive::text_iarchive_impl serialization Boost 1.48.0 To Be Determined Bugs Robert Ramey new 2012-06-29T05:31:07Z 2013-08-24T14:09:23Z "From here[http://stackoverflow.com/questions/10691911/deriving-custom-archive-classes-from-boostarchivetext-oarchive-impl-and-boos] Summary: After changing the base classes of my custom archives from binary_?archive_impl to text_?archive_impl, my custom archive classes are no longer ""found"" when the compiler is instantiating the serialize(...) methods in my other classes. Background: My application was successfully reading and writing files to disk using subclasses of binary_?archive_impl (the documentation and/or code comments recommend this over deriving from binary_?archive). I needed to switch from a binary file format to a text format, so I switched the base classes of my custom archives to text_?archive_impl. That's when everything blew up. The problem: My custom archive classes add functionality, including some additional methods which do not exist in their Boost base classes; these methods are called in the serialize(...) methods in many of my classes, and they were working fine. After changing the base classes from binary_?archive_impl to text_?archive_impl, I received compilation errors all over the place complaining that my custom methods do not exist in text_?archive. Well, that's obvious (!!!), but they do exist in my custom archives, and they were working just fine when I was using Boost's binary base classes. What's the deal? What I found, and my temporary - but undesirable - solution: After tearing my hair out and going around in circles for about a day, this is what I found... 1) Some time ago (Boost 1.34 I believe), the files ""binary_?archive.hpp"" were split up into ""binary_?archive_impl.hpp"" and ""binary_?archive.hpp"" (the latter #include the former). This was not done to ""text_?archive.hpp"". (As a result, I changed my application's #include lines from ""binary_?archive_impl.hpp"" to simply ""text_?archive.hpp"".) 2) If I split up ""text_?archive.hpp"" into two parts and #include only the ""..._impl.hpp"" headers, everything works. (But I really don't want to modify my Boost installation!) 3) Looking more closely at these headers and fiddling around a bit, I found that if I use the original, unmodified headers and comment out the line BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_oarchive) (and likewise for text_iarchive), then everything works fine again. (By the way I have similar lines in my own archive code to ""register"" my custom archives.)" zachais.vawter@… Boost 1.48.0 7670 Failed to compile boost 1.48.0 using Xcode 4.5.2 build Boost 1.48.0 To Be Determined Bugs Vladimir Prus new 2012-11-09T11:49:05Z 2013-10-12T13:20:21Z "I was trying to build boost 1.48.0 using xcode 4.5.2(LLVM 4.1) on Mac OS X 10.7.5 but got some compilation issues, I was building boost with c++11 and libc++ support Command: ./bjam toolset=clang debug-symbols=on cxxflags=""-std=c++11 -stdlib=libc++ -arch x86_64 -fvisibility=hidden"" linkflags=""-stdlib=libc++ -arch x86_64"" variant=debug link=static,shared threading=multi --layout=versioned --build-dir=./universal --stagedir=./boost_stage_universal/debug stage --with-filesystem Build Log: Component configuration: - chrono : not building - date_time : not building - exception : not building - filesystem : building - graph : not building - graph_parallel : not building - iostreams : not building - locale : not building - math : not building - mpi : not building - program_options : not building - python : not building - random : not building - regex : not building - serialization : not building - signals : not building - system : not building - test : not building - thread : not building - timer : not building - wave : not building ...patience... ...found 524 targets... ...updating 34 targets... clang-darwin.compile.c++ universal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi/error_code.o In file included from libs/system/src/error_code.cpp:18: In file included from ./boost/system/config.hpp:13: In file included from ./boost/config.hpp:40: In file included from ./boost/config/select_stdlib_config.hpp:37: In file included from ./boost/config/no_tr1/utility.hpp:21: In file included from /usr/bin/../lib/c++/v1/utility:125: In file included from /usr/bin/../lib/c++/v1/__tuple:16: /usr/bin/../lib/c++/v1/type_traits:737:2: error: #error is_base_of not implemented. #error is_base_of not implemented. ^ /usr/bin/../lib/c++/v1/type_traits:1700:13: error: use of undeclared identifier 'is_base_of' is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ /usr/bin/../lib/c++/v1/type_traits:1700:24: error: '_Class' does not refer to a value is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ /usr/bin/../lib/c++/v1/type_traits:1697:28: note: declared here template ^ /usr/bin/../lib/c++/v1/type_traits:1700:62: error: expected class name is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ In file included from libs/system/src/error_code.cpp:19: In file included from ./boost/system/error_code.hpp:16: In file included from ./boost/assert.hpp:82: In file included from /usr/bin/../lib/c++/v1/iostream:38: In file included from /usr/bin/../lib/c++/v1/ios:216: In file included from /usr/bin/../lib/c++/v1/__locale:15: In file included from /usr/bin/../lib/c++/v1/string:434: In file included from /usr/bin/../lib/c++/v1/algorithm:594: In file included from /usr/bin/../lib/c++/v1/memory:590: In file included from /usr/bin/../lib/c++/v1/typeinfo:61: /usr/bin/../lib/c++/v1/exception:194:20: error: use of undeclared identifier 'is_base_of' !is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:194:31: error: 'nested_exception' does not refer to a value !is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:166:29: note: declared here class _LIBCPP_EXCEPTION_ABI nested_exception ^ /usr/bin/../lib/c++/v1/exception:194:81: error: parameter declarator cannot be qualified !is_base_of::type>::value ~~^ /usr/bin/../lib/c++/v1/exception:194:85: error: expected ')' !is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:192:18: note: to match this '(' throw_with_nested(_Tp&& __t, typename enable_if< ^ /usr/bin/../lib/c++/v1/exception:213:19: error: use of undeclared identifier 'is_base_of' is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:213:30: error: 'nested_exception' does not refer to a value is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:166:29: note: declared here class _LIBCPP_EXCEPTION_ABI nested_exception ^ /usr/bin/../lib/c++/v1/exception:213:80: error: parameter declarator cannot be qualified is_base_of::type>::value ~~^ /usr/bin/../lib/c++/v1/exception:213:84: error: expected ')' is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:211:18: note: to match this '(' throw_with_nested(_Tp&& __t, typename enable_if< ^ In file included from libs/system/src/error_code.cpp:19: In file included from ./boost/system/error_code.hpp:16: In file included from ./boost/assert.hpp:82: In file included from /usr/bin/../lib/c++/v1/iostream:38: In file included from /usr/bin/../lib/c++/v1/ios:216: In file included from /usr/bin/../lib/c++/v1/__locale:18: In file included from /usr/bin/../lib/c++/v1/mutex:176: In file included from /usr/bin/../lib/c++/v1/__mutex_base:16: /usr/bin/../lib/c++/v1/system_error:247:1: error: C++ requires a type specifier for all declarations _LIBCPP_DECLARE_STRONG_ENUM(errc) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/bin/../lib/c++/v1/system_error:247:29: error: use of undeclared identifier 'errc' _LIBCPP_DECLARE_STRONG_ENUM(errc) ^ /usr/bin/../lib/c++/v1/system_error:247:34: error: expected ';' after top level declarator _LIBCPP_DECLARE_STRONG_ENUM(errc) ^ ; /usr/bin/../lib/c++/v1/system_error:344:1: error: C++ requires a type specifier for all declarations _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/bin/../lib/c++/v1/system_error:344:36: error: use of undeclared identifier 'errc' _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc) ^ /usr/bin/../lib/c++/v1/system_error:344:41: error: expected ';' after top level declarator _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc) ^ ; /usr/bin/../lib/c++/v1/system_error:457:1: error: 'inline' can only appear on functions inline _LIBCPP_INLINE_VISIBILITY ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. ""clang++"" -x c++ -O0 -g -std=c++11 -stdlib=libc++ -arch x86_64 -fvisibility=hidden -O0 -fno-inline -Wall -g -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -I""."" -c -o ""universal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi/error_code.o"" ""libs/system/src/error_code.cpp"" ...failed clang-darwin.compile.c++ universal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi/error_code.o... ...skipped libboost_system-clang-darwin42-mt-d-1_48.a(clean) for lack of error_code.o... ...skipped libboost_system-clang-darwin42-mt-d-1_48.a for lack of error_code.o... ...skipped libboost_system-clang-darwin42-mt-d-1_48.a for lack of libboost_system-clang-darwin42-mt-d-1_48.a... clang-darwin.compile.c++ universal/boost/bin.v2/libs/filesystem/build/clang-darwin-4.2.1/debug/link-static/threading-multi/v2/src/v2_operations.o In file included from libs/filesystem/v2/src/v2_operations.cpp:45: In file included from ./boost/filesystem/v2/operations.hpp:17: In file included from ./boost/filesystem/v2/config.hpp:30: In file included from ./boost/config.hpp:40: In file included from ./boost/config/select_stdlib_config.hpp:37: In file included from ./boost/config/no_tr1/utility.hpp:21: In file included from /usr/bin/../lib/c++/v1/utility:125: In file included from /usr/bin/../lib/c++/v1/__tuple:16: /usr/bin/../lib/c++/v1/type_traits:737:2: error: #error is_base_of not implemented. #error is_base_of not implemented. ^ /usr/bin/../lib/c++/v1/type_traits:1700:13: error: use of undeclared identifier 'is_base_of' is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ /usr/bin/../lib/c++/v1/type_traits:1700:24: error: '_Class' does not refer to a value is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ /usr/bin/../lib/c++/v1/type_traits:1697:28: note: declared here template ^ /usr/bin/../lib/c++/v1/type_traits:1700:62: error: expected class name is_base_of<_Class, typename remove_reference<_Tp>::type>::value> ^ In file included from libs/filesystem/v2/src/v2_operations.cpp:45: In file included from ./boost/filesystem/v2/operations.hpp:18: In file included from ./boost/filesystem/v2/path.hpp:21: In file included from ./boost/system/system_error.hpp:11: In file included from /usr/bin/../lib/c++/v1/string:434: In file included from /usr/bin/../lib/c++/v1/algorithm:594: In file included from /usr/bin/../lib/c++/v1/memory:590: In file included from /usr/bin/../lib/c++/v1/typeinfo:61: /usr/bin/../lib/c++/v1/exception:194:20: error: use of undeclared identifier 'is_base_of' !is_base_of::type>::value ^ /usr/bin/../lib/c++/v1/exception:194:31: error: 'nested_exception' does not refer to a value !is_base_of::type>::value " amol_ghatge@… Boost 1.48.0 7881 ASIO - don't use Winsock when compiling with Cygwin asio Boost 1.48.0 To Be Determined Bugs chris_kohlhoff new 2013-01-11T09:49:54Z 2013-01-17T07:40:02Z "It's not necessarily a bug, but an improvement. I checked why i can compile with the integrated boost library in normal Cygwin distribution and i cannot do the same with some other boost variant. The main difference is the __CYGWIN__ compile switch. In the Cygwin integration, the compile switch is removed and it will use linux sockets. The boost distributions force the usage of Winsock which clearly cause compile problems with Cygwin. Please remove the compile switch and just let it use the linux sockets. " Ionut Craioveanu Boost 1.48.0 9966 exponential_distribution returns negative zero random Boost 1.48.0 To Be Determined Bugs No-Maintainer new 2014-04-30T10:23:40Z 2015-02-27T23:13:00Z "The code below produces this output: 1.72296[[BR]] -0[[BR]] 0.295209[[BR]] 0.210905[[BR]] 0.930678[[BR]] {{{ #!c++ #include #include using namespace boost::random; using namespace std; int main() { ifstream mtfile; mtfile.open(""mt.dat""); //see attached file mt19937 mt; mtfile >> mt; mtfile.close(); for (int i = 0; i < 5; ++i) { cout << exponential_distribution(1.f)(mt) << endl; } return 0; } }}} " mazzamuto@… Boost 1.48.0 10384 Building boost 1.48.0 on Solaris with stlport4.6.2, File system is not building filesystem Boost 1.48.0 To Be Determined Bugs Beman Dawes new 2014-08-20T10:50:25Z 2014-08-20T10:50:25Z "Hi Team, I am trying to build boost on solaris with STLport-4.6.2. I am able to build few libraries but failed to build filesystem, wave and graph. I am pasting the errors here. Please let me know if there is any work around or patch available for it. ---------------------------- File system Errors ---------------------------- sun.compile.c++ bin.v2/libs/filesystem/build/sun/release/address-model-32/link-static/stdlib-stlport-4.6.2/threading-multi/v3/src/path.o ""./boost/filesystem/v3/path.hpp"", line 161: Error: iterator_traits is not a member of std. ""libs/filesystem/v3/src/path.cpp"", line 270: Where: While instantiating ""boost::filesystem3::path::path(const char*, const char*)"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: Instantiated from non-template code. ""./boost/filesystem/v3/path.hpp"", line 161: Error: "","" expected instead of ""<"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: While instantiating ""boost::filesystem3::path::path(const char*, const char*)"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: Instantiated from non-template code. ""./boost/filesystem/v3/path.hpp"", line 161: Error: Illegal value for template parameter. ""libs/filesystem/v3/src/path.cpp"", line 270: Where: While instantiating ""boost::filesystem3::path::path(const char*, const char*)"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: Instantiated from non-template code. ""./boost/filesystem/v3/path.hpp"", line 161: Error: Unexpected type name ""std::basic_string::value_type"" encountered. ""libs/filesystem/v3/src/path.cpp"", line 270: Where: While instantiating ""boost::filesystem3::path::path(const char*, const char*)"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: Instantiated from non-template code. ""./boost/filesystem/v3/path.hpp"", line 162: Error: The function ""s"" must have a prototype. ""libs/filesystem/v3/src/path.cpp"", line 270: Where: While instantiating ""boost::filesystem3::path::path(const char*, const char*)"". ""libs/filesystem/v3/src/path.cpp"", line 270: Where: Instantiated from non-template code. ""libs/filesystem/v3/src/path.cpp"", line 797: Error: Could not find a match for std::use_facet(std::locale) needed in static boost::filesystem3 ::path::wchar_t_codecvt_facet(). ""libs/filesystem/v3/src/path.cpp"", line 806: Error: Could not find a match for std::use_facet(std::locale) needed in static boost::filesystem3 ::path::imbue(const std::locale&). 7 Error(s) detected. -------------------------- Wave Errors -------------------------- ...failed sun.compile.c++ bin.v2/libs/wave/build/sun/release/address-model-32/link-static/stdlib-stlport-4.6.2/threading-multi/instantiate_predef_macros.o ... sun.compile.c++ bin.v2/libs/wave/build/sun/release/address-model-32/link-static/stdlib-stlport-4.6.2/threading-multi/instantiate_re2c_lexer.o ""./boost/wave/util/flex_string.hpp"", line 124: Error: Templates can only declare classes or functions. ""./boost/wave/util/flex_string.hpp"", line 126: Error: "","" expected instead of ""!="". ""./boost/wave/util/flex_string.hpp"", line 126: Error: A declaration was expected instead of ""--"". ""./boost/wave/util/flex_string.hpp"", line 126: Error: Multiple declaration for n. ""./boost/wave/util/flex_string.hpp"", line 126: Error: Use "";"" to terminate declarations. ""./boost/wave/util/flex_string.hpp"", line 126: Error: A declaration was expected instead of ""++"". ""./boost/wave/util/flex_string.hpp"", line 126: Error: Use "";"" to terminate declarations. ""./boost/wave/util/flex_string.hpp"", line 126: Error: A declaration was expected instead of ""++"". ""./boost/wave/util/flex_string.hpp"", line 126: Error: "","" expected instead of "")"". ""./boost/wave/util/flex_string.hpp"", line 130: Error: A declaration was expected instead of ""return"". ""./boost/wave/util/flex_string.hpp"", line 2605: Error: A declaration was expected instead of ""}"". ""./boost/wave/util/flex_string.hpp"", line 2606: Error: A declaration was expected instead of ""}"". ""./boost/wave/token_ids.hpp"", line 359: Error: flex_string is not a member of boost::wave::util. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration does not specify a tag or an identifier. ""./boost/wave/token_ids.hpp"", line 359: Error: Use "";"" to terminate declarations. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration was expected instead of ""<"". ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration does not specify a tag or an identifier. ""./boost/wave/token_ids.hpp"", line 359: Error: Use "";"" to terminate declarations. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration was expected instead of "","". ""./boost/wave/token_ids.hpp"", line 359: Warning: declarator required in declaration. ""./boost/wave/token_ids.hpp"", line 359: Error: Use "";"" to terminate declarations. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration was expected instead of "","". ""./boost/wave/token_ids.hpp"", line 359: Warning: declarator required in declaration. ""./boost/wave/token_ids.hpp"", line 359: Error: Use "";"" to terminate declarations. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration was expected instead of "","". ""./boost/wave/token_ids.hpp"", line 359: Error: CowString is not a member of boost::wave::util. ""./boost/wave/token_ids.hpp"", line 359: Error: A declaration does not specify a tag or an identifier. Compilation aborted, too many Error messages. ""CC"" -xO4 -mt -erroff=%none -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_USE_LIB=1 -DNDEBUG -D_STLP_USE_DYNAMIC_LIB=1 -I""."" -I""/sw/source/mer_misc_libs/ST Lport-4.6.2"" -c -o ""bin.v2/libs/wave/build/sun/release/address-model-32/link-static/stdlib-stlport-4.6.2/threading-multi/instantiate_re2c_lexer.o"" ""libs/w ave/src/instantiate_re2c_lexer.cpp"" Please let me know in case, there is already resolution present. Command used to build is: --------------------------- bjam --without-python toolset=sun stdlib=stlport-4.6.2 address-model=32 stage --d2 user_config has below input: ------------------------------ using stlport : 4.6.2 : /sw/source/mer_misc_libs/STLport-4.6.2 : /sw/source/mer_misc_libs/STLport-4.6.2/lib ; " harshaltan@… Boost 1.48.0 12073 Why read callback not call asio Boost 1.48.0 To Be Determined Bugs chris_kohlhoff new 2016-03-17T01:45:12Z 2017-06-14T08:21:49Z "I write a simple test server but meet a strange problem. In my test server, I start a 10 threads pool to run io_service.run function. I created a boost::asio::ip::tcp::acceptor object and call 'listen' function, final call 'async_accept' to start a asynchronous operation. Then if a client connect to server, the accept callback function will be called. In accept callback function, I do three thing: 1, create a boost::asio::strand object 2, create a boost::asio::deadline_timer object to set timeout, if the client does not send any data for 5 seconds, the timer callback will be called. In this timer callback, the server will send a hearbeat request to client and expect to receive a hearbeat response from the client. 3, call async_read_some to set read callback function. Of cause 'async_wait' in step 2 and 'async_read_some' call in step 3 are both wrapper in strand object which is created in step 1. To test this server, I write a demo python client. This demo client just connect to server and send hearbeat request to server, then expect to receive a hearbeat response. I set a crontab task to call this demo python client every one minute. The most tests are OK, but the test would random fail. Everytime it failed, I have checked the output of tcpdump on server, the server successfully receives the hearbeat request, but the read callback function is not called. So why the read callback function is not called just when the hearbeat request is received. It looks like the read event is missing, is it about edge trigger in epoll? This random failure could reproduce on both CentOS 6.5 and CentOS 6.6, the boost version is boost 1.48.0, the compiler is gcc 4.4.7. Does anyone meet this bug?" zhjie007@… Boost 1.48.0 3940 BOOST_SCOPE_EXIT without arguments scope_exit Boost 1.48.0 To Be Determined Feature Requests nasonov reopened 2010-02-17T16:19:51Z 2011-11-23T12:33:26Z "Why the following code doesn't work ?? {{{ #!cpp BOOST_SCOPE_EXIT() { puts(""Exit""); } BOOST_SCOPE_EXIT_END }}} But this does work: {{{ #!cpp int dummy; BOOST_SCOPE_EXIT( (dummy) ) { puts(""Exit""); } BOOST_SCOPE_EXIT_END }}}" anonymous Boost 1.48.0 6088 Function boost::asio::buffer() doesn't support boost::container::vector. asio Boost 1.48.0 To Be Determined Feature Requests chris_kohlhoff new 2011-11-03T16:36:17Z 2011-11-03T16:36:17Z Function boost::asio::buffer() isn't overloaded for containers from library Boost.container. Vladislav Boost 1.48.0 6144 Boost::Pool doc needs a FAQ Q/A about thread-safety pool Boost 1.48.0 To Be Determined Feature Requests John Maddock new 2011-11-18T14:00:06Z 2012-07-16T20:05:01Z "See http://stackoverflow.com/questions/1663284/is-boostobject-pool-synchronized Thread-safety is only mentioned in the singleton pool doc, not saying that all the remaining is not thread-safe. Thread-safety could be something wanted for memory alloc/dealloc, on boost::pool too (even if performance is one of its goals)." moala@… Boost 1.48.0 6216 Add an unwrap adaptor to Range range Boost 1.48.0 To Be Determined Feature Requests Neil Groves new 2011-12-05T16:28:51Z 2011-12-05T16:28:51Z "Iterator adaptors can be easily unwrapped by calling `iterator .base ()`; range adaptors should provide a similar functionality. My implementation: {{{ #!cpp namespace boost { namespace adaptors { namespace detail { struct unwrap_forwarder {}; template < class P_R > inline ::boost:: iterator_range < typename ::boost:: range_iterator < P_R >:: type:: base_type > operator | (P_R const &p_r, detail:: unwrap_forwarder const &) { return ::boost:: make_iterator_range (::boost:: begin (p_r). base (), ::boost:: end (p_r). base ()); } /* !boost.adaptors.|unwrapped X */ } /* &boost.adaptors.detail X */ namespace { detail:: unwrap_forwarder const (&unwrapped) ((detail:: unwrap_forwarder ())); } } /* &boost.adaptors X */ } /* &boost X */ }}} My test: {{{ #!cpp int main () { ::boost:: iterator_range < ::std:: string:: const_iterator > ((::boost:: equal_range (::std:: string () | ::boost:: adaptors:: transformed (::std:: negate < int > ()), 0) | ::boost:: adaptors:: unwrapped)); } }}}" ne01026@… Boost 1.48.0 6240 iterator_size iterator Boost 1.48.0 To Be Determined Feature Requests jeffrey.hellrung new 2011-12-08T10:43:21Z 2012-11-21T22:20:44Z "Could you add iterator_size to boost/iterator/iterator_traits.hpp? It'd be size_t for pointers and, since std::iterator_traits does not yet define size_type, make_unsigned iterator_difference. It'd be used for the size of a range as given by a valid pair of iterators. " Olaf van der Spek Boost 1.48.0 6250 allow sorting through an adaptor iterator Boost 1.48.0 To Be Determined Feature Requests jeffrey.hellrung new 2011-12-10T22:15:54Z 2012-11-21T22:39:46Z "The following code does not compile because the transform adaptor offers a proxy reference that cannot be modified: {{{ #!c++ #include #include #include #include #include #include struct underlying { int m_; }; int main (int, char *[]) { enum LocalParam { BASE = 073, VALUE = 030 }; typedef ::boost ::array < underlying, +BASE - 01 > mycont; mycont v; for (::boost ::range_iterator < mycont >:: type p ((::boost ::begin (v))); p < ::boost ::end (v); ++p) p -> m_ = p == ::boost ::begin (v)? +VALUE: p [-01] .m_ * VALUE % BASE; ::boost ::copy (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1)), ::std ::ostream_iterator < int, ::std ::istream ::char_type > (::std:: cout, "" "")); ::std ::cout << '\n'; ::boost ::sort (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1))); ::boost ::copy (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1)), ::std ::ostream_iterator < int, ::std ::istream ::char_type > (::std:: cout, "" "")); return (::std ::cout << '\n') .flush ()? +EXIT_SUCCESS: +EXIT_FAILURE; } }}} This is a deficiency because, when you have relational data packaged in a container, you often wish to create various indices based on various aspects of the data. This is currently unsupported by Boost, except for Multi-Index, but Multi-Index does not allow you to create a detached index; instead, it insists on maintaining all indices dynamically all the time, which is not always necessary and it brings a performance penalty compared to sorting static data. I have implemented the missing adaptor and called it '''shufflebase'''; when applied to an adaptor, it allows the sort algorithm to rearrange the ''original container'' based on ''the ordering of the adaptor''. Here is the adaptor code; note that it does not carry any algorithm, only type juggling and general logistics: {{{ #!c++ #include /* boost:: iterator_range */ #ifndef BOOST_RANGE_ADAPTOR_SHUFFLEBASE_DEFINED #if 1 namespace boost { /* the following declarations are used in namespace adaptors; they are here to keep the namespace in one piece */ #if 2 namespace traits { template < class P_I > struct shufflebase; } #endif /* &boost.traits */ template < class P_I > class shufflebase_iterator; #if 2 namespace adaptors { /* a forward declaration for operator | */ template < class P_R > struct shufflebase_range; #if 3 namespace detail { struct /* tag enabler for operator | */ shufflebase_forwarder {}; template < class P_R > inline struct shufflebase_range < P_R const > /* applies the shufflebase adaptor to a range */ operator | (P_R const &p_r, struct detail:: shufflebase_forwarder ); } #endif /* &boost.adaptors.detail */ #if 3 namespace /* static */ { detail :: shufflebase_forwarder const /* the formal parameter for operator | */ (&shufflebase) ((detail ::shufflebase_forwarder ())); } #endif /* &boost.adaptors.static */ #if 3 namespace traits { template < class P_T > struct shufflebase_range; } #endif /* &boost.adaptors.traits & */ #if 3 template < class P_R > /* applies shufflebase_iterator to the range */ struct shufflebase_range :public traits ::shufflebase_range < P_R > ::base { public: inline shufflebase_range (P_R &p_r); private: typedef traits ::shufflebase_range < P_R > traits; private: typedef typename traits ::base base; public: typedef typename traits ::iterator iterator; }; #endif /* #boost.adaptors.shufflebase_range */ #if 3 namespace traits { #if 4 template < class P_R > /* typedefs for shufflebase_range proper */ struct shufflebase_range { typedef ::boost :: shufflebase_iterator < typename ::boost ::range_iterator < P_R > ::type > iterator; typedef struct ::boost ::iterator_range < iterator > base; }; #endif /* #boost.adaptors.traits.shufflebase_range */ } #endif /* &boost.adaptors.traits */ } #endif /* &boost.adaptors */ #if 2 template < class P_I > /* Behaves transparently when applied to an adapted iterator except that assignments are possible and apply to the underlying base */ class shufflebase_iterator :public /* iterator faciade */ traits:: shufflebase < P_I >:: base_type { public: /* constructs from an adapted iterator */ inline shufflebase_iterator (P_I const &); public: /* inherited */ typedef typename shufflebase_iterator ::reference reference; public: /* returns a proxy reference */ inline reference /* safety net: exclude application of default operator = to temporary */ const operator* () const; public: /* inherited */ typedef typename shufflebase_iterator ::value_type value_type; public: /* assigns the value to the base element, bypassing the adaptor */ inline void assign (value_type const &p_v) const; public: /* bookkeeping */ typedef typename traits:: shufflebase < P_I >:: base_type inherited; }; #endif /* #boost.shufflebase_iterator */ #if 2 namespace detail { template < class P_I > class shufflebase_reference; #if 3 template < class P_I > /* Stores a value of an iterator. This class plays a double duty: it stores the base value for assigning to a reference and it caches the adapted value for comparisons. This causes some memory overhead that I believe is unavoidable without knowing the details of the managed adaptor. Moreover, caching the adapted value may speed things up a bit. This class is necessary because the sorting algorithm puts some values aside for later use. */ class shufflebase_value { public: /* bookkeeping */ typedef P_I base_type; public: /* construct from a reference */ inline shufflebase_value (class shufflebase_reference < base_type > const &p_r); public: /* the adapted value type */ typedef typename ::std ::iterator_traits < base_type > ::value_type adapted; public: /* compares as adapted */ inline operator adapted const &() const; private: /* the adapted value */ adapted m_adapted; public: /* the base value type */ typedef typename traits ::shufflebase < base_type > ::base_value base_value; private: /* the base value */ base_value m_base; public: /* returns the base value for assignment (the adapter is meant to affect the base container, remember? */ inline base_value const &base () const; }; #endif /* #boost.detail.shufflebase_value */ #if 3 template < class P_I > /* A proxy class serving as reference type for shufflebase_iterator. Implicitly converts to the adapted reference for comparisons. Assignment affects the base object instead. */ class shufflebase_reference { public: /* bookkeeping */ typedef P_I base_type; public: /* the adapted reference type */ typedef typename ::std ::iterator_traits < base_type > ::reference reference; public: /* compares as adapted */ inline operator reference const () const; public: /* the adapted value type */ typedef class shufflebase_value < base_type > value_type; public: /* assigned value goes to base */ inline shufflebase_reference const &operator= (value_type const &p_v) const; public: /* constructor */ inline shufflebase_reference (shufflebase_iterator < base_type > const &); private: /* the proxied iterator */ shufflebase_iterator < base_type > const &m_ref; public: /* extract the base value for assigning to a value object */ inline typename ::std ::iterator_traits < typename base_type:: base_type > ::value_type const &base () const; private: /* references are not assignable */ void operator = (shufflebase_reference const &); }; #endif /* #boost.detail.shufflebase_reference */ } #endif /* &boost.detail */ #if 2 namespace traits { #if 3 template < class P_I > /* contains typedefs for shufflebase_iterator */ struct shufflebase { /* bookkeeping */ typedef P_I iterator; /* the base type for shufflebase_iterator */ typedef ::boost ::iterator_adaptor < class shufflebase_iterator < iterator >, iterator, class detail:: shufflebase_value < iterator >, ::boost:: use_default, class detail:: shufflebase_reference < iterator > > base_type; /* the base value */ typedef typename ::std ::iterator_traits < typename iterator ::base_type >:: value_type base_value; /* The proper place to define base_value would be class shufflebase_value; however, this type is shared by other auxiliary classes; they depend on each other, causing the compiler to fail. */ }; #endif /* #boost.traits.shufflebase */ } #endif /* &boost.traits */ } #endif /* &boost */ #define BOOST_RANGE_ADAPTOR_SHUFFLEBASE_DEFINED #endif #ifndef BOOST_RANGE_ADAPTOR_SHUFFLEBASE_IMPLEMENTED #if 1 namespace boost { #if 2 namespace adaptors { #if 3 namespace detail { #if 4 template inline struct shufflebase_range < P_R const > operator | (P_R const &p_r, shufflebase_forwarder) { return shufflebase_range < P_R const > (p_r); } #endif /* !boost.adaptors.shufflebase_range.operator| */ } #endif /* &boost.adaptors.detail */ #if 3 template < class P_R > inline shufflebase_range < P_R > ::shufflebase_range (P_R &p_r) :base (iterator (::boost ::begin (p_r)), iterator (::boost ::end (p_r))) {} #endif /* !boost.adaptors.shufflebase_range.shufflebase_range */ } #endif /* &boost.adaptors */ #if 2 template < class P_I > inline typename shufflebase_iterator < P_I > ::reference const shufflebase_iterator < P_I > ::operator * () const { return *this; } #endif /* !boost.shufflebase_iterator.operator * */ #if 2 namespace detail { #if 3 template < class P_I > inline shufflebase_reference < P_I > ::operator reference const () const { return *this -> m_ref. base (); } #endif /* !boost.detail.shufflebase_reference::reference */ #if 3 template < class P_I > inline shufflebase_reference < P_I > const &shufflebase_reference < P_I > ::operator = (value_type const &p_v) const { this -> m_ref .assign (p_v); return *this; } #endif /* !boost.detail.shufflebase_reference::operator = */ #if 3 template < class P_I > inline shufflebase_reference < P_I > ::shufflebase_reference (shufflebase_iterator < P_I > const &p_ref) :m_ref (p_ref) {} #endif /* !boost.detail.shufflebase_reference.shufflebase_reference */ #if 3 template < class P_I > inline shufflebase_value < P_I > ::shufflebase_value (class shufflebase_reference < P_I > const &p_r) :m_adapted (p_r), m_base (p_r. base ()) {} #endif /* !boost.detail.shufflebase_value.shufflebase_value */ #if 3 template < class P_I > inline shufflebase_value < P_I >:: operator adapted const & () const { return this -> m_adapted; } #endif /* !boost.detail.shufflebase_value.adapted & */ #if 3 template < class P_I > inline typename ::std ::iterator_traits < typename P_I ::base_type > ::value_type const &shufflebase_reference < P_I > :: base () const { return *this -> m_ref .base () .base (); } #endif /* !boost.detail.shufflebase_reference.base */ #if 3 template < class P_I > typename shufflebase_value < P_I > ::base_value const &shufflebase_value < P_I > ::base () const { return this -> m_base; } #endif /* !boost.detail.shufflebase_value.base */ } #endif /* &boost.detail */ #if 2 template < class P_I > inline shufflebase_iterator < P_I >:: shufflebase_iterator (P_I const &p_i) :inherited (p_i) { } #endif /* !boost.shufflebase_iterator. */ #if 2 template < class P_I > inline void shufflebase_iterator < P_I > ::assign (value_type const &p_v) const { *this -> base (). base () = p_v. base (); } #endif /* !boost.shufflebase_iterator.assign */ } #endif /* &boost */ #define BOOST_RANGE_ADAPTOR_SHUFFLEBASE_IMPLEMENTED #endif }}} Having this, the following code becomes valid: {{{ #!c++ #include #include #include #include #include #include struct underlying { int m_; }; int main (int, char *[]) { enum LocalParam { BASE = 073, VALUE = 030 }; typedef ::boost ::array < underlying, +BASE - 01 > mycont; mycont v; for (::boost ::range_iterator < mycont >:: type p ((::boost ::begin (v))); p < ::boost ::end (v); ++p) p -> m_ = p == ::boost ::begin (v)? +VALUE: p [-01] .m_ * VALUE % BASE; ::boost ::copy (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1)), ::std ::ostream_iterator < int, ::std ::istream ::char_type > (::std:: cout, "" "")); ::std ::cout << '\n'; ::boost ::sort (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1)) | ::boost ::adaptors ::shufflebase); ::boost ::copy (v | ::boost ::adaptors ::transformed (::boost ::bind (&underlying ::m_, _1)), ::std ::ostream_iterator < int, ::std ::istream ::char_type > (::std:: cout, "" "")); return (::std ::cout << '\n') .flush ()? +EXIT_SUCCESS: +EXIT_FAILURE; } }}} and it produces the following output: 24 45 18 19 43 29 47 7 50 20 8 15 6 26 34 49 55 22 56 46 42 5 2 48 31 36 38 27 58 35 14 41 40 16 30 12 52 9 39 51 44 53 33 25 10 4 37 3 13 17 54 57 11 28 23 21 32 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 " giecrilj@… Boost 1.48.0 6279 "asio needs ""poll"" with timeout" asio Boost 1.48.0 To Be Determined Feature Requests chris_kohlhoff new 2011-12-16T16:51:19Z 2011-12-16T16:51:19Z "There were much of discussion about synchronous operations in asio with timeouts, bug #2832 for example. The main argument against it was difficulties with composed operations. I propose a compromise: some form of ""poll"" with timeout (poll_read/poll_write or something like that). I mean synchronous version of async_read_some(null_buffers()). If it will be implemented, it will be easy to write sync read with timeout, using combination of poll_read/read_some. I'm sure this ""portable poll"" will be very useful." Gennady Proskurin Boost 1.48.0 6281 Concepts for MPL mpl Boost 1.48.0 To Be Determined Feature Requests Joel Falcou new 2011-12-16T22:25:25Z 2011-12-17T17:17:44Z Attached please find implementation of concepts for MPL sequences and iterators. This includes some archtypes as well as some testing of the mpl implementations. This isn't quite complete, but it does do enough to help me find some errors in my mpl usage. Robert Ramey Boost 1.48.0 6297 Warning under VC numeric Boost 1.48.0 To Be Determined Feature Requests Douglas Gregor new 2011-12-19T15:57:09Z 2011-12-19T15:57:09Z "Warning text:[[BR]] c:\test\boost\boost\numeric\conversion\detail\converter.hpp(166) : warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) c:\test\boost\boost\numeric\conversion\detail\converter.hpp(165) : while compiling class template member function 'boost::numeric::range_check_result boost::numeric::convdetail::GT_HiT::apply(bool)' with [ Traits=conv_traits ] c:\test\boost\boost\numeric\conversion\detail\converter.hpp(236) : see reference to class template instantiation 'boost::numeric::convdetail::GT_HiT' being compiled with [ Traits=conv_traits ] c:\test\boost\boost\numeric\conversion\detail\converter.hpp(288) : see reference to class template instantiation 'boost::numeric::convdetail::combine' being compiled with [ PredA=boost::numeric::convdetail::non_applicable, PredB=boost::numeric::convdetail::GT_HiT ] c:\test\boost\boost\numeric\conversion\detail\converter.hpp(287) : while compiling class template member function 'boost::numeric::range_check_result boost::numeric::convdetail::generic_range_checker::out_of_range(bool)' with [ Traits=conv_traits, IsNegOverflow=boost::numeric::convdetail::non_applicable, IsPosOverflow=boost::numeric::convdetail::GT_HiT, OverflowHandler=boost::numeric::numeric_cast_traits::overflow_policy ] c:\test\boost\boost\numeric\conversion\detail\converter.hpp(508) : see reference to class template instantiation 'boost::numeric::convdetail::generic_range_checker' being compiled with [ Traits=conv_traits, IsNegOverflow=boost::numeric::convdetail::non_applicable, IsPosOverflow=boost::numeric::convdetail::GT_HiT, OverflowHandler=boost::numeric::numeric_cast_traits::overflow_policy ] c:\test\boost\boost\numeric\conversion\converter.hpp(35) : see reference to class template instantiation 'boost::numeric::convdetail::non_rounding_converter' being compiled with [ Traits=conv_traits, RangeChecker=boost::numeric::convdetail::generic_range_checker,boost::numeric::numeric_cast_traits::overflow_policy>, RawConverter=boost::numeric::raw_converter ] c:\test\boost\boost\numeric\conversion\cast.hpp(53) : see reference to class template instantiation 'boost::numeric::converter' being compiled with [ T=int, S=bool, Traits=conv_traits, OverflowHandler=boost::numeric::numeric_cast_traits::overflow_policy, Float2IntRounder=boost::numeric::Trunc, RawConverter=boost::numeric::raw_converter, UserRangeChecker=boost::numeric::numeric_cast_traits::range_checking_policy ] The code that may lead to warning is like this: {{{ int val = boost::numeric_cast(true); }}} " Antony Polukhin Boost 1.48.0 6299 c++11: Provide move semantic for bind function phoenix Boost 1.48.0 To Be Determined Feature Requests Thomas Heller new 2011-12-19T18:08:51Z 2011-12-19T18:14:13Z "Provide a c++11 compliant bind function on compilers supporting rvalue references. 20.8.9.1.2 Function template bind template unspecified bind(F&& f, BoundArgs&&... bound_args); template unspecified bind(F&& f, BoundArgs&&... bound_args);" viboes Boost 1.48.0 6300 c++11: Provide move semantic for tuple class and factory functions fusion Boost 1.48.0 To Be Determined Feature Requests Joel de Guzman new 2011-12-19T18:19:49Z 2011-12-19T18:19:49Z "Provide a c++11 move semantic compliant tuple class and factory functions on compilers supporting rvalue references. On C++03 compilers use the Boost.Move emulation. 20.4.2 Class template tuple {{{ template explicit tuple(UTypes&&...); tuple(tuple&&) = default; template tuple(tuple&&); template tuple(pair&&); tuple& operator=(tuple&&) noexcept; template tuple& operator=(tuple&&); template tuple& operator=(pair&&) noexcept; }}} " viboes Boost 1.48.0 6442 Let the user work with a header-only library system Boost 1.48.0 To Be Determined Feature Requests Beman Dawes new 2012-01-23T22:14:22Z 2012-01-24T15:35:50Z Many libraries using Boost.System directly or indirectly could find more user if Boost.System were a header-only library. viboes Boost 1.48.0 6461 12-hour clock support for time_input_facet date_time Boost 1.48.0 To Be Determined Feature Requests az_sw_dude new 2012-01-29T09:03:29Z 2012-01-29T09:03:29Z "Please implement 12-hour clock format options for time_input_facet (%I, %l, %p, %P). Thanks!" dev@… Boost 1.48.0 6521 Directory listing using C++11 range-based for loops filesystem Boost 1.48.0 To Be Determined Feature Requests Beman Dawes assigned 2012-02-04T18:15:21Z 2017-06-13T14:11:26Z "I have written a simple 'container' class for a directory, 'containing' all of its subdirectories: {{{ namespace boost{ namespace filesystem{ class directory{ path p_; public: inline directory(path p):p_(p){ return; } directory_iterator begin(){ return directory_iterator(p_); } directory_iterator end(){ return directory_iterator(); } }; } } }}} so that that range-based for loop can be used: {{{ for(auto i:directory(""/home"")){ ... } }}}" mustrumr97@… Boost 1.48.0 6590 BOOST_AUTO fails on C++11 lambdas typeof Boost 1.48.0 To Be Determined Feature Requests Peder Holt new 2012-02-21T22:46:09Z 2012-02-21T22:46:09Z "`BOOST_AUTO` fails on C++11 lambdas as follows (tested with g++ 4.6.2-14ubuntu2): {{{ #!C++ #include BOOST_AUTO(f, [](){}); }}} {{{ $ g++ -c -std=c++0x test.cc test.cc:2:1: error: lambda-expression in unevaluated context test.cc:2:1: error: conversion from ‘’ to non-scalar type ‘’ requested }}} Although it’s apparently not possible to use `typeof` or `decltype` on a lambda expression, this could be fixed by defining `BOOST_AUTO` with C++11 `auto` on compilers that support it: {{{ #!C++ #define BOOST_AUTO(Var, Expr) auto Var = Expr BOOST_AUTO(f, [](){}); }}} " Anders Kaseorg Boost 1.48.0 6591 Download of boost source and documentation should be separate Documentation Boost 1.48.0 To Be Determined Feature Requests No-Maintainer new 2012-02-22T16:34:19Z 2012-11-08T11:14:06Z "The documentation bundle should be separated into a different archive for download from the actual library code. This would make extracting just the libraries much faster for initial setup especially if someone doesn't want the documentation locally anyway." business2008+boost.org@… Boost 1.48.0 6610 customizing boost::pool/boost::object_pool via template parameter for ordered/non-ordered usage pool Boost 1.48.0 To Be Determined Feature Requests John Maddock new 2012-02-24T17:38:44Z 2012-07-16T20:01:58Z "1. A documentation conflict between declaration and definition of boost::pool::purge_memory(). The definition documentation is {{{ //! pool must be ordered }}} , but the declaration documentation does not provide this information. 2. Version of non-ordered boost::pool::release_memory() Thereby there is the question - are there any differences in implementation or perfomance of ordered/non-ordered versions of this function? 3. Providing ordered/non-ordered release_memory() and purge_memory() for boost::object_pool 4. Efficient(non-ordered) construct/destroy of single objects in boost::object_pool(i.e. when boost::object_pool will be used for allocating single objects only, not arrays of objects) 5. Introduce some template parameter in the boost::object_pool(and in the boost::pool) in order to customize the pool for ordered/non-ordered or both usage." rad_d@… Boost 1.48.0 6683 find family of functions needs const Range1T& Input overloads algorithm Boost 1.48.0 To Be Determined Feature Requests Marshall Clow assigned 2012-03-13T14:16:05Z 2012-03-14T08:54:17Z It's cumbersome to have to create named temporaries when searching using these functions. I presume the reason for why Input isn't const is due to the fact that iterator_range<> that's returned can modify Input. In the spirit of std & the rest of boost I propose an overload which returns const_iterator_range<>, which would provide the same functionality as iterator_range<> save for being able to modify the source. sairony@… Boost 1.48.0 6752 Addition of cbrt, min, max units Boost 1.48.0 To Be Determined Feature Requests Matthias Schabel new 2012-03-31T08:18:23Z 2012-03-31T08:18:23Z LS, please consider adding the cubic root and min/max functions to the boost.units library. I have included an implementation and unit tests (all fairly trivial) in cmath.hpp and test_cmath.cpp. Maybe the min/max should be placed elsewhere as these are not part of the original cmath header-it might be nice to have a place (header) for future similar additions. Thanks for your consideration! - Pieter pieterb@… Boost 1.48.0 6180 "attributes string ascii escape ""&#nn;"" shouldn't throw exception" property_tree Boost 1.48.0 To Be Determined Patches Sebastian Redl new 2011-11-28T12:49:07Z 2011-11-28T12:49:07Z " In boost/property_tree/detail/rapidxml.hpp At member function template {{{ template static Ch *skip_and_expand_character_refs(Ch *&text) }}} It supports escape ""&"", """"", "">"", ""<"" and ""&#nn;"". (nn is number, xnn is also supported. When the member function template find the charactor '&' it starts parsing. And if it couldn't find the correct match, escape string is ignore and just copy '&' verbatim. But in the case of ""&#nn"", the error below would occur. And this error throw the parse_error exception. {{{ BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR(""expected ;"", src); }}} I expect just ignore instead of the error. This behavior is same as other escape string's manner. I attached patch. Could you check it? " kondo@… Boost 1.48.0 6322 Improper string formatting in example asio Boost 1.48.0 To Be Determined Patches chris_kohlhoff new 2011-12-24T22:26:51Z 2011-12-24T23:38:13Z "doc/html/boost_asio/example/chat/chat_message.hpp has an improper string formatting that can cause compiler noisiness. " filmorependrgn@… Boost 1.48.0 6451 Patch to allow user to specify other current filename macro on ASSERT utility Boost 1.48.0 To Be Determined Patches Beman Dawes new 2012-01-26T17:12:11Z 2013-02-08T14:48:09Z "When BOOST_ENABLE_ASSERT_HANDLER is defined, compiler generates a string with function name. If a function is templated, compiler will generate a string for each function template. That leads to a huge binary files. Attached patch, that allows to disable construction of such strings or to use different macro for current function name (for example macro that prints ONLY function name). [http://lists.boost.org/Archives/boost/2012/01/189853.php More info]" Antony Polukhin Boost 1.48.0 8607 Duplicate Symbols when using Parameter or Graph Library on HP-UX parameter Boost 1.48.0 To Be Determined Patches Daniel Wallin new 2013-05-22T20:44:04Z 2013-05-22T20:44:04Z "On HP-UX 11i v2 (B.11.23), using gcc 4.0.1 and the native linker (ld B.11.59) When linking a shared library which has multiple object files using the Boost Graph library or other code using the Parameter library, the link process fails with several dozen ""duplicate symbol"" errors, such as: [18:50:06]/usr/ccs/bin/ld: Duplicate symbol ""boost::graph::keywords::(anonymous namespace)::_vertices_equivalent"" in files .libs/a.o and .libs/b.o Root cause seems to be that the linker has an issue collapsing variables defined with a templated type into a single definition; specifically when boost/parameter/name.hpp is included in multiple files. This also appears to be an issue with versions of MSVC before 1300. The attached patch file corrects the issue by enabling the same fix for MSVC <1300 when compiled on HPPA systems. Note that this issue does not appear on HPUX 11.23 Itanium (ia64), which has a different native linker implementation." James Hugard Boost 1.48.0 6325 InterlockedExchangeAdd improperly identified as managed code. asio Boost 1.48.0 To Be Determined Support Requests chris_kohlhoff new 2011-12-27T21:44:57Z 2013-05-24T03:15:34Z "There is a Microsoft C++ bug that causes InterlockedExchangeAdd to improperly be identified as managed code instead of native code. A workaround is mentioned here: http://connect.microsoft.com/VisualStudio/feedback/details/629931/internal-compiler-error-c1001-when-compiling-opencv-2-1-2-2-with-c-cli-64-bit This prevents programs from being compiled correctly in VS2010 The workaround is implemented below: boost\asio\detail\win_thread.hpp:45 {{{ return (1?::InterlockedExchangeAdd(&terminate_threads_, 0) != 0: 0!= InterlockedExchangeAdd64((volatile LONG64 *)0,(LONG64) 0)); }}} and boost\asio\detail\impl\winsock_init.ipp:54 {{{ long result = (1?::InterlockedExchangeAdd(&d.result_, 0) : InterlockedExchangeAdd64((volatile LONG64 *)0,(LONG64) 0)); }}} Implementing the above fix allows the programs to compile with a warning: {{{ warning C4793: 'boost::asio::detail::win_thread_base::terminate_threads' : function compiled as native : 1> Found an intrinsic not supported in managed code }}} and {{{ warning C4793: 'boost::asio::detail::winsock_init_base::throw_on_error' : function compiled as native : 1> Found an intrinsic not supported in managed code }}} This is a workaround for a compiler bug, so I don't know how the boost development team wants to treat this. Using VS2010 compiling for a 64-bit target (amd64)" filmorependrgn@… Boost 1.48.0 6353 memory layout specifiers doc clarification multi_array Boost 1.48.0 To Be Determined Support Requests Ronald Garcia new 2012-01-03T14:44:56Z 2012-01-03T14:44:56Z "http://www.boost.org/doc/libs/1_48_0/libs/multi_array/doc/reference.html#memory_layout Contains an ambiguous specification of storage ordering. This lead me to making the wrong assumption about the meaning as shown by the following post: http://article.gmane.org/gmane.comp.lib.boost.user/72160 As indicated in that post, *if* I had read the page: http://www.boost.org/doc/libs/1_48_0/libs/multi_array/doc/user.html#sec_storage the meaning or storage ordering would have been clear; however, I thought reading the reference.html#memory_layout page would have been the most unambiguous doc since it is the reference manual. I think the following snippet of code, or something similar, on the reference.html#memory_layout would make the meaning clearer: {{{ std::vector strides_expected ( std::vector const& a_permut //storage order(a permutaion 0..a_lengths.size()-1) , std::vector const& a_lengths //length of axes. ) { unsigned const n=a_lengths.size(); std::vector strides(n); strides[permut_i[0]]=1; for( unsigned i=1; i #include #include using namespace std; using namespace boost; void func() { this_thread::sleep(boost::posix_time::milliseconds(5000)); } int main() { thread trd(func); trd.join(); cout << ""wait ok"" << endl; return 0; } }}} When built statically with '''date_time''' and '''thread''' libraries. It fails with segfault in date_time library. That happens in ctor of structure simple_time_rep, but I didn't dig too much. I guess the problem is in date_time library. Without flag '''BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG''' it's going all right with timings and threads. I also tried flags BOOST_HAS_WINTHREADS and _REENTRANT(for MinGW) - that does not affect the case. BOOST_THREAD_USE_LIB was defined (to let it work with static libs). I've tested this for boost '''1.48.0''' and '''1.49.0-beta1'''. Neither did work. I asked about this problem in boost mailing lists but got no answer, so I post it as a possible bug. Sincerely, Yana A. Kireyonok" death.iron.bug@… Boost 1.49.0 6527 Segmentation fault from program_options with intel compiler and openmp program_options Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-02-06T05:15:58Z 2012-05-28T05:44:16Z When using program_options to parse the command line, a segmentation fault results from the store() function after a call to parse_command_line(). This seems to only happens when using the -openmp flag with the intel c++ (icpc) compiler (version 11) and -openmp compiler directive. Ryan Scott Davis Boost 1.49.0 6529 Build process ignores --with-icu path on some icu tests? locale Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-02-06T21:19:57Z 2013-07-07T16:37:10Z "When bootstrap.sh --with-icu=/usr/local/Cellar/icu4c/1.8.1.1, I get in the logs: 1) when testing 'has_icu' darwin.compile.c++ bin.v2/libs/regex/build/darwin-4.2.1/debug/has_icu_test.o ""g++"" -ftemplate-depth-128 -O0 -fno-inline -Wall -pedantic -g -dynamic -no-cpp-precomp -gdwarf-2 -fexceptions -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_HAS_ICU=1 -I""."" -I""/usr/local/Cellar/icu4c/1.8.1.1/include"" -c -o ""bin.v2/libs/regex/build/darwin-4.2.1/debug/has_icu_test.o"" ""libs/regex/build/has_icu_test.cpp"" Note the -I flag with my icu path. 2) Later, in the same config.log, I see: darwin.compile.c++ bin.v2/libs/locale/build/darwin-4.2.1/debug/has_icu_obj.o ""g++"" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -dynamic -no-cpp-precomp -gdwarf-2 -fexceptions -fPIC -DBOOST_ALL_NO_LIB=1 -I""."" -c -o ""bin.v2/libs/locale/build/darwin-4.2.1/debug/has_icu_obj.o"" ""libs/locale/src/../build/has_icu_test.cpp"" libs/locale/src/../build/has_icu_test.cpp:12:30: error: unicode/uversion.h: No such file or directory Note that in this g++ line there is no -I flag with my icu path." hashashin@… Boost 1.49.0 6554 Compiler error dereferencing multi_array value via an iterator multi_array Boost 1.49.0 To Be Determined Bugs Ronald Garcia new 2012-02-13T17:46:47Z 2012-04-11T20:55:25Z "It is currently impossible to dereference/access the values contained in a multi_array via the -> operator from an iterator to the multi_array element. However, use the * operator works. Example: {{{ struct data { int value; }; typedef boost::multi_array array_type; array_type a(boost::extents[4][5]); // ERROR: Cannot compile this line a.begin()->begin()->value = 7; // Compiles successfully (*a.begin()->begin()).value = 5; }}} I'm using Visual Studio 2010. This is an error in both debug and release modes. This is the error: boost/multi_array/iterator.hpp(40): error C2528: '->' : pointer to reference is illegal " Bill Buklis Boost 1.49.0 6563 system_complete documention note broken link/missing info filesystem Boost 1.49.0 Boost 1.49.0 Bugs Beman Dawes new 2012-02-16T14:25:51Z 2012-02-16T14:25:51Z "http://www.boost.org/doc/libs/1_49_0_beta1/libs/filesystem/v3/doc/reference.html#system_complete Has the following broken link, evidently to a removed operational function = complete(). ""See complete() note for usage suggestions. -- end note]"" It would be nice if the ref'd usage suggestions could be resurrected here if they are applicable to system_complete." Jeff Flinn Boost 1.49.0 6565 Warnings with -Wundef preprocessor Boost 1.49.0 To Be Determined Bugs pmenso57 new 2012-02-16T21:21:59Z 2012-02-17T09:29:10Z "The following occurs when compiling with GCC 4.3.2 on Linux with -Wundef -Werror: {{{ In file included from boost_1_49_0_beta1/boost/preprocessor/cat.hpp:17, from boost_1_49_0_beta1/boost/concept/detail/general.hpp:7, from boost_1_49_0_beta1/boost/concept/assert.hpp:36, from boost_1_49_0_beta1/boost/heap/detail/heap_comparison.hpp:14, from boost_1_49_0_beta1/boost/heap/binomial_heap.hpp:17, ... boost_1_49_0_beta1/boost/preprocessor/config/config.hpp:86:77: error: ""__GXX_EXPERIMENTAL_CXX0X__"" is not defined }}} I'm not sure what version introduced this. (I'm going to be filing a couple of these bugs because they appear in different components... sorry if that's the wrong thing to do.)" driscoll@… Boost 1.49.0 6568 Warnings with -Wundef parameter Boost 1.49.0 To Be Determined Bugs Daniel Wallin new 2012-02-16T21:27:49Z 2012-03-27T07:17:56Z "Compiling with GCC 4.3.2 on Linux with -Wundef -Werror: {{{ In file included from boost_1_49_0_beta1/boost/parameter/parameters.hpp:44, from boost_1_49_0_beta1/boost/parameter.hpp:11, from boost_1_49_0_beta1/boost/heap/policies.hpp:12, from boost_1_49_0_beta1/boost/heap/detail/stable_heap.hpp:20, from boost_1_49_0_beta1/boost/heap/binomial_heap.hpp:19, ... boost_1_49_0_beta1/boost/parameter/aux_/unwrap_cv_reference.hpp:47:1: error: ""MSVC_WORKAROUND_GUARD"" is not defined boost_1_49_0_beta1/boost/parameter/aux_/unwrap_cv_reference.hpp:47:1: error: ""MSVC"" is not defined }}}" driscoll@… Boost 1.49.0 6626 shallow_array_adaptor bug in swap function uBLAS Boost 1.49.0 Boost 1.50.0 Bugs Gunter new 2012-02-28T16:49:59Z 2012-02-28T16:49:59Z "''boost::numeric::ublas::vector< T,shallow_array_adaptor >'' fails when it is assigned with an expression. For example: {{{ #define BOOST_UBLAS_SHALLOW_ARRAY_ADAPTOR #include struct point { double x; double y; double z; }; void test() { using namespace boost::numeric::ublas; point p = { 1, 2, 3 } shallow_array_adaptor a(3, &p.x); // Ok, a holds p address vector > v(a); // Ok, v holds p address v += v; // Ok, now p = { 2, 4, 6 } v /= 2; // Ok, now p = { 1, 2, 3 } v = v*2; // <- Oh no, p = { 1, 2, 3 } !!! } }}} ''vector'' creates a temporary object and it calls to ''shallow_array_adaptor::swap''. This function doesn't check if it is the owner of pointers to swap. When both are data owners can do that (as unbounded_array does). But if they are not then they should swap as bounded_array does." Guillermo Ruiz Troyano Boost 1.49.0 6643 token_functions.hpp warning: unused parameters tokenizer Boost 1.49.0 To Be Determined Bugs jsiek new 2012-03-01T23:25:25Z 2012-03-01T23:25:25Z " /boost/include/boost/token_functions.hpp:312:33: warning: unused parameter 'b' [-Wunused-parameter,3] static void assign(Iterator b, Iterator e, Token & t) { } ^ /boost/include/boost/token_functions.hpp:312:45: warning: unused parameter 'e' [-Wunused-parameter,3] static void assign(Iterator b, Iterator e, Token & t) { } ^ /boost/include/boost/token_functions.hpp:312:56: warning: unused parameter 't' [-Wunused-parameter,3] static void assign(Iterator b, Iterator e, Token & t) { }" nealgmeyer@… Boost 1.49.0 6659 Filesystem compilation broken on Solaris 9 and 10 filesystem Boost 1.49.0 To Be Determined Bugs Beman Dawes reopened 2012-03-07T10:15:58Z 2015-04-06T12:22:25Z "Output message: libs/filesystem/v3/src/operations.cpp: In function âvoid boost::filesystem3::detail::permissions(const boost::filesystem3::path&, boost::filesystem3::perms, boost::system::error_code*)â: libs/filesystem/v3/src/operations.cpp:1391:11: error: â::fchmodatâ has not been declared This is regression, 1.48 compiles well. I reproduced on both sparc and x86 platforms." Vasily Sukhanov Boost 1.49.0 6661 Different behavior on WIN and Linux asio Boost 1.49.0 To Be Determined Bugs chris_kohlhoff new 2012-03-08T07:58:05Z 2012-03-08T07:58:05Z "Hi, I've found a different behavior at use of some functions with UDP protocol. Look at this code {{{ io_service ios; udp::endpoint to(address::from_string(""127.0.0.1""), port); udp::socket sender(ios, udp::v4()); udp::socket receiver(ios, udp::endpoint(udp::v4(), port)); const char buf[] = ""Some test data...""; const size_t buf_len = sizeof(buf); char read_buf[buf_len]; char half_read_buf[buf_len / 2]; sender.send_to(buffer(buf, buf_len), to); try { udp::endpoint sender_point; receiver.receive_from(buffer(half_read_buf, sizeof(half_read_buf)), sender_point); } catch(exception& ex) { string str = ex.what(); cerr << ""Exception: ""<< ex.what() << endl; } cout << string(half_read_buf, sizeof(half_read_buf)) << endl; sender.send_to(buffer(buf, buf_len), to); sender.send_to(buffer(buf, buf_len), to); cout << ""Available: "" << receiver.available() << endl; receiver.receive(buffer(read_buf, sizeof(read_buf))); cout << ""Available: "" << receiver.available() << endl; receiver.receive(buffer(read_buf, sizeof(read_buf))); cout << ""Available: "" << receiver.available() << endl; }}} Here we are reading half an datagramm and use socket::available() to look how much data into the socket. Execute this code on WIN32 and you get this output {{{ Exception: receive_from: The message was too large for the specified buffer and (for unreliable protocols only) any trailing portion of the message that did not fit into the buffer has been discarded. Some test Available: 36 Available: 18 Available: 0 }}} Execute it on Linux and you get {{{ Some test Available: 18 Available: 18 Available: 0 }}} It looks strange.[[BR]] Look into source {{{ boost/asio/detail/impl/socket_ops.ipp ------------------------------------- int recvfrom(socket_type s, buf* bufs, size_t count, int flags, socket_addr_type* addr, std::size_t* addrlen, boost::system::error_code& ec) { ... #if defined(BOOST_WINDOWS) || defined(__CYGWIN__) int result = error_wrapper(::WSARecvFrom(s, bufs, recv_buf_count, &bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0), ec); *addrlen = (std::size_t)tmp_addrlen; ... if (result != 0) return socket_error_retval; ec = boost::system::error_code(); return bytes_transferred; #else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) msghdr msg = msghdr(); init_msghdr_msg_name(msg.msg_name, addr); msg.msg_namelen = *addrlen; msg.msg_iov = bufs; msg.msg_iovlen = count; int result = error_wrapper(::recvmsg(s, &msg, flags), ec); *addrlen = msg.msg_namelen; if (result >= 0) ec = boost::system::error_code(); return result; } }}} For WIN32 uses functions family WSARecv([http://msdn.microsoft.com/en-us/library/windows/desktop/ms741686(v=vs.85).aspx]) they return status of error. And one of which is {{{ WSAEMSGSIZE The message was too large for the specified buffer and (for unreliable protocols only) any trailing portion of the message that did not fit into the buffer has been discarded. }}} For Linux uses functions family recv ([http://linux.die.net/man/2/recv]). They return the length of the message on successful completion or -1 and set status in errno if was error. But for them no the error if buffer length less that a received datagram.[[BR]] But if we uses function recvfrom, it sets this error into struct msghdr in the msg_flags {{{ MSG_TRUNC indicates that the trailing portion of a datagram was discarded because the datagram was larger than the buffer supplied. }}} And also about function basic_datagram_socket::available. For WIN32 it returns length of all datagrams in the socket BUT for linux in returns length a one datagramm." cupper.jj@… Boost 1.49.0 6686 Boost does not build with Xcode 4.3 build Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-03-14T18:36:29Z 2013-01-03T18:04:26Z "With Xcode 4.3, Apple changed it's layout of the SDKs. The folder /Developer does not exist anymore. Instead everything is contained withing the Xcode.app: /Applications/Xcode.app/Contents/Developer is the new starting point. However, the darwin.jam file also globs at the wrong position. The new SDKs for Xcode 4.3.1 are at /Applications/Xcode.app/Contents/Developer/Platforms/*/Developer/SDKs/*.sdk " arne.schmitz@… Boost 1.49.0 6736 boost::ptr_unordered_map and some other ptr container's classes aren't listen in library reference ptr_container Boost 1.49.0 To Be Determined Bugs Thorsten Ottosen new 2012-03-27T11:44:25Z 2012-03-27T11:44:44Z "There is no ptr_unordered_map in ptr container's reference http://www.boost.org/doc/libs/1_49_0/libs/ptr_container/doc/reference.html It's slightly confusing for the beginner who searching for it: looks like there is no such class at all. " anonymous Boost 1.49.0 6756 "gcc gives compile error ""error ‘boost_se_params_t_10::boost_se_param_t_0_10’ is not a type"" in template function for ScopeExit." scope_exit Boost 1.49.0 To Be Determined Bugs nasonov new 2012-04-01T14:12:42Z 2012-04-01T15:04:09Z "When using ScopeExit, I found that gcc can't compile some sources. After error checking, gcc (4.4.3 in Ubuntu 10.04 and gcc 4.6.1 from MinGW) will raise compile error when I use ScopeExit in template functions. For the code can't compile by gcc, you can find it in attachment." Lin, Yi-Li Boost 1.49.0 6759 boost::wave::support_option_option_new_line didn't work as expected. wave Boost 1.49.0 To Be Determined Bugs Hartmut Kaiser new 2012-04-02T09:51:09Z 2012-05-23T12:55:34Z "I think following code is error: if ((!seen_newline || act_pos.get_column() > 1) && !need_single_line(ctx.get_language())) { // warn, if this file does not end with a newline BOOST_WAVE_THROW_CTX(ctx, preprocess_exception, last_line_not_terminated, """", act_pos); } I think we hope that error reported if ""newline not found"" while ""need single line""" wuye9036@… Boost 1.49.0 6768 missing std:: qualifier on sqrt calls numeric Boost 1.49.0 To Be Determined Bugs Douglas Gregor new 2012-04-05T20:05:04Z 2012-04-05T20:05:04Z "File libs/numeric/ublas/test/test_complex_norms.cpp includes and then calls sqrt twice without a std:: qualifier. Although the code works with some compilers, it is not portable. The C++ standard says that if you include a headaer (like ) the names in the headers are (only) in namespace std. Diffs to fix the file: {{{ 37c37 < const double expected = sqrt(44.0); --- > const double expected = std::sqrt(44.0); 65c65 < const float expected = sqrt(44.0); --- > const float expected = std::sqrt(44.0); }}}" Stephen Clamage Boost 1.49.0 6778 directory_iterator and recursive_directory_iterator has inconsistent behavior with STL iterator when assignment operator=() is involved. filesystem Boost 1.49.0 To Be Determined Bugs Beman Dawes new 2012-04-09T23:49:26Z 2012-04-09T23:49:26Z "For example, in std::vector, the following code shows that *vIterator_1 prints out intVec[1] and *vIteraotr_2 prints out intVec[0]. (The assignment operator=() does not make those two iterators link together...) {{{ std::vector intVec(10); intVec[1] = 1; std::vector::iterator vIterator_1 = intVec.begin(); // iterator assignment operator=() now get involved. std::vector::iterator vIterator_2 = vIterator_1; ++vIterator_1; // vIterator_2 does not increment. std::cout << ""*vIterator_1: "" << *vIterator_1; std::cout << ""*vIterator_2: "" << *vIterator_2; }}} On the other hand, the following example shows that dirIterator1->path() and dirIterator2->path() both contains '/home/user/test/2.txt' which is not consistent with STL iterator behavior. Since iterators behaves like pointers, after calling vIterator_2 = vIterator_1;, vIterator_2 and vIterator_1 should stays independent. The problem seems to be directory_iterator forgot to implement the copy constructor and assignment operator=(). {{{ // assuming that under /home/user/test, there are 1.txt and 2.txt boost::filesystem::path rootPath(""/home/user/test""); boost::filesystem::directory_iterator dirIterator1(rootPath); // Now assignment operator=() got involved. boost::filesystem::directory_iterator dirIterator2 = dirIterator1; // This line causes dirIterator1 and dirIterator2 both got incremented ... ++dirIterator1; std::cout << ""dirItertor1: "" << dirIterator1->path().string() << std::endl; std::cout << ""dirItertor2: "" << dirIterator2->path().string() << std::endl; }}} == Note == The symptom occurred in: boost::filesystem::directory_iterator[[BR]] boost::filesystem2::directory_iterator[[BR]] boost::filesystem3::directory_iterator[[BR]] boost::filesystem::recursive_directory_iterator[[BR]] boost::filesystem2::recursive_directory_iterator[[BR]] boost::filesystem3::recursive_directory_iterator[[BR]] under all platforms." Chih-Yao Hsieh Boost 1.49.0 6800 endless loop in dev_poll_reactor on Solaris when using async_write with more than 65536 bytes asio Boost 1.49.0 To Be Determined Bugs chris_kohlhoff new 2012-04-16T14:39:49Z 2012-04-16T15:47:44Z "The following example-program puts io_service thread in a tight endless loop on Solaris when the server is trying to send more than 65536 bytes (the server and client have to be running on a different host) and client is running. truss on server process shows following calls continuously. {{{ /6: recvmsg(57, 0xFFFFFD7FEB9FDDF0, 0) Err#11 EAGAIN /6: write(13, "" 9\0\0\019\0\0\0"", 8) = 8 /6: ioctl(13, DP_POLL, 0xFFFFFD7FEB9FE460) = 1 /6: recvmsg(57, 0xFFFFFD7FEB9FDDF0, 0) Err#11 EAGAIN /6: write(13, "" 9\0\0\019\0\0\0"", 8) = 8 /6: ioctl(13, DP_POLL, 0xFFFFFD7FEB9FE460) = 1 /6: recvmsg(57, 0xFFFFFD7FEB9FDDF0, 0) Err#11 EAGAIN /6: write(13, "" 9\0\0\019\0\0\0"", 8) = 8 /6: ioctl(13, DP_POLL, 0xFFFFFD7FEB9FE460) = 1 /6: recvmsg(57, 0xFFFFFD7FEB9FDDF0, 0) Err#11 EAGAIN /6: write(13, "" 9\0\0\019\0\0\0"", 8) = 8 /6: ioctl(13, DP_POLL, 0xFFFFFD7FEB9FE460) = 1 /6: recvmsg(57, 0xFFFFFD7FEB9FDDF0, 0) Err#11 EAGAIN /6: write(13, "" 9\0\0\019\0\0\0"", 8) = 8 /6: ioctl(13, DP_POLL, 0xFFFFFD7FEB9FE460) = 1 }}} The busy-wait loop continues until we stop the client. Here is the server code. I've just changed boost asynchronous TCP daytime server sample to return the specified number of bytes message instead of daytime and put the client connection in read mode. {{{ #include #include #include #include #include #include #include #include #include #include using boost::asio::ip::tcp; std::string make_message(unsigned int message_size) { using namespace std; std::string data(message_size, 'A'); return data; } class tcp_connection : public boost::enable_shared_from_this { public: typedef boost::shared_ptr pointer; static pointer create(boost::asio::io_service& io_service, unsigned int message_size) { return pointer(new tcp_connection(io_service, message_size)); } tcp::socket& socket() { return socket_; } void handleMessage(const boost::system::error_code& message_error) { if (message_error) { std::cout<<""Error while reading the message from client""< _header; unsigned int message_size_; }; class tcp_server { public: tcp_server(boost::asio::io_service& io_service, unsigned int port, unsigned int message_size) : acceptor_(io_service, tcp::endpoint(tcp::v4(), port)), message_size_(message_size) { start_accept(); } private: void start_accept() { tcp_connection::pointer new_connection = tcp_connection::create(acceptor_.get_io_service(), message_size_); acceptor_.async_accept(new_connection->socket(), boost::bind(&tcp_server::handle_accept, this, new_connection, boost::asio::placeholders::error)); } void handle_accept(tcp_connection::pointer new_connection, const boost::system::error_code& error) { if (!error) { new_connection->start(); start_accept(); } } tcp::acceptor acceptor_; unsigned int message_size_; }; int main(int argc, char* argv[]) { if (argc != 3) { std::cerr << ""Usage: server port message_size"" << std::endl; return 1; } unsigned int port = boost::lexical_cast(argv[1]); unsigned int message_size = boost::lexical_cast(argv[2]); try { boost::asio::io_service io_service; tcp_server server(io_service, port, message_size); io_service.run(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; } return 0; } }}} For the client we can use boost synchronous TCP daytime client sample (changed to accept port as an argument) . {{{ #include #include #include using boost::asio::ip::tcp; int main(int argc, char* argv[]) { try { if (argc != 3) { std::cerr << ""Usage: client "" << std::endl; return 1; } boost::asio::io_service io_service; tcp::resolver resolver(io_service); tcp::resolver::query query(argv[1], argv[2]); tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); tcp::resolver::iterator end; tcp::socket socket(io_service); boost::system::error_code error = boost::asio::error::host_not_found; while (error && endpoint_iterator != end) { socket.close(); socket.connect(*endpoint_iterator++, error); } if (error) throw boost::system::system_error(error); for (;;) { boost::array buf; boost::system::error_code error; size_t len = socket.read_some(boost::asio::buffer(buf), error); if (error == boost::asio::error::eof) break; // Connection closed cleanly by peer. else if (error) throw boost::system::system_error(error); // Some other error. std::cout.write(buf.data(), len); } } catch (std::exception& e) { std::cerr << e.what() << std::endl; } return 0; } }}} Here is how I ran the server and client on two different solaris hosts - {{{ server 9081 200000 client 9081 }}} After running the server and client, do ""truss"" on server which will be showing tight polling loop as mentioned above. The program works fine on Linux and works fine on Solaris when compiled with the flag -DBOOST_ASIO_DISABLE_DEV_POLL." p_ranadheer@… Boost 1.49.0 6811 Default argument of type multi_array fails under MSVC 2010 SP1 multi_array Boost 1.49.0 To Be Determined Bugs Ronald Garcia new 2012-04-20T07:46:30Z 2012-04-20T07:46:30Z "When I write a function with the signature {{{ typedef boost::multi_array T; void bar(const T &value = T()) }}} and compile it with MSVC 2010 SP1 I get the following error messages {{{ E:\postdoc\boost-bug>cl /EHsc /Ie:/postdoc/tools/boost_1_49_0 mar-bug.cpp Microsoft (R) C/C++ Optimizing Compiler Version 16.00.40219.01 for x64 Copyright (C) Microsoft Corporation. All rights reserved. mar-bug.cpp e:/postdoc/tools/boost_1_49_0\boost/multi_array/multi_array_ref.hpp(73) : error C3855: 'boost::const_multi_array_ref': template parameter 'NumDims' is incompati ble with the declaration e:/postdoc/tools/boost_1_49_0\boost/multi_array/multi_array_ref.hpp(417) : see reference to class template instantiation 'boost::const_multi_array_ref' being compiled with [ T=int, NumDims=0x03, TPtr=int * ] e:/postdoc/tools/boost_1_49_0\boost/multi_array.hpp(113) : see reference to class template instantiation 'boost::multi_array_ref' being compi led with [ T=int, NumDims=0x03 ] mar-bug.cpp(5) : see reference to class template instantiation 'boost::m ulti_array' being compiled with [ T=int, NumDims=0x03 ] }}} The offending piece of code appears to be in `boost/multi_array/multi_array_ref.hpp`: {{{ #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS // make const_multi_array_ref a friend of itself template friend class const_multi_array_ref; #endif }}} If I give the template arguments names then the compiler is happy (I'll attach a patch). I have no idea what is special about using the type as a default argument - I tried to reproduce it using simpler steps (copy constructor, default constructor, assigning a temporary to a const ref inside a function) with no luck." Bruce Merry Boost 1.49.0 6813 canonical function converts root-directory separator from '\' to '/' on Windows filesystem Boost 1.49.0 To Be Determined Bugs Beman Dawes new 2012-04-20T22:19:33Z 2018-07-11T07:27:45Z "boost::filesystem::canonical reverses the path separator on rooted paths Consider the following line: {{{ boost::filesystem::path convertedPath = boost::filesystem::canonical(""C:\\Foo\\Bar\\..\\Bar\\Baz""); }}} On Windows, convertedPath is set to ""C:/Foo\Bar\Baz"", where I would expect it to be set to ""C:\Foo\Bar\Baz"" The documentation states: ""Returns: A canonical path that refers to the same file system object as absolute(p,base)."" If the input path has no symbolic links, 'dot' directories, or 'dot-dot' directories, then I would expect the output to match a call to boost::filesystem::absolute. For example: {{{ boost::filesystem::path canonicalPath = boost::filesystem::canonical(""Bar\\Baz"", ""C:\\Foo""); boost::filesystem::path absolutePath = boost::filesystem::absolute(""Bar\\Baz"", ""C:\\Foo""); }}} canonicalPath is set to ""C:/Foo\Bar\Baz"", while absolutePath is set to ""C:\Foo\Bar\Baz"". Looking at the implementation, this is related to the issue in ticket 5989 (https://svn.boost.org/trac/boost/ticket/5989). I agree with the sentiments in that ticket, but if the behavior of the path iterator will not be changing, then I think the canonical function should be updated to preseve path consistency in Windows." Alex Goldberg Boost 1.49.0 6816 Using transcendental functions with intervals doesn't work numeric Boost 1.49.0 To Be Determined Bugs Douglas Gregor new 2012-04-21T15:08:31Z 2013-03-11T08:24:57Z "The examples that use transcendental functions (e.g. ""transc.cpp"") cannot be compiled." anonymous Boost 1.49.0 6826 boost build fails to detect python3.2 correctly build Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-04-24T13:06:03Z 2013-01-03T17:54:50Z "bootstrap detects python3.2 but does not locate the library and include files correctly This is because when python3.2 is built with threading support, which is default on Linux, the include subdirectory and library are named python${VERSION}m, with the letter 'm' appended. #/usr/bin/python3.2-config --includes -I/usr/include/python3.2m #/usr/bin/python3.2-config --libs -lintl -lpthread -ldl -lutil -lm -lpython3.2m or $ pkg-config python-3.2 --cflags-only-I --libs-only-l -I/usr/include/python3.2m -lpython3.2m Building in dir: /usr/src/boost_1_49_0 boost 1_49_0 Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86_64/b2 Detecting Python version... 3.2 Detecting Python root... /usr Unicode/ICU support for Boost.Regex?... /usr Generating Boost.Build configuration in project-config.jam... ./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory compilation terminated. ""g++"" -ftemplate-depth-128 -Wno-strict-aliasing -march=native -mtune=native -m64 -pipe -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -DNDEBUG -I""."" -I""/usr/include/python3.2"" -c -o ""bin.v2/libs/python/build/gcc-4.7.0/release/threading-multi/numeric.o"" ""libs/python/src/numeric.cpp"" " Treeve Jelbert Boost 1.49.0 6834 Memory corruption when calling boost::filesystem::exists() from static initializer with Unicode paths filesystem Boost 1.49.0 To Be Determined Bugs Beman Dawes new 2012-04-26T20:00:26Z 2012-04-26T20:00:26Z "Assume we have a class MyClass with the constructor as shown below. Now, if we create a static instance of MyClass (or have some other mechanism to execute this code at static initialization time), then this code will create an access violation exception when exists() is called. {{{ MyClass::MyClass() { boost::filesystem::path path(L""C:\\Windows""); path /= boost::filesystem::path(L""notepad.exe""); if (!boost::filesystem::exists(path)) { std::cout << ""notepad.exe doesn't exist!"" << std::endl; } } }}} The code was tested on Windows 7 X64 SP1 with VS 2008 SP1 with boost 1.49." memger@… Boost 1.49.0 6844 [function] Memory leaks if used with allocator and throwing copy-c'tor of functor function Boost 1.49.0 To Be Determined Bugs Douglas Gregor new 2012-04-29T11:13:23Z 2012-04-29T11:29:25Z "There are two places where the implementation of boost::function uses a user-provided allocator: 1. boost/function/function_base.hpp, line 485 2. boost/function/function_template.hpp, line 591 Both use cases do not protected against a possibly throwing copy constructor of a function-object because there is an unprotected two-step sequence of the following style: {{{ wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); wrapper_allocator.construct(copy, functor_wrapper_type(f,a)); }}} If the second step fails, no clean-up of the allocated memory takes place. The following test program emulates this situation and demonstrates the problem: {{{ #include ""boost/function.hpp"" #include #include struct F { static bool dothrow; unsigned char prevent_short_object_opt[sizeof(boost::detail::function::function_buffer) + 1]; F(){} F(const F&) { if (dothrow) throw 0; } void operator()() {} }; bool F::dothrow = false; int alloc_cnt = 0; template struct my_alloc : std::allocator { template struct rebind { typedef my_alloc other; }; void construct(typename std::allocator::pointer p, const T& val) { F::dothrow = true; ::new((void *)p) T(val); } void deallocate(typename std::allocator::pointer p, typename std::allocator::size_type n) { --alloc_cnt; std::cout << ""deallocate: "" << alloc_cnt << std::endl; return std::allocator::deallocate(p, n); } typename std::allocator::pointer allocate(typename std::allocator::size_type n) { ++alloc_cnt; std::cout << ""allocate: "" << alloc_cnt << std::endl; return std::allocator::allocate(n); } }; int main() { F f; my_alloc a; try { boost::function fu(f, a); } catch (int) { std::cout << ""Caught expected - allocation count: "" << alloc_cnt << std::endl; } } }}} The program outputs {{{ allocate: 1 Caught expected - allocation count: 1 }}} on all systems I tested (Visual Studio 11 beta and mingw with gcc 4.8) showing that the deallocation function is never called. The two-step process of allocation+construct needs to be made exception-safe. In my own type-erased allocators I'm using a helper type {{{ template struct allocated_ptr { typedef typename Alloc::pointer pointer; explicit allocated_ptr(Alloc& alloc) : alloc(alloc), ptr(alloc.allocate(1)) {} ~allocated_ptr() { if (ptr != pointer()) { alloc.deallocate(ptr, 1); } } pointer get() const { return ptr; } pointer release() { pointer result = ptr; ptr = pointer(); return result; } private: Alloc& alloc; pointer ptr; }; }}} to handle this, invoking the release function, after successful construction. Of-course other means are possible. " Daniel Krügler Boost 1.49.0 6856 Critical problem with serialization and class versioning serialization Boost 1.49.0 To Be Determined Bugs Robert Ramey new 2012-05-02T15:07:59Z 2012-05-02T15:07:59Z "I am investigating strange error ""input stream error"" messages that I've been getting for a while when loading XML archives, and it turns out that boost::serialization is no longer enforcing strictly incrementing versioning numbers. Specifically the patch: https://github.com/ryppl/boost-svn/commit/66e85ade721a82bbc2e082749d6af2eefcb63dcb#boost/archive/detail Which has the comment: {{{ + // note: we now comment this out. Before we permited archive + // version # to be very large. Now we don't. To permit + // readers of these old archives, we have to suppress this + // code. Perhaps in the future we might re-enable it but + // permit its suppression with a runtime switch. }}} I checked the documentation, and it is still assuming that class versions always increment, and it is implied (to me) that if a class version in an archive is larger than the BOOST_CLASS_VERSION() in the source, then it will not load (and checking the code, looks like it should throw a unsupported_class_version error). This is a critical problem, and is now my likely candidate for the reason why sometimes my programs crash when loading binary archives that are written by a newer version of my program. Basically, it NEVER checks if we are loading an archive that is newer than what the program is supported.  Thus, it will assume that it is reading the correct-versioned archive and serialize the wrong data in the wrong order. I wrote a small program to demonstrate the problem, most of the code was copied from the ""bus"" example in the documentation. The Makefile compiles 4 different versions:  xml and binary variants, each that write either version=0, version=1 classes. It is a program that loads an archive file (if the file can be opened), and then writes an archive file. The class written is a simple class with two integer variables. In version=0, it writes var1. In version=1, it writes var2, and then var1. This is what it looks like when you run the programs: {{{ $ ./test_version_binary_0 Could not open file to read: bus_route.binary Saved, var1=1 ------- so a binary archive is written to disk, version=0 $ ./test_version_binary_1 Restored, var1=1 var2=2 Saved, var1=1 var2=2 ------- archive was loaded correctly, and then written back to disk, now version=1 ------- now lets try and run the version=0 program $ ./test_version_binary_0 Restored, var1=2 FAIL! var1 should always be 1 $  ------- archive was loaded, apparently without error, but inspecting the data reveals that var1 was loaded with var2's value. }}} For the XML archive, we fortunately catch the problem, but only because it was expecting a different set of xml-tags: {{{ $ ./test_version_xml_0  Could not open file to read: bus_route.xml Saved, var1=1 $ ./test_version_xml_1 Restored, var1=1 var2=2 Saved, var1=1 var2=2 $ ./test_version_xml_0 terminate called after throwing an instance of 'boost::archive::xml_archive_exception'   what():  XML start/end tag mismatch - var1 Aborted $  }}} It seems to me that there are three solutions to this situation: 1) ignore problem.  allow boost-based software to incorrectly load binary archives. 2) change the documentation, tell users that they will need to manually test the version passed to void serialize(Archive,int) methods, and throw exceptions themselves if required. That will also mean upgrading all of the existing software and adding a test into every single serialize() function/method in existing production code. 3) turn back on the version check that was turned off in the above patch. This is what it looks like when I change the #if 0 to #if 1 {{{ $ ./test_version_binary_0 terminate called after throwing an instance of 'boost::archive::archive_exception'   what():  class version 9bus_route Aborted }}} And that's what I was expecting it to do. " harris.pc@… Boost 1.49.0 6860 Cannot read negative time_duration date_time Boost 1.49.0 To Be Determined Bugs az_sw_dude new 2012-05-03T18:43:24Z 2012-05-03T18:43:24Z "Loading a negative time_duration saved with operator<< does not work. Test program: {{{ #include #include #include int main() { boost::posix_time::time_duration expected(0, 0, 0, -1); std::stringstream stream; stream << expected; boost::posix_time::time_duration time; stream >> time; assert(expected == time); return 0; } }}} " damienrg+bug@… Boost 1.49.0 6867 Unclear behavior of parameter 'max_size' pool Boost 1.49.0 To Be Determined Bugs John Maddock new 2012-05-04T20:41:33Z 2012-07-16T20:03:25Z "When constructing a pool, a 'max_size' parameter can be given. If non zero, the documentation states that the pool will not allow more than 'max_chunks' at once. However, this restriction is not taken into account in function ordered_malloc(n) : {{{ boost::pool<> p(sizeof(int), 16, 16); void *ptr = p.ordered_malloc(32); // Succeeds }}} Either the documentation should be precised, either the illustrated allocation should fail. " edupuis Boost 1.49.0 6883 build.bat not using the 32-bit Visual Studio 2010 installation path Building Boost Boost 1.49.0 To Be Determined Bugs new 2012-05-09T15:05:44Z 2012-05-09T15:05:44Z "See also #6846 (bootstrap) I had the same problems there but didn't want to overtake ownership on that trac issue. With Visual Studio 2010, in a Visual Studio Command Prompt, bootstrap will fail. It cannot find any of the headers. I am looking at the build.bat and I think it's latching on to %ProgramFiles% to set the paths. Like this: if EXIST ""%ProgramFiles%\Microsoft Visual Studio 10.0\VC\VCVARSALL.BAT"" ( set ""BOOST_JAM_TOOLSET=vc10"" set ""BOOST_JAM_TOOLSET_ROOT=%ProgramFiles%\Microsoft Visual Studio 10.0\VC\"" I used the recommended installation path for my edition and it put vcvarsall.bat in: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC Unfortunately %ProgramFiles% comes up with the 64-bit path ""C:\Program Files"" -- note the omission of ""(x86)"" in there. So dead right there. I should note I can work fine if I call vcvarsall.bat manually before running bootstrap. I don't have a firm recommendation here one what to do. Perhaps you can probe the registry for installation keys for Visual Studio, and from there derive the path. If you don't have an installation handy on which to experiment I can submit myself to some probes." adam.preble@… Boost 1.49.0 6893 Inaccurate Radians/Degrees conversion units Boost 1.49.0 To Be Determined Bugs Jürgen Hunold assigned 2012-05-13T10:19:17Z 2018-07-08T16:19:39Z "LS, The conversion from angles in degrees to radians currently uses a conversion factor of 6.28318530718/360. (File: boost\units\base_units\angle\degree.hpp), which equals 0.0174532925199444444... This is unnecessarily inaccurate (only 14 significant digits are correct) and gives problems in my application - the actual value reads: 0.017453292519943295769236907684886127134428718885417... Using this value improves conversion accuracy significantly. Please consider using this more accurate value. Alternatively, the use of boost::math::constants could be considered, making the factor: boost::math::constants::pi()/180.0 which works fine as well. " pieterb@… Boost 1.49.0 6894 Highlight context forwarding in async state machine docs statechart Boost 1.49.0 To Be Determined Bugs Andreas Huber assigned 2012-05-13T21:17:44Z 2013-06-09T18:03:25Z (as reported by Sebastian Hoffmann) Andreas Huber Boost 1.49.0 6897 Boost interprocess segfaults interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-05-14T08:19:39Z 2017-03-11T08:20:39Z "Having a boost::unordered map in shared memory and after creation opening it in open_only or open_read_only behaves differently depending on the key length. open_only always works, open_read_only only works if key length is less than 24 bytes. I've got very simple example code that I'll attach, maybe I am doing something wrong here. " Mathias Creutz Boost 1.49.0 6903 Including program options header breaks using g++ -static -flto -std=c++11 program_options Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-05-15T13:30:10Z 2012-10-24T20:37:59Z "A minimal example is simply {{{ #include ""boost/program_options.hpp"" int main ( int argC, char* argV[] ) { return 0; } }}} Compiling this using either[[BR]] g++ main.cpp -static -flto -std=c++11 -fwhole-program[[BR]] or[[BR]] g++ main.cpp -static -flto -std=c++11 -fno-use-linker-plugin[[BR]] gives a lot of errors: `_ZTIN9__gnu_cxx24__concurrence_lock_errorE' referenced in section `.text._ZN9__gnu_cxx30__throw_concurrence_lock_errorEv[_ZN9__gnu_cxx30__throw_concurrence_lock_errorEv]' of /usr/lib/gcc/x86_64-linux-gnu/4.7/libstdc++.a(eh_alloc.o): defined in discarded section `.gnu.linkonce.t._ZTIN9__gnu_cxx24__concurrence_lock_errorE' of /tmp/ccEoPVoT.o (symbol from plugin)[[BR]] ...[[BR]] collect2: error: ld returned 1 exit status I tried g++4.6 and 4.7. I am not sure if it is a bug within the g++ or within boost. If either -static, -flto or -std=c++11 is omited the program compiles fine. Only if all three are present the error occours. I am using Debian Wheezy. " boostBugs@… Boost 1.49.0 6906 boost 1.49 takes too much CPU time. interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-05-16T07:51:54Z 2012-05-16T07:51:54Z "I moved from boost 1.44 with my project building with Visual Studio 2005 to 1.49 (+Visual Studio 2010) and found that CPU usage of my application hovers between 90% to 99-100%. I found interprocess::message_queue::recieve takes too much CPU time and if I replace this with interprocess::message_queue::timed_receive with a time parameter ( + minor adjustment in client code that was calling recieve), there seems to be some improvement ( CPU usage time hovers between 1% to 25%)." zhussain@… Boost 1.49.0 6916 file_descriptor_sink is missing the definition for its templated open() function. iostreams Boost 1.49.0 To Be Determined Bugs Jonathan Turkanis new 2012-05-17T19:02:34Z 2012-05-17T19:02:34Z file_descriptor_sink has a templated function to open based on any path type, but the function has no definition, resulting in linker errors if you try to call it. I have attached a patch that implements the function by calling open() with detail::path, the same as how file_descriptor and file_descriptor_source do it. Aaron Barany Boost 1.49.0 6921 documentation for BOOST_MPL_ASSERT_RELATION inconsistent with implementation mpl Boost 1.49.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-05-20T19:24:49Z 2012-10-29T15:18:50Z "Documenation for MPL states that the proper syntax BOOST_MPL_ASSERT_RELATION is: BOOST_MPL_ASSERT_RELATION( x, op, y ); where x and y are integral constants. Given this, the following assert should trap since 8 is not an integral constant {{{ BOOST_MPL_ASSERT_RELATION(8, ==, 8); // no assertion }}} But in fact it does not. On the other hand, the following should not trap {{{ BOOST_MPL_ASSERT_RELATION( (boost::mpl::integral_c), ==, (boost::mpl::integral_c) ); }}} But in fact it does. So it seems that the documentation doesn't agree with the implementation. Robert Ramey " Robert Ramey Boost 1.49.0 6925 BooleanMetafunction mpl Boost 1.49.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-05-21T16:56:39Z 2012-05-21T16:56:39Z "mpl defined the metafunctions max as: N1, N2 any type. with semantics equivalent to: typedef if_< less,y,x >::type r; BUT less requires that x & y be a NumericalMetafunction wity x, y modeling IntegralConstant. So, I believe that N1 and N2 should also be required to model IntegralConstant. In addition, it makes sense the max (and min) model the concept of NumericalMetafunction with value type bool. Actually, there should be a concept BooleanMetafunction as short hand for NumericalMetafunction. I came across this problem when I removed the ::type from min and got a compile error. This should work as plus, ... etc do. Robert Ramey " Robert Ramey Boost 1.49.0 6928 semaphore.hpp duplicates nested namespace interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-05-22T18:07:14Z 2012-05-22T18:07:14Z "\boost\interprocess\sync\spin\semaphore.hpp is placed in namespace boost::interprocess::ipcdetail and is using functions in a nested namespace ipcdetail causing compilation failure: e.g. \proj\boost_1_49_0\boost\interprocess\sync\spin\semaphore.hpp(53): error C2039: 'atomic_write32' : is not a member of 'boost::interprocess'''::ipcdetail::ipcdetail'''' " info@… Boost 1.49.0 6929 stream and stream_buffer need const versions of operator-> and operator * iostreams Boost 1.49.0 To Be Determined Bugs Jonathan Turkanis new 2012-05-22T19:49:21Z 2012-05-22T19:49:21Z "stream and stream_buffer need their operator-> and operator * to be either made const or the const versions need to be added. These operators do not modify the state of the stream and can be used to execute const functions of the device (like st->handle() for a file_descriptor device) ." Igor Lubashev Boost 1.49.0 6946 bootstrap.sh not compatible with python3. Building Boost Boost 1.49.0 To Be Determined Bugs Stefan Seefeld new 2012-05-26T18:05:27Z 2017-10-26T13:55:33Z "Just tried building boost with python3 support and hit a small snag with bootstrap.sh using invalid syntax. On line 280, the print statement has been removed from python3 so you need to use the print *function* instead, with brackets: PYTHON_ROOT=`$PYTHON -c ""import sys; print(sys.prefix)""` This change does not break compatibility with python2. " Robert Park Boost 1.49.0 6952 [interprocess] mixed comment styles causing documentation issues? interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-05-29T15:43:02Z 2012-05-29T15:43:02Z "There are a handful of comments of the form: {{{ //! ... */ }}} In at least one instance (boost/interprocess/ipc/message_queue.hpp), the code looks like this: {{{ //!Sends a message stored in buffer ""buffer"" with size ""buffer_size"" in the //!message queue with priority ""priority"". If the message queue is full //!the sender is blocked. Throws interprocess_error on error.*/ void send (const void *buffer, size_type buffer_size, unsigned int priority); }}} Which got rendered into the docs like so: *void send(const void * buffer, size_type buffer_size, unsigned int priority); Sends a message stored in buffer ""buffer"" with size ""buffer_size"" in the message queue with priority ""priority"". If the message queue is full the sender is blocked. Throws interprocess_error on error. -- http://www.boost.org/doc/libs/1_49_0/doc/html/boost/interprocess/message_queue_t.html#id985430-bb Note the leading ""*"" on the method signature. " anthony.foiani@… Boost 1.49.0 6961 problem with list_c et.all mpl Boost 1.49.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-06-03T17:55:46Z 2012-06-03T20:48:06Z "The documentation for list_c states that it is a model of Front Extensible Sequence. But some simple testing suggests otherwise. Here is my test program: {{{ #include ""../include/multi_precision.hpp"" //#include //#include //#include #include #include #include #include #include #include #include namespace boost { namespace mpl { print< list_c > x8; print< front< list_c >::type > x7; print< push_front< list_c, integral_c >::type > x6; }}} which produces the following output on my VC 9.0 compiler {{{ 1>------ Build started: Project: test_interval, Configuration: Debug Win32 ------ 1>Compiling... 1>test_multi_precision.cpp 1>c:\boostrelease\boost\mpl\print.hpp(51) : warning C4308: negative integral constant converted to unsigned type 1> c:\projects\boost projects\mpl\tests\test_multi_precision.cpp(24) : see reference to class template instantiation 'boost::mpl::print' being compiled 1> with 1> [ 1> T=boost::mpl::list_c 1> ] 1>c:\boostrelease\boost\mpl\print.hpp(51) : warning C4308: negative integral constant converted to unsigned type 1> c:\projects\boost projects\mpl\tests\test_multi_precision.cpp(33) : see reference to class template instantiation 'boost::mpl::print' being compiled 1> with 1> [ 1> T=boost::mpl::integral_c 1> ] 1>c:\boostrelease\boost\mpl\print.hpp(51) : warning C4308: negative integral constant converted to unsigned type 1> c:\projects\boost projects\mpl\tests\test_multi_precision.cpp(44) : see reference to class template instantiation 'boost::mpl::print' being compiled 1> with 1> [ 1> T=boost::mpl::l_item,boost::mpl::integral_c,boost::mpl::list2_c> 1> ] }}} What I hope to see for the third test is: {{{ T=boost::mpl::list_c }}} If I use {{{ print< push_front< list_c, 33 >::type > x5; }}} But this fails to compile at all. To me, the list_c implementation is misconceived. Maybe the following should result {{{ print< list_c::type // note the ::type to make it a metafunction > x8; }}} to return {{{ T=boost::mpl::list,boost::mpl::integral_c > }}} Of course the same observations would apply to vector_c, etc. Robert Ramey " Robert Ramey Boost 1.49.0 6962 [function] missing document function::assign() function Boost 1.49.0 To Be Determined Bugs Douglas Gregor new 2012-06-04T03:26:34Z 2012-06-04T03:26:34Z "boost::function::assign() member function is undocument. This function can assign allocator object one of the few way. I hope documentation this function. {{{ #include #include #include struct increment { int operator()(int x) const { return x + 1; } }; int main() { boost::function f; f.assign(increment(), std::allocator()); assert(f(1) == 2); } }}}" Akira Takahashi Boost 1.49.0 6974 boost::optional compilation error with boost::function and boost::fusion::vector optional Boost 1.49.0 To Be Determined Bugs Fernando Cacciola new 2012-06-08T21:16:18Z 2013-02-19T15:54:07Z "If you compile the following on g++ 4.4.5, it will fail to compile because the optional_base copy constructor and destructor are protected. boost::optional< boost::fusion::vector1 > > A duplication program is attached." Jonathan Jones Boost 1.49.0 6976 Waiting on boost interprocess condition consumes 100% CPU on Windows interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-06-10T00:03:20Z 2018-04-22T20:47:11Z "The problem arises when several threads of several processes waits on same condition. For example, we have application in which we create several threads with thread function like this: {{{ while (_running) { boost::interprocess::scoped_lock lock ( _shm->mutex ) ; // _shm - shared memory _shm->condition.wait ( lock ) ; // condition is boost::interprocess::interprocess_condition } }}} In main function we simply create several threads, sleep for a some time and stop threads. If we create 4 threads and start 2 applications, or create 3 threads and start 3 applications, or create 2 threads and start 4 applications then we get this problem. Its funny that the problem arising depends on quantity of threads and processes which we start. This is tested on windows 7, windows xp. No problem on Linux system (Debian squeeze) " tmf83 Boost 1.49.0 6977 bug in conversion of mpl iterator category tags mpl Boost 1.49.0 To Be Determined Bugs Joel Falcou new 2012-06-10T05:46:48Z 2012-06-10T05:46:48Z "MPL documentation indicates that bidirectional_iterator_tag is convertible to random_access_iterator_tag. The following code shows that this is not true. {{{ #include #include #include #include #include using namespace boost::mpl; print< boost::is_convertible< bidirectional_iterator_tag, random_access_iterator_tag >::type > x5; BOOST_MPL_ASSERT(( boost::is_convertible< bidirectional_iterator_tag, random_access_iterator_tag > )); }}} The compile time output from this progam is: {{{ 1>------ Build started: Project: test_interval, Configuration: Debug Win32 ------ 1>Compiling... 1>test_multi_precision.cpp 1>c:\boostrelease\boost\mpl\print.hpp(51) : warning C4308: negative integral constant converted to unsigned type 1> c:\projects\boost projects\mpl\tests\test_multi_precision.cpp(15) : see reference to class template instantiation 'boost::mpl::print' being compiled 1> with 1> [ 1> T=boost::integral_constant::type 1> ] 1>c:\projects\boost projects\mpl\tests\test_multi_precision.cpp(22) : error C2664: 'boost::mpl::assertion_failed' : cannot convert parameter 1 from 'boost::mpl::failed ************boost::is_convertible::* ***********' to 'boost::mpl::assert::type' 1> with 1> [ 1> From=boost::mpl::bidirectional_iterator_tag, 1> To=boost::mpl::random_access_iterator_tag 1> ] 1> No constructor could take the source type, or constructor overload resolution was ambiguous 1>Build log was saved at ""file://c:\Projects\Boost Projects\mpl\tests\vcide\Debug\BuildLog.htm"" 1>test_interval - 1 error(s), 1 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== }}} Robert Ramey" Robert Ramey Boost 1.49.0 6980 date_time_zonespec.csv has incorrect entries for indiana date_time Boost 1.49.0 To Be Determined Bugs az_sw_dude new 2012-06-11T17:55:16Z 2012-08-15T19:46:44Z "based on http://en.wikipedia.org/wiki/Time_in_Indiana i think the following setting for indianapolis (and other cities in indiana) is incorrect ""America/Indiana/Indianapolis"",""EST"",""EST"","""","""",""-05:00:00"",""+00:00:00"",""2;0;3"","""",""1;0;11"",""+00:00:00"" the above line should be ""America/New_York"",""EST"",""Eastern Standard Time"",""EDT"",""Eastern Daylight Time"",""-05:00:00"",""+01:00:00"",""2;0;3"",""+02:00:00"",""1;0;11"",""+02:00:00"" indiana observes dst since 2006, so i'm not sure if i haven't overlooked something " konrad borys Boost 1.49.0 6981 Can't use boost::ptr_vector::auto_type as data member in GCC 4.6 ptr_container Boost 1.49.0 To Be Determined Bugs Thorsten Ottosen new 2012-06-12T03:56:20Z 2012-06-12T04:57:35Z "The following code failed to compile with g++ 4.6.3 on Ubuntu Linux 12.04 LTS. {{{ #include #include class Test : boost::noncopyable { }; class Pool : boost::noncopyable { public: Pool(); private: boost::ptr_vector::auto_type p_; }; Pool::Pool() { } }}} the error is {{{ In file included from /usr/include/boost/ptr_container/detail/reversible_ptr_container.hpp:22:0, from /usr/include/boost/ptr_container/ptr_sequence_adapter.hpp:20, from /usr/include/boost/ptr_container/ptr_vector.hpp:20, from ptr_vec.cc:2: /usr/include/boost/ptr_container/detail/static_move_ptr.hpp: In instantiation of 'boost::ptr_container_detail::static_move_ptr > ::cant_move_from_const > >': ptr_vec.cc:17:12: instantiated from here /usr/include/boost/ptr_container/detail/static_move_ptr.hpp:168:57: error: no type named 'error' in 'class boost::ptr_container_detail::static_move_ptr > >, boost::heap_clone_allocator>::null_clone_allocator > >' }}} However, if I inline the constructor, it compiles fine. {{{ class PoolOkay : boost::noncopyable { public: PoolOkay() { // okay to inline constructor } private: boost::ptr_vector::auto_type p_; }; }}} Note: there is no error when compiling with g++ 4.4.3 I am not sure if it's a bug of ptr_container or gcc itself." Shuo Chen Boost 1.49.0 6994 gzip_decompressor issue with unusual files iostreams Boost 1.49.0 To Be Determined Bugs Jonathan Turkanis new 2012-06-18T08:48:13Z 2015-03-02T14:22:00Z "The gzip_decompressor implementation fails on gzip files that contain an empty block after a non-empty one. (You can make such a file by gzipping a nonempty and an empty file and concatenating them, but they are also sometimes written by other tools.) Here such a file: $ hexdump -C hello.txt.gz 00000000 1f 8b 08 00 0d ea b4 4f 00 03 cb 48 cd c9 c9 57 |.......O...H...W| 00000010 28 c9 48 2d 4a e5 02 00 8e 45 d1 59 0c 00 00 00 |(.H-J....E.Y....| 00000020 1f 8b 08 00 18 ea b4 4f 00 03 03 00 00 00 00 00 |.......O........| 00000030 00 00 00 00 |....| 00000034 My file reading code is: /* test.cpp */ #include #include #include #include #include int main( int, char** ) { boost::iostreams::filtering_istream stream ; stream.push( boost::iostreams::gzip_decompressor() ) ; boost::iostreams::file_source file( argv[1] ) ; stream.push( file ) ; boost::iostreams::copy( stream, std::cout ) ; } Using gunzip on the above file works fine: $ gunzip -c ../hello.txt.bgz Hello, this is a test file. Using the test program does not: $ ./test ../hello.txt.bgz terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): gzip error " Gavin Band Boost 1.49.0 6997 Bug in specifying alternate build toolset in gcc.jam build Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-06-18T23:59:41Z 2013-01-03T17:03:45Z "You cannot currently specify alternate gcc versions. For example, if you do the following: ./b2 toolset=gcc-44 You will get an error like: error: version '44' requested but 'g++-44' not found and version '4.1.2' of default 'g++' does not match This is because the version-checking code tries to run g++-44 instead of g++44... the patch fixes this in the affected code, comments, and printouts. " carson.fenimore@… Boost 1.49.0 6998 visibility problems on Mac OS X / GCC program_options Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-06-19T12:35:09Z 2012-06-19T12:40:19Z "When an application built with -fvisibility=hidden is linked against libboost_program_options.dylib (built with default visibility), the linker emits the following warning: ld: warning: direct access in !__static_initialization_and_destruction_0(int, int) to global weak symbol boost::program_options::options_description::~options_description() means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. Even if the two are built with different visibility settings the program_options headers should force whatever needs to be visible to be." Mathias Gaunard Boost 1.49.0 7011 Toolset 'intel-darwin' fails as 'stdarg.h' can not be found build Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-06-21T16:38:35Z 2013-01-03T18:42:31Z "Building boost (1.49, and also 1.50 beta) using the 'intel-darwin' toolset currently fails on my system, showing errors such as: {{{ compile.c(33): catastrophic error: cannot open source file ""stdarg.h"" # include ^ compilation aborted for compile.c (code 4) }}} I use the most recent versions of the required developer programs, ICC 12.1.4 and XCode 4.3.3. This appears to be a specific problem of Apple & Intel in case of 'stdarg.h', and the error can be replicated by compiling any C/C++ source file including that header. The problem is also described in Intel's support forum (http://software.intel.com/en-us/forums/showthread.php?t=69724). Apparently, the problem can be fixed by adding at least one of the following compiler flags: {{{ -dev-usr-root=/Applications/Xcode.app/Contents/Developer/usr -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -gcc-name=gcc-4.2 -gxx-name=g++-4.2 }}} Potentially, a call to `xcode-select -print-path` may be necessary to obtain the correct path. From my perspective, the first option in combination with `xcode-select` looks to be the most robust solution. I am, unfortunately, a novice concerning bjam, and can thus not offer a real fix. I will be happy to help if a test run is required. Thank you for help!" vogel@… Boost 1.49.0 7013 Serialization Versioning Broken serialization Boost 1.49.0 To Be Determined Bugs Robert Ramey new 2012-06-22T15:04:59Z 2012-08-15T19:46:09Z "Version numbers are set to random garbage numbers with or without using BOOST_CLASS_VERSION. Sample code attached, sample output with version 1.49.0 on RHEL5 is as follows: {{{ 99 }}}" shaderaider@… Boost 1.49.0 7015 boost::signals::connection with shared_ptr to connected signal signals Boost 1.49.0 To Be Determined Bugs Douglas Gregor new 2012-06-22T15:27:26Z 2012-08-15T20:12:25Z "If you create a connection with a shared_ptr that controls the lifespan of the signal an access violation occurs on disconnection if that is the last remaining reference to the object. {{{ #!c++ class Child : public boost::signals::trackable { public: Child(){} virtual ~Child(){} void callback( int a, int b ) { printf( ""Child::callback( %d, %d )\n"", a, b ); } boost::signal mSignal; }; int main(int argc, char* argv[]) { boost::shared_ptr c( new Child ); boost::signals::connection con; con = c->mSignal.connect( boost::bind( &Child::callback, c, 1, _1 ) ); c->mSignal( 5 ); c.reset(); // The connection is the only thing keeping it alive. When we disconnect // it will also destroy the signal. This causes a memory access violation // when the signal containing the list of connections gets deleted while // removing an item from that list. con.disconnect(); } }}} The fix is to prevent the slot from going out of scope during the act of disconnecting from the signal. {{{ diff --git a/libs/signals/src/signal_base.cpp b/libs/signals/src/signal_base.cpp index 759672d..918e811 100644 --- a/libs/signals/src/signal_base.cpp +++ b/libs/signals/src/signal_base.cpp @@ -143,8 +143,14 @@ namespace boost { self->flags.delayed_disconnect = true; } else { // Just remove the slot now, it's safe + // There is a chance that the binding has the last reference to + // the signal, and destroying it will destroy the signal. To prevent + // this from causing a problem keep a local copy of the binding + // during it's removal from the slot list. + boost::any keep_alive = (*slot)->second; self->slots_.erase(*slot); + return; } } } }}}" Nick Mayer Boost 1.49.0 7055 Boost build doesn't detect presence of ICU for regex build Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-06-29T14:50:35Z 2012-07-08T17:59:29Z "When building Boost against ICU (currently using version 4.4.2), Boost is not detecting the presence of ICU on multiple platforms (Linux/gcc 4.4.6, Macintosh/gcc 4.2.1, Windows/VS2008). In order for Boost to detect ICU, I had to apply the attached patches." Jonathan Jones Boost 1.49.0 7067 The same options in the different groups cause exception while parsing configuration file. program_options Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-07-03T12:30:56Z 2012-07-03T14:01:03Z "Preconditions: There are two option descriptions defined, containing the same options. The options are stored in the configuration file and grouped by the group. Result: options_descriptions add method adds two groups parse method throws unknown option exception with cat1.op1 namespace po::boost::program_options; void test() { po::options_description cat1(""cat1""); cat1.add_options() (""op1"", po::value(), ""op1"") (""op2"", po::value(), ""op2"") (""op3"", po::value(), ""op3"") (""op4"", po::value(), ""op4""); po::options_description cat2(""cat2""); cat2.add_options() (""op1"", po::value(), ""op1"") (""op2"", po::value(), ""op2"") (""op3"", po::value(), ""op3"") (""op4"", po::value(), ""op4""); po::options_description full(""full""); full.add(cat1).add(cat2); po::variables_map map; boost::filesystem::path path(""option.ini""); try { po::store(po::parse_config_file(""option.ini"", full), map); //exception is thrown ""Unknown option cat1.op1"" po::notify(map); } catch(std::exception & ex) { std::cout << ex.what() << std::endl; } option.ini: [cat1] op1=v1 op2=v2 op3=v3 op4=v4 [cat2] op1=v5 op2=v6 op3=v7 op4=v8 " Grzegorz Andrejczuk Boost 1.49.0 7366 program_options/variables_map.hpp warning C4275 program_options Boost 1.49.0 To Be Determined Bugs Vladimir Prus new 2012-09-11T12:34:04Z 2012-09-11T12:34:04Z "When trying to build release version (debug version builds successfully) of our library with boost 1.49 I get the following warning: 1>d:\sb\EventEngine_trunk\outputs\intermediates\include\boost/program_options/variables_map.hpp(148) : warning C4275: non dll-interface class 'std::_Container_base_aux' used as base for dll-interface class 'std::_Container_base_aux_alloc_real<_Alloc>' 1> with 1> [ 1> _Alloc=std::allocator> 1> ] 1> d:\Software\VS2008\VC\include\xutility(377) : see declaration of 'std::_Container_base_aux' Our software has treat warnings as errors enabled so I have to resort to disabling that compiler warning in order to build. Are there any plans to address this?" maciek.siemczyk@… Boost 1.49.0 7369 grow() resets permissions interprocess Boost 1.49.0 To Be Determined Bugs Ion Gaztañaga new 2012-09-12T22:01:11Z 2012-09-12T22:01:11Z "I need to create shared memory with unrestricted permissions (0666). This works fine. When I attempt to grow the shared memory, using the grow() function, the permissions get reset to 0644. I followed the code a bit and saw that it was using ftruncate. Checking the man page for ftruncate reveals, ""the set-user-ID and set-group-ID permission bits may be cleared."" Not sure what affects the ""may"" clause, but it did it every time for me. Umask was set to 0000. Obviously this only effects systems using ftruncate. Windows works correctly. Not sure on what versions may be needed, but: libc6 - 2.11.1 libglib2.0 - 2.24.1 gcc - 4.4.3" Aaron Wright Boost 1.49.0 7517 indirect_streambuf: invalid state change if write() writes less data then requested iostreams Boost 1.49.0 To Be Determined Bugs Jonathan Turkanis new 2012-10-17T10:07:03Z 2012-10-17T10:07:03Z "Currently indirect_streambuf::sync_impl() calls setp() to update pbase() without any regard to current pbase() value. With unreliable write() it will lead to buffer consistency loss and data duplication if write() doesn't satisfy request fully two or more times in a row. As a solution setp() should use pbase() as current buffer begin instead of out().begin(). See patch." Oleg Liatte Boost 1.49.0 7563 slex CONTLINE options parse keyword with backslash wave Boost 1.49.0 To Be Determined Bugs Hartmut Kaiser new 2012-10-24T14:42:43Z 2012-10-24T14:42:43Z "I'm using the slex, wrapped by boost::wave library, and it's very very cool. but I got a problem when using it. that is it seems slex cannot process the following macro correctly: #define M else\ +1 the macro content is irrelevant, the point is slex treats ""else\"" as a whole as code detailed in the attachment. " gongyiling3468@… Boost 1.49.0 7580 boost::asio::tcp SEGV after ioservice stopped, restarted and new asio Boost 1.49.0 To Be Determined Bugs chris_kohlhoff new 2012-10-27T12:34:52Z 2012-10-27T13:42:34Z "For solarpowerlog [1] I use boost::asio for the communication via TCP/IP. During an implementation of an new feature I experienced an reproducible segfault when during ioservice->poll() I hope to give enough information to dig into, but if you need some additional information, please let me know. Please let me also know if I am (unknowingly) misuse or use the library wrongly. Thanks coldtobi '''What I am doing:''' The feature is for sharing a TCP/IP connection within several data sources/sinks in the programm. For this implementation every data source can write and receive at abitrary times where sends have priority over receives. This is realized in the way that receives are interrupted if another data source request a write and then the receive is resumed. The handling of the TCP/IP i/o is done in an dedicated thread (I mark this ""[T]"" below) , the interruption in the ""main"" process (marked [M]) So basically the programm does: [T] socket->connect() [T] socket->async_write(); (in parallel running a deadline_timer to catch timeouts) [T] socket->read_some(); (in parallel running a deadline_timer to catch timeouts. Later we will socket->read_some again after we know the amount of pending bytes. and read those. But for this report: The interruption (next step) is usually at the first read_some() ) [M] ioservice->stop(); (this aborts the read_some, ) Here the thread making the IO detects that the ioservice has been stopped via ioservice->stopped() and will then abort the current operation, wait for the next request adn before executing this new request it will call ioservice->reset(): [t] ioservice->reset() As we now close to the crash, I will elabaroate as precise as possible what is done. (This all now is in the I/O thread) Note: You can find the code at [3]. I add line numbers for better orientation creating the deadline-timer: (lines 684+) {{{ deadline_timer timer(*(this->ioservice)); boost::posix_time::time_duration td = boost::posix_time::millisec(timeout); timer.expires_from_now(td); timer.async_wait(boost::bind(&boosthelper_set_result, (int*) &result_timer, 1)); }}} (boosthelper_set_result is defined in line 451 and just set result_timer to 1 if called) write the bytes: (line 692+) {{{ boost::asio::async_write(*sockt, boost::asio::buffer(s), write_handler); }}} s is a std::string and contains the data to be sent. max 255 bytes ASCII) run the ioservice once to either finish the write or the timeout (line 695) {{{ size_t num = ioservice->run_one(ec); }}} run_once returns and the evaluation shows that async_write completed -- num!=0 is checked and the result_timer also Observation: Wireshark shows that the bytes are not transmitted Then the timer is cancelled and its completion handler catched: (line 703+) {{{ timer.cancel(); LOGTRACE(logger, __PRETTY_FUNCTION__ << "": still alive 2f""); ioservice->poll(); LOGTRACE(logger, __PRETTY_FUNCTION__ << "": still alive 3""); }}} ioservice->poll() is never returning, SEGV is raised here. Unfortunatly the backtrace is also corrupted. When not calling the ioservice->stop(), the SEGFAULT is gone too. (Confirmed by working around the need to stop the ioservice by just polling with short timeouts) '''Testcase''' Providing a destilled testcase is unfortuantly difficult. However, you can use solarpowerlog to see the issue. I commmited also sample configuration which allows a easy reproduction of the issue. See the git tree here [2]. If you have debian, you can install the build-dependencies by '''apt-get build-dep solarpowerlog''' Otherwise configure will tell you about missing deps :-) {{{ git clone git://solarpowerlog.git.sourceforge.net/gitroot/solarpowerlog/solarpowerlog cd solarpowerlog git checkout 47c079d3409c867287888f47bedb4f05b1c353b5 ./bootstrap.sh ./configure --enable-sharedcomms --enable-sputniksimulator --enable-dummyinverter make # in one shell (this one will not crash) src/solarpowerlog -c tools/sputnik_simulator/solarpowerlog_shared.conf # in another shell: (this one which will crash) src/solarpowerlog -c example_confs/solarpowerlog_shared_sim.conf }}} After some seconds youl'll see the SEGV: {{{ 12839 [0x7f2cc3345760] DEBUG inverter.Simulator2.Comms_SharedConnection.SharedTarget null - virtual void CSharedConnectionSlave::Send(ICommand*): work: 0x7f2cb8003550 12839 [0x7f2cc3345760] DEBUG inverter.Simulator2.Comms_SharedConnection.SharedTarget null - Not atomic 0x7f2cb8003550 12839 [0x7f2cc3345760] DEBUG inverter.Simulator2.Comms_SharedConnection.SharedTarget null - virtual void CSharedConnectionSlave::Send(ICommand*): submitting work: 0x7f2cb8003550 12839 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - virtual bool CConnectTCPAsio::AbortAll() Aborting 0 backlog entries 12839 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - virtual bool CConnectTCPAsio::AbortAll() Done 12839 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection. null - Ticket for this command is: 0 (current ticket is 0) 12839 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection. null - CSharedConnectionMaster::Send() ICmd: 0x7f2cb8003550 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - ioservice stopped (1) 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - Waiting for work 12964 [0x7f2cbfea1700] DEBUG inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - ioservice stopped 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - void CConnectTCPAsio::HandleSend(CAsyncCommand*): now handling: 0x7f2cb8003550 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - void CConnectTCPAsio::HandleSend(CAsyncCommand*): still alive 1 12964 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection. null - virtual void CSharedConnectionMaster::ExecuteCommand(const ICommand*) now handling: 0x7f2cb8004460 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - void CConnectTCPAsio::HandleSend(CAsyncCommand*): still alive 2 12964 [0x7f2cc3345760] DEBUG inverter.Simulator.Comms_SharedConnection. null - virtual void CSharedConnectionMaster::ExecuteCommand(const ICommand*) rescheduling read: 0x7f2cb8003e30 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - void CConnectTCPAsio::HandleSend(CAsyncCommand*): still alive 2e 12964 [0x7f2cbfea1700] TRACE inverter.Simulator.Comms_SharedConnection..Comms_TCP_ASIO null - void CConnectTCPAsio::HandleSend(CAsyncCommand*): still alive 2f src/solarpowerlog Segmentation fault. }}} [1] http://sourceforge.net/projects/solarpowerlog/ [2] http://solarpowerlog.git.sourceforge.net/git/gitweb.cgi?p=solarpowerlog/solarpowerlog;a=commit;h=47c079d3409c867287888f47bedb4f05b1c353b5 [3] http://solarpowerlog.git.sourceforge.net/git/gitweb.cgi?p=solarpowerlog/solarpowerlog;a=blob;f=src/Connections/CConnectTCPAsio.cpp;h=5e3b0a1b13b66cc07e491ed98ad7dfe1f3cc5277;hb=47c079d3409c867287888f47bedb4f05b1c353b5" tobi@… Boost 1.49.0 7852 Boost 1.49 compilation warnings [FreeBSD] - python python USE GITHUB Boost 1.49.0 Boost 1.54.0 Bugs Vladimir Prus new 2013-01-04T18:30:31Z 2013-01-05T19:27:49Z "These are the compilation warnings from Boost 1.49 on this platform: FreeBSD RELENG_8 i386 gcc 4.2.2/4.6.3 libs/python/src/list.cpp:16: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/long.cpp:12: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/long.cpp:19: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/long.cpp:26: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/dict.cpp:32: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/tuple.cpp:12: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/str.cpp:16: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/enum.cpp:150: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/class.cpp:211: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/class.cpp:319: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/class.cpp:473: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/class.cpp:621: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/class.cpp:631: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/function.cpp:108: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/function.cpp:110: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/life_support.cpp:94: warning: dereferencing type-punned pointer will break strict-aliasing rules libs/python/src/object/life_support.cpp:96: warning: dereferencing type-punned pointer will break strict-aliasing rules " grarpamp@… Boost 1.49.0 7854 Boost 1.49 compilation warnings [FreeBSD] - timer timer Boost 1.49.0 Boost 1.54.0 Bugs Beman Dawes new 2013-01-04T18:32:54Z 2013-01-04T18:32:54Z "These are the compilation warnings from Boost 1.49 on this platform: FreeBSD RELENG_8 i386 gcc 4.2.2/4.6.3 libs/timer/src/cpu_timer.cpp:139: warning: comparison between signed and unsigned integer expressions " grarpamp@… Boost 1.49.0 8342 [filesystem] v3 path interface is no longer an abstraction filesystem Boost 1.49.0 To Be Determined Bugs Beman Dawes new 2013-03-27T10:45:30Z 2013-03-27T10:52:55Z "Some of the changes to Boost.Filesystem in v3 have made it into a string class with utility methods rather than the path abstraction that it used to be. Consider: path p(""/a/b""); p /= ""c""; cout << p.string(); In version 2 this would output ""/a/b/c"" on Windows but now it produces ""/a/b\c"". Had the behaviour simple changed from using generic path to always using OS path, this would not be a problem; the change would be consistent and the chosen string() method would be the only deciding factor deciding in what format the path was returned. But the behaviour has, instead, changed to return a chimera of generic and OS paths which means the output of the string function is now dependent on the format of the input string and the modifications that were made during its lifetime. The abstraction has been lost. My suggestions: - change boost::filesystem::path to have only two string functions: one that returns entirely generic paths, the other entirely OS paths - make string() be the generic one - let no part of the path interface betray the exact separators that happen to have been used to construct the string as that is a leaky abstraction. See original discussion here: http://thread.gmane.org/gmane.comp.lib.boost.devel/239446" alexander.lamaison@… Boost 1.49.0 8592 Cross compiling on OS X to linux gets the shared object name wrong Building Boost Boost 1.49.0 To Be Determined Bugs new 2013-05-19T21:45:47Z 2013-06-20T16:46:11Z "I'm compiling boost for openwrt on my OS X machine, but it fails near the end, because the shared libraries produced are given the extension .dylib instead of .so. It also affect SONAME inside the lib, which stops me from just renaming them. I'm not really sure what the best way of reproduceing is, short of compiling openwrt: {{{ svn co svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09 cd attitude_adjustment_12.09 ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig (enable boost_system in libraries) make V=s }}} Here's the command used to build boost if that helps: `( cd /Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0 ; echo ""using gcc : mipsel : mipsel-openwrt-linux-gcc : \""-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float\"" \""-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float\"" \""-L/Volumes/data/Unix/openwrt/wl500gp/staging_dir/target-mipsel_uClibc-0.9.33.2/usr/lib -L/Volumes/data/Unix/openwrt/wl500gp/staging_dir/target-mipsel_uClibc-0.9.33.2/lib -L/Volumes/data/Unix/openwrt/wl500gp/staging_dir/toolchain-mipsel_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/Volumes/data/Unix/openwrt/wl500gp/staging_dir/toolchain-mipsel_gcc-4.6-linaro_uClibc-0.9.33.2/lib -pthread -lrt\"" ;"" > tools/build/v2/user-config.jam ; bjam '-sBUILD=release space on off' --toolset=gcc-mipsel --build-type=minimal --layout=system --disable-long-double --target=mipsel-openwrt-linux --host=mipsel-openwrt-linux --build=x86_64-apple-darwin12.3.0 --program-prefix="""" --program-suffix="""" --prefix=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install --exec-prefix=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install --bindir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/bin --sbindir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/sbin --libexecdir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/lib --sysconfdir=/etc --datadir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/share --localstatedir=/var --mandir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/man --infodir=/Volumes/data/Unix/openwrt/wl500gp/build_dir/target-mipsel_uClibc-0.9.33.2/boost_1_49_0/ipkg-install/info --disable-nls --without-chrono --without-date_time --without-exception --without-filesystem --without-graph --without-graph_parallel --without-locale --without-math --without-mpi --without-python --without-random --without-regex --without-serialization --without-signals --without-test --without-thread --without-timer --without-wave -sNO_BZIP2=1 -sZLIB_INCLUDE=/Volumes/data/Unix/openwrt/wl500gp/staging_dir/target-mipsel_uClibc-0.9.33.2/usr/include -sZLIB_LIBPATH=/Volumes/data/Unix/openwrt/wl500gp/staging_dir/target-mipsel_uClibc-0.9.33.2/usr/lib install )`" per@… Boost 1.49.0 8863 BOOST_ATTRIBUTE_NORETURN causes stack pointer corruption exception Boost 1.49.0 To Be Determined Bugs Emil Dotchevski new 2013-07-19T21:36:57Z 2016-04-20T07:15:52Z "Hello, i ran into a strange problem with a very small project of mine. Whenever an exception is thrown in a boost package using boost::throw_exception and my program terminates (no exceptions are beeing catched yet) i get a message box saying: Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call ... I was able to track this down to the BOOST_ATTRIBUTE_NORETURN declaration of boost::throw_exception. When i remove this from a copy of this function, the problem disappears. I am compiling with the following settings: - Compiler: MS Visual Studio C++ 2010 Express - Multithreading: yes - Runtime-linking: static - Build-type: debug My minimal test-program looks like this: #include ""boost/throw_exception.hpp"" int main(int argc, char* argv[]) { boost::throw_exception(std::exception(""foo"")); // <-- this will produce the problem return 0; } I originally asked about the problem here: http://stackoverflow.com/questions/17599772/boost-exceptions-lead-to-stack-pointer-corruption-run-time-check-failure-0" Janosch Boost 1.49.0 9405 boost::spirit::karma::real_generator prints a number multiplied by 10 spirit Boost 1.49.0 To Be Determined Bugs Hartmut Kaiser new 2013-11-18T08:23:32Z 2015-05-09T00:34:46Z When using the attached example, the number 0.09999999999999987 is printed as 0.999999999999999, i.e. multiplied by 10. Josef Zlomek Boost 1.49.0 9431 Problem compiling zip_iterator with clang and C++11 iterator Boost 1.49.0 To Be Determined Bugs jeffrey.hellrung new 2013-11-25T20:13:00Z 2013-11-27T20:27:15Z "The following code fails to compile on OSX 10.8.5 with Xcode 5.0.1 and Boost 1.49.0. This is not real world code, but it demonstrates the problem I'm facing. {{{ #include template void foo() { boost::zip_iterator > iter; std::fill(iter, iter, boost::make_tuple(T())); } void bar() { foo(); } }}} Here are the commands I used to compile (if I drop ""-stdlib=libc++"" from the compile line, the code compiles just fine): {{{ setenv DEVELOPER_DIR /Applications/Xcode5.0.1.app/Contents/Developer xcrun -sdk macosx10.8 clang++ -c zip_iterator.cpp -I/include -std=c++11 -stdlib=libc++ }}} and here is a heavily formatted snippet of the key error: {{{ /Applications/Xcode5.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/algorithm:1824:1: note: candidate function [with _RandomAccessIterator = boost::zip_iterator >, _Tp = boost::tuples::tuple] not viable: no known conversion from 'typename iterator_traits > >::iterator_category' (aka 'boost::detail::iterator_category_with_traversal') to 'std::__1::random_access_iterator_tag' for 4th argument __fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value_, random_access_iterator_tag) }}} It appears as if the zip_iterator is not being converted to the correct iterator tag, which is why no calls to std::fill match." jonathan.jones@… Boost 1.49.0 9525 Assert with program termination due to context<...>() call in simple_state's entry action is incorrect statechart Boost 1.49.0 To Be Determined Bugs Andreas Huber new 2013-12-26T12:58:40Z 2014-01-26T18:12:14Z "{{{ #include #include namespace sc = boost::statechart; struct state; struct fsm : sc::state_machine { void test() {} }; struct state : sc::simple_state { state() { context().test(); } }; int main() { fsm test; test.initiate(); } }}} {{{ statechart_test: /usr/include/boost/statechart/simple_state.hpp:682: static OtherContext& boost::statechart::simple_state::context_impl_other_context::context_impl(State&) [with OtherContext = fsm; State = boost::statechart::simple_state; MostDerived = state; Context = fsm; InnerInitial = boost::mpl::list; boost::statechart::history_mode historyMode = (boost::statechart::history_mode)0u]: Assertion `get_pointer( stt.pContext_ ) != 0' failed. Аварийный останов }}} It's not correct to throw uncatchable surprises like asserts. It's especially incorrect when your library is used in the embedded software. Not to mention this isn't reflected anywhere in the documentation. Please change this to exception throwing, or better, find a way to detect calls like that at compile time. But don't use asserts. That's just bad treatment of your users." anonymous Boost 1.49.0 10149 boost::optional can be constructed from a typed in place factory of the wrong type optional Boost 1.49.0 To Be Determined Bugs Fernando Cacciola new 2014-06-25T16:54:48Z 2016-03-15T12:29:59Z "For example: boost::optional oa = boost::in_place(0); // type-checks but results in runtime undefined behavior, placement new of double in a buffer of size char." aastolfi@… Boost 1.49.0 10829 cardinality() of an interval_set is std::size_t independent of interval type, causing overflow ICL Boost 1.49.0 To Be Determined Bugs Joachim Faulhaber new 2014-12-01T09:32:41Z 2014-12-01T10:47:41Z "For an interval_set boost::icl::interval_set, the cardinality function boost::icl::cardinality() returns std::size_t, which is 32-bit on 32-bit machines. This makes the result wrong, due to overflow, whenever the cardinality of the interval_set does not fit into 32-bit. The following code works on 64-bit but not on 32-bit: {{{ #include int main() { boost::icl::interval_set is; is.add(boost::icl::interval::closed(1, 4294967297LL)); assert(boost::icl::cardinality(is) == 4294967297LL); } }}}" konstantin.miller@… Boost 1.49.0 6351 Better JSON parser property_tree Boost 1.49.0 To Be Determined Feature Requests Sebastian Redl new 2012-01-03T08:58:50Z 2015-07-07T14:04:55Z "JSON parser in property_tree doesn't parse numbers and bools as their type. Instead it stores them as string. property_tree for JSON could be defined in other way: {{{ #!python typedef boost::variant base_json_type; typedef boost::variant< base_json_type, std::vector > composite_json_type; typedef boost::basic_ptree json_ptree; }}}" nn-mail@… Boost 1.49.0 6614 Start adapting Quaternions and Octonions for C++11 math Boost 1.49.0 To Be Determined Feature Requests John Maddock new 2012-02-25T01:28:16Z 2012-02-25T01:28:16Z "When I read up on C++11 features like `constexpr` and `noexcept`, I wonder what classes in Boost can be adapted for them. The quaternion and octonion class templates represent value-types that can easily be made `constexpr` compliant. Further, the specializations for the built-in floating-point types can be made `noexcept` for their operations. I have a patch that starts work on both fronts. Since the library is implemented with macro madness, I can't change too much without making the file unrecognizable to `diff` utilities. This means that some stuff in the specializations that could be `noexcept` can't be since they share textual implementation with the general templates' versions of the code. Some aggresive marking of constructors as `explicit` has been toned down, still conforming to the docs. Speaking of which, they have been changed to match the new code (plus two doc errors). For future directions, the big hurdle is the idiom that binary-operator @@ is implemented in terms of @@=. That's generally OK in C++03, but now it disqualifies the former from being declared `constexpr` since the latter is mutating. Fixing this would entail flipping the relationship between the functions around. " Daryle Walker Boost 1.49.0 6679 [asio] request : repeat timer asio Boost 1.49.0 To Be Determined Feature Requests chris_kohlhoff new 2012-03-12T08:01:08Z 2012-03-12T08:01:08Z "This ticket is feature request. I want repeat feature in deadline_timer/waitable_timer. Many libraries timer have repeat features. follow code is example. before: {{{ void on_timer(error_code error, steady_timer& timer) { if (error) return; timer.expires_from_now(seconds(1)); timer.async_wait(boost::bind(&on_timer, _1, boost::ref(timer))); } int main() { ... timer.expires_from_now(seconds(1)); timer.async_wait(boost::bind(&on_timer, _1, boost::ref(timer))); } }}} after: {{{ void on_timer(error_code error, steady_timer& timer) { if (error) return; // no boiler plate } int main() { ... timer.expires_from_now(seconds(1), steady_timer::repeat); timer.async_wait(boost::bind(&on_timer, _1, boost::ref(timer))); } }}}" Akira Takahashi Boost 1.49.0 6710 Boost Containers Using interprocess Basic_strings Need external temporaries container Boost 1.49.0 To Be Determined Feature Requests Ion Gaztañaga new 2012-03-20T00:22:42Z 2012-03-21T20:53:33Z "When using an interprocess basic string such as: typedef boost::interprocess::allocator< char, boost::interprocess::managed_mapped_file::segment_manager > char_allocator_t; typedef boost::interprocess::basic_string< char, std::char_traits, char_allocator_t > key_type; map, flat_map (and unordered_map) all require that one have an externally created temporary of that type (key_type) created that can temporarily hold the results of a std::string or char*. This requires code of the form: // A temporary string that allocates from the mapped file struct shm_clean { // cleanup shared memory on stack-unwind shm_clean() { boost::interprocess::shared_memory_object::remove(""StupidSharedMemory""); } ~shm_clean() { boost::interprocess::shared_memory_object::remove(""StupidSharedMemory""); } } cleaner; boost::interprocess::managed_shared_memory stupid(boost::interprocess::create_only ,""StupidSharedMemory"" ,500); key_type key_val(stupid.get_segment_manager()); mymap_in_shared_memory[key_val = mystring.c_str()] = junk; This is barely ok when we are working with mutable memory regions, but when I am working in a read-only memory map, it is annoying. Please see this thread: http://thread.gmane.org/gmane.comp.lib.boost.devel/228874 Bug posted at request of Ion Gaztañaga Joel" jdy@… Boost 1.49.0 6753 Make message_queue_t::do_send(...) public. interprocess Boost 1.49.0 To Be Determined Feature Requests Ion Gaztañaga new 2012-03-31T15:47:15Z 2012-03-31T15:47:15Z "In the file boost/interprocess/ipc/message_queue.hpp, it would be useful if the member function: {{{ bool message_queue_t::do_send(...) }}} was public. Doing so, it would be easier to determine the policy to be followed when the memory block is full, using a parameter instead of a further external switch statement." Pietro Mele Boost 1.49.0 6757 Add lzw_compressor and lzw_decompressor filters iostreams Boost 1.49.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-04-01T19:00:11Z 2012-04-01T19:00:11Z "Boost.IOstreams has support for BZ2, GZIP, and DEFLATE compression/decompression. To be able to read output from the POSIX-standard `compress` utility, it would be nice if the library also supported compression and decompression with the Lempel-Ziv-Welch (LZW) algorithm. Here are some LZW implementations that might be of use: * [http://marknelson.us/2011/11/08/lzw-revisited/ LZW Revisited] by Mark Nelson * [http://michael.dipperstein.com/lzw/ Lempel-Ziv-Welch (LZW) Encoding Discussion and Implementation] by Michael Dipperstein * [http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/lzw libfreetype2's LZW support] * [http://rosettacode.org/wiki/LZW_compression LZW compression] on Rosetta Code" dtrebbien@… Boost 1.49.0 6765 boost::mem_fn not entirely compatible with std::mem_fn bind Boost 1.49.0 To Be Determined Feature Requests Peter Dimov new 2012-04-05T10:37:15Z 2012-04-05T10:37:15Z "boost::mem_fn only supports calling member functions through proxies when the proxy type has a matching get_pointer function. This is not necessary for std::mem_fn (20.8.10) as the second or fourth item of INVOKE (20.8.2) should apply in such a case. A solution would be to change _mfi::dm::call(U const& u, void const*) to simply call (*u).*f_ I couldn't find any documentation why exactly get_pointer is used and don't know which implications this might have, but it would be a nice to have feature (and would also allow mem_fn to work on iterators which are often used as handles)." philipp.moeller@… Boost 1.49.0 6793 Support construction from range array Boost 1.49.0 To Be Determined Feature Requests Marshall Clow assigned 2012-04-14T20:46:23Z 2012-12-17T17:31:46Z "Could you support construction from a range and from an iterator pair? I don't know what to do when the input doesn't match the array size. If it's smaller you could default construct the rest of the array. If it's larger, you could truncate, std::terminate() or throw. Or just consider it undefined behaviour." Olaf van der Spek Boost 1.49.0 6865 pool.get_size() pool Boost 1.49.0 To Be Determined Feature Requests John Maddock new 2012-05-04T19:04:26Z 2012-07-16T20:02:57Z "It would be nice to have a function get_size() that would return the current size of the pool. This could be helpful to track a pool's memory usage." edupuis Boost 1.49.0 6875 [signals2] compilation error in fnoexception signals2 Boost 1.49.0 To Be Determined Feature Requests Frank Mori Hess new 2012-05-08T07:53:16Z 2012-05-08T07:53:16Z "Boost.Signals2 compile error because Boost.Signals2 using try/catch grammar (not BOOST_TRY/BOOST_CATCH) in fnoexception environment. This ticket is feature requests (not bug). {{{ // g++ main.cpp -fno-exceptions -I ""C:\Library\Boost\1_49_0"" #define BOOST_NO_EXCEPTIONS #include int main () { } }}} {{{ In file included from C:\Library\Boost\boost_1_49_0/boost/signals2/deconstruct.h pp:29:0, from C:\Library\Boost\boost_1_49_0/boost/signals2.hpp:15, from main.cpp:2: C:\Library\Boost\boost_1_49_0/boost/signals2/deconstruct_ptr.hpp: In function 'v oid boost::signals2::detail::do_predestruct(const boost::signals2::predestructib le_adl_barrier::predestructible*)': C:\Library\Boost\boost_1_49_0/boost/signals2/deconstruct_ptr.hpp:48:15: error: e xception handling disabled, use -fexceptions to enable }}}" Akira Takahashi Boost 1.49.0 6882 Interprocess should provide filesystem location of shared memory files interprocess Boost 1.49.0 To Be Determined Feature Requests Ion Gaztañaga new 2012-05-09T14:51:03Z 2012-05-09T14:51:03Z "Every now and then we have problems with shared memory files, so our application ceases to work correctly. This is probably not Boost's fault, but a Windows issue. We would like to be able to print the location of the directory, where Boost Interprocess puts its files, so the user can check and possibly clean up the directory. Therefore a method providing this information e.g. as a member function of shared_memory_object would be nice." martin.apel@… Boost 1.49.0 6884 Add functionality to enumerate filesystem roots filesystem Boost 1.49.0 To Be Determined Feature Requests Beman Dawes new 2012-05-09T23:51:47Z 2012-05-10T13:55:16Z "Unlike POSIX systems, which root everything at '/', some systems (notably Windows) provide multiple filesystem roots. In order to abstract this difference in a cross-platform way, I propose that a new function be added to boost::filesystem to return a list of path objects, one for each filesystem root. On a POSIX system, this would simply return ![""/""], but on Windows, it would return, e.g., [""C:/"", ""D:/""]. This would make it possible to implement something like a filesystem browser in a platform-independent manner. There is precedence for this functionality in several cross-platform libraries, including Java (File.listRoots), Qt (QDir::drives), and Poco (Poco::Path::listRoots)." Erik Jensen Boost 1.49.0 6889 Initialise multi_array with a given value multi_array Boost 1.49.0 To Be Determined Feature Requests Ronald Garcia new 2012-05-11T03:21:55Z 2013-11-02T04:07:54Z "The multi-array only allows users to initialise all elements to a default constructed T(). That may not be desirable if you would like a different value, either for performance reasons or because the type does not support default initialisation. For example: {{{ #include #include struct no_default { explicit no_default(int i) {} }; int main() { std::vector v(10, no_default(3)); boost::multi_array m(boost::extents[10][10][10]); // won't compile } }}} Offering constructors that accept a value to be used to initialise the elements would be the easiest fix. This would also align with std::vector usage." Andrew Morris Boost 1.49.0 6923 add compile time inteval arithmetic to TODO list interval Boost 1.49.0 To Be Determined Feature Requests Boris Gubenko new 2012-05-20T21:57:10Z 2012-05-20T21:57:10Z "Please consider adding compile time integer arithmetic ala mpl::plus etc. I would find this and multply useful. Rober Ramey " Robert Ramey Boost 1.49.0 6972 Boost.Locale doesn't provide sufficient control over collation locale Boost 1.49.0 To Be Determined Feature Requests Artyom Beilis new 2012-06-07T21:35:03Z 2012-06-07T21:35:03Z "I have just started using boost Locale and it is a great addition to the boost library. However, the collation level options do not give a fine enough control. From the ICU documentation: ""In some cases, punctuation can be ignored while searching or sorting data...In other cases, it is desirable for punctuated text to be distinguished from text without punctuation."" (This appears to be controlled by the Alternate attribute.) However, boost Locale seems to always assume that punctuation can be ignored when you are also ignoring case. In particular, I find at the secondary level that ""SINWAVE"" is considered equal to ""sin_wave"" (compare returns 0) when this is not what I (and very likely others) require. The first two levels (primary and secondary) really need options to not ignore punctuation and whitespace." Karim Chichakly Boost 1.49.0 6979 constexpr support in MPL mpl Boost 1.49.0 To Be Determined Feature Requests Aleksey Gurtovoy new 2012-06-11T15:56:16Z 2014-03-28T20:23:26Z C++11 introduced generalized constant expression with the constexpr keyword. It would be very nice if Boost.MPL static constants could be marked as constexpr so that they can be used in other constant expressions. anonymous Boost 1.49.0 6991 Provide a way to disable interspersed arguments program_options Boost 1.49.0 To Be Determined Feature Requests Vladimir Prus new 2012-06-15T22:08:17Z 2012-10-17T09:09:02Z "I'm trying to write a program that wraps other programs, and allowing switches to come after the first positional argument in this situation is very annoying from the user's standpoint. If I define the flag --flag in my wrapper, it means that {{{ my-program target-program --flag }}} won't run {{{target-program --flag}}} as one would hope, but will treat {{{--flag}}} as an argument to my program. This means that the user has to run {{{my-program -- target-program --flag}}} every time, which is both annoying and goes against how most such programs work on Unix. (You never see someone say ""run {{{sudo -- apt-get install blah}}}."" Or xargs, env, nohup, etc.) As far as I'm concerned, this problem is a showstopper for using the stock Boost po for this sort of program. If the Gflags library didn't have the same limitation, I'd be using it right now instead of having patched Boost. :-) So I request a setting to disable this sort of interspersed arguments. ---- Fortunately, (one possible) fix seems to be pretty simple from what I can tell. I'll follow up this post with a patch after I get things cleaned back up and such." driscoll@… Boost 1.49.0 6662 Add osx framework support to clang build Boost 1.49.0 To Be Determined Patches Vladimir Prus new 2012-03-08T16:23:58Z 2012-03-08T16:23:58Z bsantos@… Boost 1.49.0 6684 clang-darwin: handle LTO in archives build Boost 1.49.0 To Be Determined Patches Vladimir Prus new 2012-03-13T15:09:48Z 2012-03-28T07:10:55Z Bruno Santos Boost 1.49.0 11212 """type qualifiers ignored on function return type"" in ptr_container's map_iterator's operator->" ptr_container Boost 1.49.0 To Be Determined Patches Thorsten Ottosen new 2015-04-20T21:34:07Z 2015-04-20T21:34:07Z "Sorry to bore you with such trivia, when I know this is easy for anyone who hits it to fix themselves, but it'd be nice if we didn't have to reapply this patch when we upgrade Boost. While I'm raising this on the obsolete version I actually used in the test case below, the fingered code is still present in svn: martind@swiftboat:~/playpen$ cat map_iterator.cpp #include martind@swiftboat:~/playpen$ gcc -c -Wignored-qualifiers -Wsystem-headers map_iterator.cpp In file included from /usr/include/boost/ptr_container/ptr_map_adapter.hpp:19:0, from /usr/include/boost/ptr_container/ptr_map.hpp:20, from map_iterator.cpp:1: /usr/include/boost/ptr_container/detail/map_iterator.hpp:52:48: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] martind@swiftboat:~/playpen$ I'll attach a patch against trunk." martin.dorey@… Boost 1.49.0 6797 Undefined references for program_options library with mingw64. program_options Boost 1.49.0 To Be Determined Support Requests Vladimir Prus new 2012-04-16T08:43:49Z 2015-06-09T07:05:39Z "I compiled a shared version of boost program_options with mingw64. When I try to link against it I get: {{{ Linking CXX executable ..\..\..\binary\abc.exe CMakeFiles\abc.dir/objects.a(test.cpp.obj):test.cpp:(.text+0x65bf): undefined reference to `boost::program_options::detail::common_config_file_iterator::c ommon_config_file_iterator(std::set, std::allocator > const&, bool)' CMakeFiles\abc.dir/objects.a(test.cpp.obj):test.cpp:(.text+0x6672): undefined reference to `boost::program_options::detail::common_config_file_iterator::g et()' CMakeFiles\abc.dir/objects.a(test.cpp.obj):test.cpp:(.text+0x7871): undefined reference to `boost::program_options::detail::common_config_file_iterator::g et()' collect2: ld returned 1 exit status }}} I use cmake for my project and everything works fine under linux. nm gives the following output: {{{ $ nm libboost_program_options.dll | grep common_config_file_iterator 000000006e1a62c0 d .data$_ZTIN5boost12eof_iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEEE 000000006e1a62e0 d .data$_ZTIN5boost15iterator_facadeINS_15program_options6detail27common_config_file_iteratorEKNS1_12basic_optionIcEENS_21forward_traversal_tag ERS6_xEE 000000006e1a6660 d .data$_ZTIN5boost15program_options6detail27common_config_file_iteratorE 000000006e1a96a0 d .data$_ZTVN5boost15program_options6detail27common_config_file_iteratorE 000000006e1b578c p .pdata$_ZN5boost15program_options6detail27common_config_file_iterator7getlineERSs 000000006e1b58d0 p .pdata$_ZN5boost15program_options6detail27common_config_file_iteratorD0Ev 000000006e1b58c4 p .pdata$_ZN5boost15program_options6detail27common_config_file_iteratorD1Ev 000000006e1b5d38 p .pdata$_ZN5boost15program_options6detail27common_config_file_iteratorD2Ev 000000006e1b18e0 r .rdata$_ZTSN5boost12eof_iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEEE 000000006e1b1960 r .rdata$_ZTSN5boost15iterator_facadeINS_15program_options6detail27common_config_file_iteratorEKNS1_12basic_optionIcEENS_21forward_traversal_ta gERS6_xEE 000000006e1b20e0 r .rdata$_ZTSN5boost15program_options6detail27common_config_file_iteratorE 000000006e108c20 t .text$_ZN5boost15program_options6detail27common_config_file_iterator7getlineERSs 000000006e108c30 t .text$_ZN5boost15program_options6detail27common_config_file_iteratorD0Ev 000000006e108e00 t .text$_ZN5boost15program_options6detail27common_config_file_iteratorD1Ev 000000006e108fc0 t .text$_ZN5boost15program_options6detail27common_config_file_iteratorD2Ev 000000006e1be600 r .xdata$_ZN5boost15program_options6detail27common_config_file_iterator7getlineERSs 000000006e1be74c r .xdata$_ZN5boost15program_options6detail27common_config_file_iteratorD0Ev 000000006e1be740 r .xdata$_ZN5boost15program_options6detail27common_config_file_iteratorD1Ev 000000006e1beadc r .xdata$_ZN5boost15program_options6detail27common_config_file_iteratorD2Ev 000000006e198fe0 t _GLOBAL__sub_I__ZN5boost15program_options6detail27common_config_file_iteratorC2ERKSt3setISsSt4lessISsESaISsEEb 000000006e0cd800 T _ZN5boost15program_options6detail27common_config_file_iterator10add_optionEPKc 000000006e0cde20 T _ZN5boost15program_options6detail27common_config_file_iterator3getEv U _ZN5boost15program_options6detail27common_config_file_iterator7getlineERSs 000000006e108c20 T _ZN5boost15program_options6detail27common_config_file_iterator7getlineERSs 000000006e0ceda0 T _ZN5boost15program_options6detail27common_config_file_iteratorC1ERKSt3setISsSt4lessISsESaISsEEb 000000006e0da700 t _ZN5boost15program_options6detail27common_config_file_iteratorC2ERKS2_.constprop.235 000000006e0ceda0 T _ZN5boost15program_options6detail27common_config_file_iteratorC2ERKSt3setISsSt4lessISsESaISsEEb 000000006e108c30 T _ZN5boost15program_options6detail27common_config_file_iteratorD0Ev U _ZN5boost15program_options6detail27common_config_file_iteratorD0Ev U _ZN5boost15program_options6detail27common_config_file_iteratorD1Ev 000000006e108e00 T _ZN5boost15program_options6detail27common_config_file_iteratorD1Ev 000000006e108fc0 T _ZN5boost15program_options6detail27common_config_file_iteratorD2Ev 000000006e0cd660 T _ZNK5boost15program_options6detail27common_config_file_iterator14allowed_optionERKSs 000000006e1a62c0 D _ZTIN5boost12eof_iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEEE 000000006e1a62e0 D _ZTIN5boost15iterator_facadeINS_15program_options6detail27common_config_file_iteratorEKNS1_12basic_optionIcEENS_21forward_traversal_tagERS6_x EE 000000006e1a6660 D _ZTIN5boost15program_options6detail27common_config_file_iteratorE 000000006e1b18e0 R _ZTSN5boost12eof_iteratorINS_15program_options6detail27common_config_file_iteratorENS1_12basic_optionIcEEEE 000000006e1b1960 R _ZTSN5boost15iterator_facadeINS_15program_options6detail27common_config_file_iteratorEKNS1_12basic_optionIcEENS_21forward_traversal_tagERS6_x EE 000000006e1b20e0 R _ZTSN5boost15program_options6detail27common_config_file_iteratorE 000000006e1a96a0 D _ZTVN5boost15program_options6detail27common_config_file_iteratorE }}} The command I use to build boost is: {{{ b2 --toolset=gcc variant=release address-model=64 threading=multi optimization=speed link=shared runtime-link=shared cxxflags='-DBOOST_USE_WINDOWS_H -std=gnu++0x -march=core2 -mtune=core2 -msse -msse2 -mssse3 -msse4' --with-thread --with-dat e_time --with-filesystem --with-program_options --prefix=c:/temp/boost install }}} I attach a minimal cmake project (I used Boost 1.48.0 there, but it makes no difference)." tasptz@… Boost 1.49.0 11537 named_recursive_mutex deadlock problem interprocess Boost 1.49.0 To Be Determined Support Requests Ion Gaztañaga new 2015-08-13T07:27:49Z 2015-08-13T07:27:49Z "In my fastcgi application code, I tried to use managed_mapped_file to communicate between process, and use named_recursive_mutex to do synchronization. With fastcgi, I started 3 child process, after a few minutes, I found all these 3 process waiting for lock: Thread 1 (Thread 0x7f0e2b536820 (LWP 16593)): #0 0x0000003d9ee0e054 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x0000003d9ee093a3 in _L_lock_892 () from /lib64/libpthread.so.0 #2 0x0000003d9ee09287 in pthread_mutex_lock () from /lib64/libpthread.so.0 #3 0x000000000054a9cf in boost::interprocess::ipcdetail::posix_recursive_mutex::lock() () #4 0x000000000054aabc in boost::interprocess::interprocess_recursive_mutex::lock() () #5 0x000000000054b304 in boost::interprocess::ipcdetail::shm_named_recursive_mutex::lock() () #6 0x000000000054b390 in boost::interprocess::named_recursive_mutex::lock() () #7 0x000000000054bade in boost::interprocess::scoped_lock::scoped_lock(boost::interprocess::named_recursive_mutex&) () #8 0x00000000005647ef in IPRateLimit::CIPLimit::incCount(unsigned int, IPRateLimit::iprate&) () #9 0x00000000004d8017 in (anonymous namespace)::TboProc::operator()() () #10 0x00000000004e40f9 in Goome::FCGI_Accepter<(anonymous namespace)::TboProc>::dispatch() () #11 0x00000000004e2f80 in fork_main(int) () #12 0x00000000004e346f in main ()" zzweng_2001@… Boost 1.50.0 380 Support for bundled properties in graph adaptors graph Boost 1.50.0 To Be Determined Bugs Douglas Gregor reopened 2005-03-28T21:21:38Z 2012-09-07T08:18:57Z "{{{ The graph adaptors (such as subgraph) do not support bundled properties, but they should. }}}" Douglas Gregor Boost 1.50.0 7101 b2 defines multiple isysroot on Mac OSX 10.6 when targeting SDK versions earlier than 10.6 build Boost 1.50.0 To Be Determined Bugs Vladimir Prus new 2012-07-08T08:57:53Z 2013-03-26T16:23:18Z "Building Boost 1.50.0 on Mac OSX 10.6 included multiple SDK versions when targeting SDK versions 10.5 adn/or 10.4; ./b2 toolset=darwin link=static threading=multi stage --with-program_options architecture=combined macosx-version=10.5 macosx-version-min=10.5 -d3 produces ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.5 -arch i386 -arch ppc -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/program_options/build/darwin-4.2.1/release/architecture-combined/link-static/macosx-version-min-10.5/macosx-version-10.5/threading-multi/cmdline.o"" ""libs/program_options/src/cmdline.cpp"" and targeting 10.4 SDK ./b2 toolset=darwin link=static threading=multi stage --with-program_options architecture=combined macosx-version=10.4 macosx-version-min=10.4 -d3 produces ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.4 -arch i386 -arch ppc -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/program_options/build/darwin-4.2.1/release/architecture-combined/link-static/macosx-version-min-10.4/macosx-version-10.4/threading-multi/cmdline.o"" ""libs/program_options/src/cmdline.cpp"" that is, {{{isysroot}}} is defined multiple times. That apparently causes the latest SDK to be used, which leads to linker errors when a project built against an earlier SDK tries to link Boost. A quick workaround is to hide the later SDK from b2: {{{ sudo mv /Developer/SDKs/MacOSX10.6.sdk /Developer/SDKs/bak.MacOSX10.6.sdk }}} then run b2 as usual, and finally revert the renaming of the SDK {{{ sudo mv /Developer/SDKs/bak.MacOSX10.6.sdk /Developer/SDKs/MacOSX10.6.sdk }}} " mikko.vainio@… Boost 1.50.0 7147 Pool in more depth documentation page has broken image links pool Boost 1.50.0 To Be Determined Bugs Chris Newbold new 2012-07-18T16:05:47Z 2012-07-18T16:05:47Z "If you navigate via browser to http://www.boost.org/doc/libs/1_50_0/libs/pool/doc/html/boost_pool/pool/pooling.html You will see several broken links to images, such as http://www.boost.org/doc/libs/1_50_0/libs/pool/doc/images/pc1.png The directory http://www.boost.org/doc/libs/1_50_0/libs/pool/doc/images/ is readable, and appears to contain the right files, but with differently-cased names (e.g. pc1.PNG). I tried this with both Internet Explorer on Windows, and Chrome on Mac and Windows." scott@… Boost 1.50.0 7235 mapped_region not accepting size = 0 interprocess Boost 1.50.0 To Be Determined Bugs Ion Gaztañaga new 2012-08-15T19:34:47Z 2012-08-15T21:18:01Z "Since Linux 2.6.12, and on other platforms, mmap is supposed to fail if the specified ""size"" parameter is 0. This causes some problems in all the Boost.Interprocess library since pretty much all the high-level structures (managed_shared_memory, for instance) use mapped_region (thus mmap) with size = 0, usually when the object is created with the ""open_only"" flag. I have observed this bug on BlueGene/P's CNK environment, with gcc 4.1.2. It seems logical to me that, when opening an existing shared structure, the size doesn't have to be known. I don't have any solution yet..." matthieu.dorier@… Boost 1.50.0 7275 SIGSEGV in boost::asio::connect when compiled with g++ -std=c++0x asio Boost 1.50.0 To Be Determined Bugs chris_kohlhoff new 2012-08-24T15:48:51Z 2012-08-24T16:12:31Z "Works fine when not compiled with -std=c++0x. GCC v. 4.6.3 on ubuntu 12.04 Linking to static libboost_thread, libboost_system (1.50.0 release config) Does not matter if server code is listening or not. Minimal reproducible code below: int main(int argc, char *argv[]) { boost::asio::io_service service; using namespace boost::asio::ip; tcp::resolver resolver(service); tcp::resolver::query query(tcp::v4(), ""127.0.0.1"", ""50001""); tcp::resolver::iterator itr = resolver.resolve(query); if (itr != tcp::resolver::iterator()) { tcp::socket s(service); boost::asio::connect(s, itr); // Segmentation Fault Here } } Callstack: #0 0x8054d6e boost::asio::detail::reactive_socket_service_base::close(this=0x16, impl=..., ec=...) (reactive_socket_service_base.ipp:103) #1 0x8058f1a boost::asio::stream_socket_service::close(this=0x2, impl=..., ec=...) (stream_socket_service.hpp:151) #2 0x80589d5 boost::asio::basic_socket >::close(this=0xbffff318, ec=...) (basic_socket.hpp:339) #3 0x8058186 boost::asio::connect, boost::asio::ip::basic_resolver_iterator, boost::asio::detail::default_connect_condition>(s=..., begin=..., end=..., connect_condition=..., ec=...) (connect.hpp:120) #4 0x80578a5 boost::asio::connect, boost::asio::ip::basic_resolver_iterator >(s=..., begin=..., ec=...) (connect.hpp:56) #5 0x8056dd2 boost::asio::connect, boost::asio::ip::basic_resolver_iterator >(s=..., begin=...) (connect.hpp:47) #6 0x8052f41 main(argc=1, argv=0xbffff874) (main.cpp:27) Thank you." Alan Yuelkenbeck Boost 1.50.0 7310 filesystem::path::iterator::operator+ is unusable due to compile error filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes new 2012-08-31T15:14:08Z 2012-08-31T15:14:08Z "Boost 1.50, MS Visual Studio 2010. I find that if I attempt to use the + operator on a path::iterator, I get a compiler error saying that the method ""advance"" is not part of path::iterator. If I comment out my use of this operator, and instead use only ++, then everything compiles. Here are the details from the compiler: {{{ boost/iterator/iterator_facade.hpp(544): error C2039: 'advance' : is not a member of 'boost::filesystem::path::iterator' boost/filesystem/path.hpp(570) : see declaration of 'boost::filesystem::path::iterator' boost/iterator/iterator_facade.hpp(690) : see reference to function template instantiation 'void boost::iterator_core_access::advance(Facade &,__w64 int)' being compiled with [ Derived=boost::filesystem::path::iterator, Facade=boost::filesystem::path::iterator ] boost/iterator/iterator_facade.hpp(689) : while compiling class template member function 'boost::filesystem::path::iterator &boost::iterator_facade::operator +=(__w64 int)' with [ Derived=boost::filesystem::path::iterator, Value=const boost::filesystem::path, CategoryOrTraversal=boost::bidirectional_traversal_tag ] boost/filesystem/path.hpp(574) : see reference to class template instantiation 'boost::iterator_facade' being compiled with [ Derived=boost::filesystem::path::iterator, Value=const boost::filesystem::path, CategoryOrTraversal=boost::bidirectional_traversal_tag ] }}}" Craig Dickson Boost 1.50.0 7313 filesystem reference doc shows path::u16string(), but it doesn't exist filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes new 2012-08-31T15:53:56Z 2016-02-18T19:22:59Z "The Boost 1.50 filesystem reference says that filesystem::path has methods u16string(), generic_u16string(), u32string() and generic_u32string(), but they don't exist in the code. MS Visual Studio 2010's C++ compiler can't find them, and a grep of the boost::filesystem source doesn't find them either. Please either implement these methods or remove them from the docs. (My preference would be that you implement these methods, and also, for completeness, add u8string() and generic_u8string(), which would return UTF-8 instead of using the current locale.)" Craig Dickson Boost 1.50.0 7396 filesystem::path::remove_all(path, error_code) throws filesystem_error exception filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes new 2012-09-19T22:55:50Z 2012-09-19T22:55:50Z "Several methods in filesystem::path, including remove_all, have an overload in which an extra error_code& argument is taken. According to the docs, this is supposed to cause failure (other than failure to allocate storage) to be reported in the error_code rather than as a thrown filesystem_error exception. However, remove_all can still throw filesystem_error exceptions because it uses a directory_iterator internally but makes no attempt to catch exceptions thrown by it. For example, if a subdirectory is deleted by another thread or process just before remove_all tries to list its contents, directory_iterator_construct will throw a filesystem_error that propagates up to remove_all's caller. As a side note, I think path and directory_iterator are both excessively exception-happy. It makes them painful to use." Craig Dickson Boost 1.50.0 7404 filesystem::canonical fails on UNC paths on Windows filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes new 2012-09-21T20:12:58Z 2012-09-21T22:23:23Z "The filesystem library function canonical(p, base) fails for all UNC paths on Windows because it gets an ""invalid path"" error when it calls symlink_status at line 816 of operations.cpp. Example: For the path ""//server/share/file"", the first time execution reaches line 816 of operations.cpp, it calls is_symlink(detail::symlink_status(""//server"", ec)) and ec is set to the Windows ""invalid path"" system error code." Craig Dickson Boost 1.50.0 7436 Missing python dlls python USE GITHUB Boost 1.50.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-09-27T10:00:38Z 2012-09-27T10:00:38Z "Dears, When I am building boost 1.50 using: b2 --toolset=msvc-9.0 --build-type=complete --without-mpi --build-dir=..\lib_msvc9_x86_p26 --stagedir=..\lib_msvc9_x86_p26 install boost-python dlls are not created. in version 1.45 they had been created. How can I build boost-python dlls? There are boost python static libs. There are other dlls present (e.g. boost-system), so it is rather boost-python package problem or special case of boost build tool chain. Also there is general problem that mentioned commanline options are not creating delivery folder with all important binaries as it was in the past. Regards, Seweryn Habdank-Wojewodzki. " habdank@… Boost 1.50.0 7451 clang-linux.jam : cflags/cxxflags feature is added twice to compiler's command line (other features possibly as well) build Boost 1.50.0 To Be Determined Bugs Vladimir Prus new 2012-10-01T10:34:53Z 2012-10-01T10:34:53Z "The crux of the issue appears to be here: --- clang-linux.jam.orig 2012-10-01 20:31:55.253818173 +1000 +++ clang-linux.jam 2012-10-01 20:29:05.048627617 +1000 @@ -66,8 +66,8 @@ ############################################################################### # Flags -toolset.flags clang-linux.compile OPTIONS ; -toolset.flags clang-linux.compile OPTIONS ; +#toolset.flags clang-linux.compile OPTIONS ; +#toolset.flags clang-linux.compile OPTIONS ; toolset.flags clang-linux.compile OPTIONS off : ; toolset.flags clang-linux.compile OPTIONS speed : -O3 ; Flags are apparently already added by the ""base"" module and then again by the inherited one (does it make sense?). " oakad@… Boost 1.50.0 7840 Failure in posix_time_zone when specifying start date as Jn date_time Boost 1.50.0 To Be Determined Bugs az_sw_dude new 2013-01-02T02:10:13Z 2013-01-02T02:10:13Z "If you use the time zone specification ""CST-2CDT,J365/00,J1/00"" to create a boost::local_time::posix_time_zone, it fails with an exception. The problem appears to be in boost\date_time\local_time\posix_time_zone.hpp, julian_no_leap(...). The conversion of the start date uses this loop which has a ""less than or equal"" clause: while(sd >= calendar::end_of_month_day(year,sm)){ sd -= calendar::end_of_month_day(year,sm++); } sd is the converted start specifier (365 in this case); sm is the current month (initialized to 1). The loop continues until sd=0 and sm=13, at which point end_of_month_day() throws an exception. Conversion of the end date uses an almost identical loop except that its while clause is ""strictly less than"": while(ed > calendar::end_of_month_day(year,em)){ ed -= calendar::end_of_month_day(year,em++); } So the specifier ""CST-2CDT,J1/00,J365/00"" leaves ed=31 and em=12 as you would hope. In fact any start specifier at the end of a month (J31, J59,...J334) will fail later because it will result in sd=0 which is outside the range of 1..31. This code is identical in boost 1.52.0. The fix appears to be just to use ""strictly less than"" in both loops. " andrew.lang@… Boost 1.50.0 7912 boost:thread documentation for 1.50 does not mention BOOST_THREAD_WAIT_BUG thread Boost 1.50.0 To Be Determined Bugs viboes assigned 2013-01-21T11:25:12Z 2013-06-09T20:12:37Z "As I understood from the trac ticket [https://svn.boost.org/trac/boost/ticket/7089] and sources for boost 1.50, boost::thread 1.50 implicitly adds 100 ms to the sleep time of boost::this_thread::sleep and boost::thread_sleep on linux. If the fix for 7089 cannot be backported into 1.50, the warning about broken functionality must be present in the documentation for 1.50." Viatcheslav.Sysoltsev@… Boost 1.50.0 8581 Files in C:\ProgramData\boost_interprocess are not accessible. interprocess Boost 1.50.0 To Be Determined Bugs Ion Gaztañaga new 2013-05-17T14:43:18Z 2016-09-07T20:11:16Z "When a service running as ""Local System"" user is using managed_shared_memory the file used for that shared memory is created in C:\ProgramData\boost_interprocess\*\*. The permissions for this file are such that a regular user starting a process that wants to access that shared memory is not able to access the file and thus access the shared memory." Andreas Neustifter Boost 1.50.0 9099 boost::filesystem::stem() reporting wrong value on some entries (seen on Linux) filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes new 2013-09-10T12:52:20Z 2013-09-10T12:52:20Z "Compiled with gcc on Linux. Consider the following example with an empty string as path: {{{ boost::filesystem::path mypath(""""); cout << mypath.parent_path().native() << endl; cout << mypath.stem().native() << endl; }}} This will print out, as expected, two empty strings. If one now changes the path to be analysed into ""tmp/"", like this: {{{ boost::filesystem::path mypath(""tmp/""); cout << mypath.parent_path().native() << endl; cout << mypath.stem().native() << endl; }}} then the output will be ""tmp"" on one line (totally expected and correct) and ""."" on the next line (totally unexpected and wrong, it should be an empty string). " bach@… Boost 1.50.0 9321 named mutex permissions are not reset after application crash interprocess Boost 1.50.0 To Be Determined Bugs Ion Gaztañaga new 2013-10-30T12:08:25Z 2013-10-30T20:50:12Z "'''Using boost named_mutex on Windows with the standard permissions object.''' An application creates a named mutex and removes it on exit. This works fine even if the application is started by different users one after the other. Now assume the application crashes and does not call remove, anymore. When a different user starts the same application later on, the named mutex cannot be created and throws an interprocess exception ""access denied"". This is due to the fact that the mutex file in the folder {{{c:\ProgramData\boost_interprocess}}} still exists, and it has the permissions of the user that started the application first. '''How to reproduce''' The following simple application simulates a crash by exiting before removing the mutex. Run the application as user x. The mutex is successfully constructed, the application crashes unexpectedly. Then run the application as user y. The mutex cannot be constructed as file {{{c:\ProgramData\boost_interprocess\my_mutex_name}}} is still present and cannot be opened by user y although user x who owns the file does not use it by any process. {{{ #include ""boost/interprocess/sync/named_mutex.hpp"" int main(const int argc, const char* const * const argv) { try { boost::interprocess::named_mutex mutex(boost::interprocess::open_or_create, ""my_mutex_name""); printf(""mutex construction successful\n""); } catch (const boost::interprocess::interprocess_exception& ex) { printf(""mutex construction failed: %s\n"", ex.what()); } exit(0); boost::interprocess::named_mutex::remove(""my_mutex_name""); return 0; } }}} " Marcus Ackermann Boost 1.50.0 10233 create_directories causes invalid read filesystem Boost 1.50.0 To Be Determined Bugs Beman Dawes assigned 2014-07-23T13:48:27Z 2017-12-01T07:07:32Z "The following code, when run under Valgrind, will report two instances of invalid reads during program close (after main). Tested on Ubuntu Linux x64 12.04 (kernel 3.8.0) with gcc 4.6.3. {{{ #include #include int main() { system(""rm -rf /tmp/test""); // make sure directory doesn't already exist boost::filesystem::create_directories(""/tmp/test""); return 0; } }}} " Itay C Boost 1.50.0 7006 Restricted pointers support. range Boost 1.50.0 To Be Determined Feature Requests Neil Groves assigned 2012-06-21T10:11:48Z 2014-03-09T18:11:10Z Trying to form iterator_ranges with restricted pointers causes compiler errors. Domagoj Šarić Boost 1.50.0 7125 weak_ptr::lock() thread safety smart_ptr Boost 1.50.0 To Be Determined Feature Requests Peter Dimov new 2012-07-12T11:13:40Z 2012-07-12T11:13:40Z "Imagine the following code: {{{ shared_ptr sp(new ...); weak_ptr wp(sp); sp.reset(); // thread A shared_ptr sp1 = wp.lock(); // thread B }}} It is not clear from documentation, whether it is safe to call shared_ptr::reset() and weak_ptr::lock() concurrently in different threads. It is very frequently asked question and should be documented explicitly. " Gennady Proskurin Boost 1.50.0 7190 Allow multiple long synonyms for same option program_options Boost 1.50.0 To Be Determined Feature Requests Vladimir Prus new 2012-08-01T20:37:02Z 2012-08-01T20:37:02Z "The comma syntax ""blargh,b"" works for a single-character option synonym, but if I want multiple long names for the same option (e.g. for backwards compatibility) I see no way to do that, especially when defaults come into play." chip@… Boost 1.50.0 7526 zip_iterator does not support std::tuple and std::pair iterator Boost 1.50.0 To Be Determined Feature Requests jeffrey.hellrung new 2012-10-18T10:05:27Z 2018-03-16T18:40:55Z "The boost zip_iterator is not compatible with std::tuple and std::pair The proposed patch solves this problem. Note that I copied some more general tuple algorithms I created for another project. These are all included in the newly introduced namespace helper. Maybe they can be rewritten using boost::mpl, but since I am not familiar with it I used the existing code. Furthermore I encountered the problem, that a specialisation of the template functions in namespace tuple_impl_specific does not work, if this is done outside zip_iterator.hpp. The reason appears to be, that the user overloads are not known to the compiler, when the functions are called. This may be a problem, if users want to specialise for their own tuple class. To overcome this difficulty, I replaced the template functions by template classes, which seem to work even if specialisations are made outside zip_iterator.hpp" claas.koehler@… Boost 1.50.0 6807 interval rounded_arith.hpp compilation issues (clang) interval Boost 1.50.0 Boost 1.52.0 Patches Boris Gubenko new 2012-04-18T15:51:09Z 2013-03-11T08:30:30Z "It appears that the rounded _artith_* classes fail to compile (at least with my version of clang : Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)) The issue appears for both rounded_arith_std and rounded_arith_opp when they try to call the ""to_int"" static method of the Rounding mother class (which is a template parameter). Replacing the call of to_int(...) by Rounding::to_int appears to solve the issue. But I did not check if such issue was present at other places. I have attached a patch file for this header that appears to compile properly. " Frederic Py Boost 1.50.0 6839 distributed::adjacency_list fails to propagate mpi_process_group correctly graph Boost 1.50.0 To Be Determined Patches Jeremiah Willcock new 2012-04-27T13:59:36Z 2012-07-24T14:00:19Z In the distributed `adjacency_list` the `named_graph_mixin` of kind maybe_named_graph holds and `mpi_process_group` member which is default constructed rather than appropriately initialized. See patch Sebastian Jeltsch Boost 1.50.0 7026 bjam: Use 64-bit MSVC tools on Win64, even in a 32-bit shell build Boost 1.50.0 To Be Determined Patches Vladimir Prus new 2012-06-26T09:43:54Z 2012-06-26T11:15:16Z "When building with `toolset=msvc address-model=64` in a 32-bit shell on Win64, the cross tools (32-bit targeting 64-bit) instead of the native 64-bit tools are used. The reason is the `PROCESSOR_ARCHITECTURE` env var pretending to be a 32-bit environment. However, on 64-bit Windows, the correct native value can be found in `PROCESSOR_ARCHITEW6432`. The attached patch makes the logic to determine the tools to use respect that alternative variable." frank.richter@… Boost 1.50.0 7027 interprocess: Message queue using Windows shared memory interprocess Boost 1.50.0 To Be Determined Patches Ion Gaztañaga new 2012-06-26T11:01:58Z 2012-08-01T16:41:37Z "`interprocess::message_queue` currently always uses the `shared_memory_object` implementation. However, on Windows it can be desireable to have a message queue backed by `windows_shared_memory` instead. These patches add support for this. * The first patch generalizes `message_queue_t<>`; the message queue logic is moved into `message_queue_base_t<>`, and the actual storage backend handling is delegated to a derived class. `message_queue_t<>` is changed to be based on `message_queue_base_t<>` and to provide storage in a `shared_memory_object`. * The second patch adds the `windows_message_queue<>` class which backs the storage with a `windows_shared_memory`. A variant of the message queue test is also added." frank.richter@… Boost 1.50.0 7076 A few trivial 64-bit warning fixes on Windows filesystem Boost 1.50.0 To Be Determined Patches Beman Dawes new 2012-07-04T11:15:27Z 2012-07-04T11:15:27Z "In case they are of any interest... Regards Luke Elliott. " Luke Elliott Boost 1.50.0 7240 serialization backward compatibility issue with class_id_type attribute serialization Boost 1.50.0 To Be Determined Patches Robert Ramey new 2012-08-16T10:42:29Z 2013-11-20T16:50:17Z "There is a backward compatibility issue in current boost::serialization around the class_id_type attribute. It is actually impossible to read binary archives written with boost 1.39 (format 5) with a boost release > 1.43. For instance, with boost 1.47.0 : test_serialization: /home/ggagniard/dev/boost-1.47.0.bug/include/boost/archive/basic_archive.hpp:116: boost::archive::class_id_type::class_id_type(int): Assertion `t_ <= boost::integer_traits::const_max' failed. Please note that the same error still occurs with boost 1.50.0, the current stable release. After having a look at the class_id_type serialization in binary archives, I think I found the culprit : In boost/archive/basic_binary_iarchive.hpp : {{{ void load_override(class_id_type & t, int version){ library_version_type lvt = this->get_library_version(); if(boost::archive::library_version_type(7) < lvt){ this->detail_common_iarchive::load_override(t, version); } else if(boost::archive::library_version_type(6) < lvt){ int_least16_t x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } else{ int x=0; * this->This() >> x; t = boost::archive::class_id_type(x); } } }}} Here, archives whose version <= 6 get their class_id_type read as an int ... However, in boost 1.43 (format 7) : {{{ void load_override(class_id_type & t, int){ // upto 32K classes int_least16_t x=0; * this->This() >> x; t = class_id_type(x); } }}} It is clear than any library version <= 7 have their class_id_type serialized as a int_least16_t, so the current load_override method is incorrect for versions <= 6 ..." ggagniard@… Boost 1.50.0 10704 [property_tree] Readablilty improvement ini_parser::write_ini result. property_tree Boost 1.50.0 To Be Determined Patches Sebastian Redl new 2014-10-28T12:20:50Z 2018-05-20T14:39:15Z Output file of write_ini lacks readability. Attached patch adds spaces between keys and values and separates sections by newlines. Eduard Eduardov Boost 1.51.0 2289 Problem with BOOST_AUTO and this keyword on VC8/9 typeof Boost 1.51.0 Boost 1.37.0 Bugs Peder Holt new 2008-09-05T10:57:15Z 2012-09-10T14:52:19Z "On both VC8SP1 and VC9SP1, the code {{{ struct foo { int i; foo::foo() { BOOST_AUTO(j, this->i); } }; }}} results in the compiler error {{{ error C2355: 'this' : can only be referenced inside non-static member functions error C2227: left of '->i' must point to class/struct/union/generic type error C2955: 'boost::type_of::msvc_typeid_wrapper' : use of class template requires template argument list e:\boostsvn\boost\typeof\msvc\typeof_impl.hpp(209) : see declaration of 'boost::type_of::msvc_typeid_wrapper' }}} In both cases, changing it to simply BOOST_AUTO(j, i); allows it to compile. The foreach lib used to have a similar problem (Ticket #1652), possibly down to the same compiler bug?" Richard Webb Boost 1.51.0 6611 boost::pool_allocator construct() with single argument required by GCC 4.6 stl pool Boost 1.51.0 To Be Determined Bugs Chris Newbold new 2012-02-24T19:14:41Z 2013-11-06T15:57:50Z "I tried to compile a MSVC code using custom std::vector/pool_allocator under win32/codeblocks (which uses GCC 4.6.0), and I get an error because on vector::resize() and underlying call _ _ uninitialized_default_a(), the stl implemented try to call _ _ alloc.construct() with a single placement address as argument. The thing is that boost:pool_allocator provides only one version of construct() which takes 2 arguments. Why isn't a ""default"" construct( const pointer& ) implemented in pool_allocator ? Or why this version of the stl implements that ? Or what am I doing wrong ? Thanks" vivien.millet@… Boost 1.51.0 7080 make_constructor Does Not Initialize base_wrapper python USE GITHUB Boost 1.51.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-07-04T21:00:54Z 2013-03-01T15:41:34Z "When binding a shared_ptr to Python, we're using a custom allocator defined using make_constructor: {{{ class_< Controller, shared_ptr, boost::noncopyable >(""Controller"", no_init) .def(""__init__"", boost::python::make_constructor(&Controller::make)); }}} This works as expected except when classes are derived in Python. In those cases, get_override does not work, since m_self is NULL. If you use init<>() in the class_ constructor, instead of the make_constructor line, it works as expected. The bug is that make_constructor does not initialize the base_wrapper. I've tried a fix as follows, and it's now functional -- though I can't say if this is a good way to solve it. {{{ +++ make_constructor.hpp @@ -59,6 +59,7 @@ void* memory = holder::allocate(this->m_self, offsetof(instance_t, storage), sizeof(holder)); try { (new (memory) holder(x))->install(this->m_self); + python::detail::initialize_wrapper(this->m_self, get_pointer(x)); } catch(...) { holder::deallocate(this->m_self, memory); }}} It's also possible to fix this by partially specializing ""template struct install_holder;"" before boost::python is included." team@… Boost 1.51.0 7102 typo in documantation of boost::program_options::basic_command_line_parser program_options Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-07-08T12:03:09Z 2012-08-15T20:09:27Z "Typo in ""creating overloads with a smaller '''nuber''' of parameters"". http://www.boost.org/doc/libs/1_50_0/doc/html/boost/program_options/basic_command_line_parser.html" bnagaev@… Boost 1.51.0 7118 Condition.Wait with a mutex instead of lock can be mysterious interprocess Boost 1.51.0 To Be Determined Bugs Ion Gaztañaga new 2012-07-11T16:39:54Z 2012-07-11T16:39:54Z "This code correctly fails to compile: #include #include int _tmain(int argc, _TCHAR* argv[]) { boost::interprocess::named_mutex mutex( boost::interprocess::open_or_create, ""test"" ); boost::interprocess::named_condition condition( boost::interprocess::open_or_create, ""test"" ); condition.wait( mutex ); return 0; } The resulting compile error (at least on VC++ 2010) is a tad mysterious: 1>c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\shm\named_condition.hpp(204): error C2248: 'boost::interprocess::interprocess_mutex::mutex' : cannot access private member declared in class 'boost::interprocess::interprocess_mutex' 1> c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\interprocess_mutex.hpp(117) : see declaration of 'boost::interprocess::interprocess_mutex::mutex' 1> c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\interprocess_mutex.hpp(67) : see declaration of 'boost::interprocess::interprocess_mutex' 1> c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\shm\named_condition.hpp(204) : while compiling class template member function 'boost::interprocess::ipcdetail::shm_named_condition::lock_wrapper::mutex_type *boost::interprocess::ipcdetail::shm_named_condition::lock_wrapper::mutex(void) const' 1> with 1> [ 1> Lock=boost::interprocess::named_mutex 1> ] 1> c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\shm\named_condition.hpp(342) : see reference to class template instantiation 'boost::interprocess::ipcdetail::shm_named_condition::lock_wrapper' being compiled 1> with 1> [ 1> Lock=boost::interprocess::named_mutex 1> ] 1> c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\named_condition.hpp(156) : see reference to function template instantiation 'void boost::interprocess::ipcdetail::shm_named_condition::wait(L &)' being compiled 1> with 1> [ 1> L=boost::interprocess::named_mutex 1> ] 1> c:\code\projects\testinterprocess\testinterprocess\testinterprocess.cpp(10) : see reference to function template instantiation 'void boost::interprocess::named_condition::wait(L &)' being compiled 1> with 1> [ 1> L=boost::interprocess::named_mutex 1> ] 1>c:\code\sdks\boost\include\boost-1_50\boost\interprocess\sync\shm\named_condition.hpp(204): error C2064: term does not evaluate to a function taking 0 arguments It is not obvious that the problem involves the use of a Mutex instead of a ScopedLock or the like. While the example code makes this clear, if you examine only the documentation, this detail might be confusing. Recommend adding a concept check to help guide someone towards using a lock instead of a mutex." Trey Van Riper Boost 1.51.0 7126 function is_separator and boost::filesystem::slash::value move to main hpp file filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-07-13T07:05:37Z 2012-08-15T19:43:34Z Please add support get native path separator in main path.hpp header file, because this function now is inaccesible, and error appears (# error Compiling Filesystem version 2 file with BOOST_FILESYSTEM_VERSION defined != 2), this reprodused on boost 1.47 version topilski@… Boost 1.51.0 7138 Output of a UDT with autoprefix requires specialization of auto_prefix_norm units Boost 1.51.0 Boost 1.51.0 Bugs Steven Watanabe new 2012-07-16T08:42:29Z 2012-07-16T08:42:29Z "Output of a UDT with autoprefix requires specialization of auto_prefix_norm for the scaling to take place. For example, to get expected scaling to kilometers from quantity > biglen(measurement(12345.0,123.0)*meters); autoscaled = 12.345(+/-0.123) km This can be achieved by adding this to measurement.hpp (where Y is the type of UDT) {{{ // Specialization of autoprefix_norm for UDTboost::units::measurement // See io.hpp. // This specialization is required to get autoprefix to work with this class. template typename autoprefix_norm_impl, true>::type autoprefix_norm(const boost::units::measurement & arg) { return autoprefix_norm_impl::call(arg); } }}} However this assumes that the class Y is convertible to double. autoprefix_norm_impl::type appears to be always double. I am unclear if this is checked or is the responsibility or the user? " Paul A. Bristow Boost 1.51.0 7145 rational.hpp - Avoid repeated construction rational Boost 1.51.0 To Be Determined Bugs Jonathan Turkanis new 2012-07-18T13:38:52Z 2013-08-20T11:30:43Z "In rational.hpp, two times 'IntType zero(0);' is used to ""Avoid repeated construction"" and two times 'int_type const zero( 0 );' is used. The two without the const may not be avoiding repeated construction. Since int_type is just a typedef from IntType, it might be clearer if all int_type were replaced with IntType and the typedef for int_type removed." Dan Searles Boost 1.51.0 7149 system failed to compile with BOOST_NO_EXCEPTIONS defined when -fno-exceptions is NOT used system Boost 1.51.0 To Be Determined Bugs Beman Dawes reopened 2012-07-18T20:51:04Z 2012-10-29T02:12:51Z "This no longer compiles on mac osx GCC 4 with BOOST_NO_EXCEPTIONS defined but without -fno-exceptions. BOOST_NO_EXCEPTIONS can be used to simply disable exception handling in boost not necessarily to flag that exception handling is disabled at the compiler level: http://www.boost.org/doc/libs/1_36_0/libs/utility/throw_exception.html BOOST_NO_EXCEPTION can be used to supply a custom exception handler. Wrapping the try block on line 136 on system/error_code.cpp with #ifndef BOOST_NO_EXCEPTIONS fixes this. See ticket #2098" joeriedel@… Boost 1.51.0 7184 atomic_cas32() uses Linux-only compiler intrinsic interprocess Boost 1.51.0 To Be Determined Bugs Ion Gaztañaga new 2012-07-30T15:36:39Z 2012-07-30T15:36:39Z "atomic_cas32() incorrectly assumes _sync_val_compare_and_swap() intrinsic is available on any host OS using GCC4.1+ when, as of GCC4.4, it is only available on Linux. This renders it unportable. Problem was observed on QNX Neutrino 6.5.0." jbaker@… Boost 1.51.0 7211 path_locale destructor crashes when overloaded operator new and delete are present filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-08-08T20:27:50Z 2012-08-09T15:02:57Z "path_locale is defined using this construct in path.cpp: std::locale path_locale(std::locale(), new windows_file_codecvt); Under the debugger of VC10/11, the destructor of std::locale calls free() for this facet pointer when refcount reaches 0. I ackknowledge this is a bug in dinkumware implementation of the microsoft STL. See for mor information: http://connect.microsoft.com/VisualStudio/feedback/details/750951/std-locale-implementation-in-crt-assumes-all-facets-to-be-allocated-on-crt-heap-and-crashes-in-destructor-in-debug-mode-if-a-facet-was-allocated-by-a-custom-allocator That said, I suggest a workaround made using only standard calls. in v3/src/windows_file_codecvt.hpp, change the constructor to pass along default refcount: explicit windows_file_codecvt(size_t refs = 0) : std::codecvt(refs) {} and in v3/src/path.cpp, define path_locale like this: windows_file_codecvt windows_cvt_path_locale(1); std::locale path_locale(std::locale(), &windows_cvt_path_locale); " Michel Lemay Boost 1.51.0 7216 qcc.jam file could use a minor update for ar build Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-08-09T15:53:03Z 2013-01-03T16:58:14Z "The qcc.jam file is apparently intended for building on a QNX OS hosted target. It is common for the QNX source to be cross compiled on MS Windows and the default archive utility is not available. Would you please add a comment and alternate solution around line 220 like the following. This would probably save new Boost users from having to track down a solution to this in the future. # Modify archive command for cross-compiling for QNX NTO using a MS Windows hosted environment (x86 target used as example). # ntox86-ar rc ""$(<)"" ""$(>)""" steve.lemay@… Boost 1.51.0 7219 boost::optional gives strict alias warning on GCC 4.4.6, breaks at runtime optional Boost 1.51.0 To Be Determined Bugs Fernando Cacciola new 2012-08-09T19:26:20Z 2013-06-09T19:42:53Z "Here is my test code: {{{ #include struct my_type { #if 1 // change to 0 to see the problem disappear typedef boost::optional value_type; #else typedef boost::optional value_type; #endif value_type value_; void set (int value) { value_ = value; } value_type get () { return value_; } }; // class event void testCase () { my_type a; a.set(4); bool const b = 4 == ( *a.get() ); if( !b ) abort(); // will abort unless 'may_alias' attribute is added to 'int' } }}} Here is my compile line: {{{ g++ -c src/thread/unittest/test_gcc_bug.cpp -o ../../../derived/glnxa64/obj/deployment_server/foundation/util/src/thread/unittest/test_gcc_bug.o -MD -MF ../../../derived/glnxa64/obj/deployment_server/foundation/util/src/thread/unittest/test_gcc_bug.d -MP -MT ../../../derived/glnxa64/obj/deployment_server/foundation/util/src/thread/unittest/test_gcc_bug.o -I../../../src/include -I../../../derived/glnxa64/src/include -I../include -I../../include -I//mathworks/hub/3rdparty/R2013a/356881/glnxa64/boost/include -I//mathworks/hub/3rdparty/R2013a/356141/glnxa64/cpp11compat/include -I//mathworks/hub/3rdparty/R2013a/356141/glnxa64/cpp11compat/include -I//mathworks/hub/3rdparty/R2013a/350182/glnxa64/protobuf/include -I//mathworks/hub/3rdparty/R2013a/350182/glnxa64/tbb/include -DBOOST_FILESYSTEM_VERSION=2 -DBOOST_ASIO_DISABLE_EVENTFD -DBOOST_ASIO_DISABLE_EPOLL -DTBB_AVAILABLE -O2 -pipe -pthread -fPIC -std=c++98 -fvisibility=hidden -g -D_POSIX_C_SOURCE=199506L -fno-omit-frame-pointer -DNDEBUG -W -Wcast-align -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wno-unused -Woverloaded-virtual -Wnon-virtual-dtor -Wno-ignored-qualifiers }}} I was also able to work around it by changing the return type of certain optional_base methods (i.e. get_impl()) to 'T __attribute__((__may_alias__))&' (or whatever the analogous pointer or reference type is). " Tony.Astolfi@… Boost 1.51.0 7249 tools/build/v2/test/startup_v2.py fails if boost-build is already installed build Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-08-19T09:56:23Z 2012-08-19T09:56:23Z "I got the following error after I installed boost-build and tried to rerun the tests in temporary build directory: startup_v2 : DIFFERENCE --- /var/tmp/paludis/dev-util-boost-build-1.50.0/temp/tmp7UjRdwexpected 2012-08-19 11:44:11.236819301 +0200 +++ /var/tmp/paludis/dev-util-boost-build-1.50.0/temp/tmpA2P_sAactual 2012-08-19 11:44:11.236819301 +0200 @@ -1,2 +1,3 @@ -Unable to load Boost\.Build: could not find ""boost-build.jam"" -.*Attempted search from .* up to the root \ No newline at end of file + +error: error: no Jamfile in current directory found, and no target references specified. + Unable to compute difference: diff -u /var/tmp/paludis/dev-util-boost-build-1.50.0/temp/tmp7UjRdwexpected /var/tmp/paludis/dev-util-boost-build-1.50.0/temp/tmpA2P_sAactual FAILED Reason is: passing the empty string to bjam lets it fallback to the default which is not what is wanted in that test. Attached patch changes the path to something invalid." dev-zero@… Boost 1.51.0 7252 bootstrap.sh only works if called as ./bootstrap.sh Building Boost Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-08-21T00:23:56Z 2013-10-24T22:19:08Z "Sometimes we need to be able to call bootstrap.sh from outside the Boost root directory. The following tiny patch allows the bootstrap.sh script to be called from anywhere: Replace the line 184: my_dir=""."" by my_dir=""${0%/bootstrap.sh}""" Júlio Hoffimann Boost 1.51.0 7260 Header order conflicts between Thread and ASIO asio Boost 1.51.0 To Be Determined Bugs chris_kohlhoff new 2012-08-22T04:49:48Z 2012-09-18T17:20:52Z "This problem is still present as of 1.50. Link to discussion: http://lists.boost.org/boost-users/2012/06/74823.php Consider this following simple app: {{{ #include #include #include int main() { return 0; } }}} If you try to build that on Windows, you receive the following error: {{{ In file included from c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/recursive_mutex.hpp:14:0, from c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/recursive_mutex.hpp:14, from build.cpp:3: c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp: In member function 'void boost::detail::basic_recursive_mutex_impl::lock()': c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp:52:21: error: '_InterlockedExchange' is not a member of 'boost::detail' c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp: In member function 'void boost::detail::basic_recursive_mutex_impl::unlock()': c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp:71:21: error: '_InterlockedExchange' is not a member of 'boost::detail' c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp: In member function 'bool boost::detail::basic_recursive_mutex_impl::try_basic_lock(long int)': c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp:91:21: error: '_InterlockedExchange' is not a member of 'boost::detail' c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp: In member function 'bool boost::detail::basic_recursive_mutex_impl::try_timed_lock(long int, const boost::system_time&)': c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/basic_recursive_mutex.hpp:102:21: error: '_InterlockedExchange' is not a member of 'boost::detail' }}} If asio.hpp is moved ahead of the thread headers, the error goes away. We’ve been trying to dictate #include order to work around this problem, but it keeps cropping up." joshuadavidson@… Boost 1.51.0 7273 Files created by boost::iostreams::mapped_file have unexpected permissions on Linux iostreams Boost 1.51.0 To Be Determined Bugs Jonathan Turkanis new 2012-08-24T11:35:40Z 2017-08-23T05:12:35Z "The mapped_file class opens the file unconditionally via: {{{ #!c++ ::open(p.path.c_str(), flags, S_IRWXU); }}} Which sets the permissions to read, write, execute for the owner and no permissions for group or others. This is quite unexpected, and since it cannot be changed by the caller, I think a more sane default behavior would be to just use the default of open and let the user's umask decide the permission of newly created files. I.e. just remove the last parameter: {{{ #!c++ ::open(p.path.c_str(), flags); }}}" Mika Fischer Boost 1.51.0 7316 Build boost.python fails with python 3.2.3 python USE GITHUB Boost 1.51.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2012-09-01T17:08:04Z 2013-03-12T00:57:20Z "{{{ $ ./b2 -q -d+2 variant=release link=shared threading=multi runtime-link=shared | grep err libs/mpi/src/python/datatypes.cpp:20:33: error: ‘PyInt_Type’ was not declared in this scope libs/mpi/src/python/py_environment.cpp:53:37: error: cannot convert ‘char**’ to ‘wchar_t**’ for argument ‘2’ to ‘void PySys_SetArgv(int, wchar_t**)’ $ uname -a Linux asus 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux $ python3 --version Python 3.2.3 $ echo ""import sys; print( sys.prefix )"" | python3 /usr $ cat project-config.jam | grep python using python : 3.2 : /usr ; }}} " Sergey Dmitriev Boost 1.51.0 7319 Take care of c++std-lib-32966 issue thread Boost 1.51.0 To Be Determined Bugs viboes assigned 2012-09-02T08:32:23Z 2012-09-02T08:41:34Z "Take care of the issue raised by Howard Hinnant in [c++std-lib-32966] Public service announcement concerning ~condition_variable_any() ""Both condition_variable and condition_variable_any are based on the POSIX pthread_cond_t. One of the very subtle behaviors of pthread_cond_t is that it is ok for a pthread_cond_t to be destroyed after all waiting threads have been signaled (assuming no new threads initiate a wait). There's even an example demonstrating this at http://www.unix.org/online.html under the specification for pthread_cond_destroy. This subtlety is reflected in the Requires clause for the destructor of both condition_variable and condition_variable_any: > Requires: There shall be no thread blocked on *this. [Note: That is, all threads shall have been notified; they may subsequently block on the lock specified in the wait. This relaxes the usual rules, which would have required all wait calls to happen before destruction. Only the notification to unblock the wait must happen before destruction. The user must take care to ensure that no threads wait on *this once the destructor has been started, especially when the waiting threads are calling the wait functions in a loop or using the overloads of wait, wait_for, or wait_until that take a predicate. — end note ] To be *perfectly* clear, the following is ok: {{{ Thread A Thread B ... lk.lock() ... cv.wait(lk) lk.lock() ... cv.notify_one() ... cv.~condition_variable_any() ... lk.unlock() ... ... finally exits cv.wait // ok, not a data race }}} "" " viboes Boost 1.51.0 7320 "Warnings ""duplicate friend declaration"" with Intel C++ Compiler XE 12.1.5.344" exception Boost 1.51.0 To Be Determined Bugs Emil Dotchevski new 2012-09-02T11:51:43Z 2012-09-02T11:51:43Z "There are some warnings ""duplicate friend declaration"" with Intel C++ Compiler XE 12.1.5.344 at Windows (Windows 7 SP1 Pro) during building of programs using Boost.Exception: {{{ 1>..\..\..\..\boost_1_51_0\boost/exception/exception.hpp(258): warning #367: duplicate friend declaration 1> friend struct exception_detail::get_info; 1> ^ 1> 1>..\..\..\..\boost_1_51_0\boost/exception/exception.hpp(259): warning #367: duplicate friend declaration 1> friend struct exception_detail::get_info; 1> ^ 1> 1>..\..\..\..\boost_1_51_0\boost/exception/exception.hpp(260): warning #367: duplicate friend declaration 1> friend struct exception_detail::get_info; 1> ^ }}} The warning level is Level4 (/W4)." abrarov@… Boost 1.51.0 7341 Vector subscript out of range exception when calling weighted_core_numbers graph Boost 1.51.0 To Be Determined Bugs Jeremiah Willcock reopened 2012-09-06T15:06:50Z 2012-09-10T14:12:29Z "I get a vector subscript out of range exception when calling the weighted_core_numbers function in the boost graph library. The exception is actually thrown from within the mutable_queue::update function, but I can't tell if the error is in mutable_queue or in weighted_core_numbers. The attached test program is sufficient to show the problem. The test network is taken from Figure 1 of the Batagelj-Zaversnik paper (http://vlado.fmf.uni-lj.si/pub/networks/doc/cores/cores.pdf), with random integer weights of 1, 2, or 3 added to each edge. " Ian Robertson Boost 1.51.0 7377 Abort trap when using Program Options program_options Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-09-14T14:43:32Z 2012-09-14T14:55:15Z "Hello, I tried to run the simple example provided on the web site at the following URL (file 'first'): http://www.boost.org/doc/libs/1_51_0/doc/html/program_options/tutorial.html#id2547756 When I run: ./test_po a b c d e OR ./test_po --compression 1 there are no problems. When I run ./test_po --compression ./test_po -compression ./test_po -a OR ./test_po -a 1 ./test_po -aa oR ./test_po --a 1 the program fails due to an abort trap. This is my working environment: - boost 1.51.1 - OS X 10.6.8 - g++ i686-apple-darwin10-g++-4.2.1 Please let me know in case you need more info. Regards" lordthistle@… Boost 1.51.0 7385 Unused parameter causes compilation error program_options Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-09-17T23:28:52Z 2012-10-04T08:22:08Z "When the compiler is set to treat warnings as errors, the line #253: virtual void set_option_name(const std::string& option_name) {} in the file program_options/errors.hpp, causes a compilation error." lcarreon@… Boost 1.51.0 7440 boost::filesystem compile error on solaris 10 filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-09-28T14:57:09Z 2013-10-21T14:52:05Z "It fails to compile on gcc 4.7.2 with compile flags cxxflags=-std=c++0x[[BR]] libs/filesystem/src/operations.cpp: In function 'void boost::filesystem::detail: :permissions(const boost::filesystem::path&, boost::filesystem::perms, boost::system::error_code*)': libs/filesystem/src/operations.cpp:1412:11: error: '::fchmodat' has not been declared in line 1410 there is:[[BR]] {{{ && !(defined(__SUNPRO_CC) || defined(sun)) \ }}} proper check for solaris would be:[[BR]] {{{ && !(defined(__SUNPRO_CC) || defined(sun) || defined(__sun)) \ }}} " aleksandar.vukajlovic@… Boost 1.51.0 7475 Functions redeclared inline after been called system Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-06T13:06:56Z 2012-10-06T13:06:56Z "THe following warnings appear with intel-12.1.3 compiler {{{ ../../../boost/system/error_code.hpp(489): remark #522: function ""boost::system::error_category::default_error_condition"" redeclared ""inline"" after being called inline error_condition error_category::default_error_condition( int ev ) const ^ ../../../boost/system/error_code.hpp(494): remark #522: function ""boost::system::error_category::equivalent(int, const boost::system::error_condition &) const"" redeclared ""inline"" after being called inline bool error_category::equivalent( int code, ^ ../../../boost/system/error_code.hpp(500): remark #522: function ""boost::system::error_category::equivalent(const boost::system::error_code &, int) const"" redeclared ""inline"" after being called inline bool error_category::equivalent( const error_code & code, ^ }}} See the attached patch that solves the issue. " viboes Boost 1.51.0 7507 BGL subgraph copy constructor buggy graph Boost 1.51.0 To Be Determined Bugs Jeremiah Willcock new 2012-10-15T14:45:45Z 2012-10-16T08:59:02Z "Hello, I store subgraph objects in a std::list. After this, most of the data contained in subgraphs are lost. Attached is a minimalist code that creates a root graph and two childen, and then displays them directly, then insert them into a (copy-on-write) list, then displays them again. The root redisplays too much, and children lose data. I am on MacOSX with gcc 6; maybe on other platforms the copy would not happen, since I don't modify the graphs between insertion and display. Here is my output: {{{ From the stack: (root) graph: 6(0,2) 4(1,2) num_edges= 2 subgraph: 0(0,1) num_edges= 1 subgraph: 0(0,1) num_edges= 1 From list: graph: 0(0,1) 1(1,2) 2(1,3) 6(2,5) 3(4,1) 4(4,5) 5(5,3) num_edges= 7 graph: num_edges= 0 graph: num_edges= 0 }}} " Amyn Bennamane Boost 1.51.0 7508 Boost timezonedb incorrect Brazil DST specification date_time Boost 1.51.0 To Be Determined Bugs az_sw_dude new 2012-10-15T17:14:11Z 2012-10-15T17:14:11Z "Today our applications running in Brazil have the incorrect time. We tracked it down to an error in the boost date_time_zonespec.csv specification for America/Sao_Paulo. It specifies that the DST change starts on the second Sunday of October (yesterday). However, it actually starts on the third Sunday (see the attached document from exchange). I downloaded the latest version of boost (1.51), and it is also incorrect there. Also note that Linux does have the correct time. I intend to submit a bug report to Boost, but I don’t know if you prefer if the external communication to go through your team. Incorrect: ""America/Sao_Paulo"",""BRT"",""BRT"",""BRST"",""BRST"",""-03:00:00"",""+01:00:00"",""2;0;10"",""+00:00:00"",""3;0;2"",""+00:00:00"" Should be (for all BRST): ""America/Sao_Paulo"",""BRT"",""BRT"",""BRST"",""BRST"",""-03:00:00"",""+01:00:00"",""3;0;10"",""+00:00:00"",""3;0;2"",""+00:00:00"" " anonymous Boost 1.51.0 7520 boost::interprocess::ipcdetail::truncate_file does not support 64bit size interprocess Boost 1.51.0 To Be Determined Bugs Ion Gaztañaga new 2012-10-17T14:53:16Z 2012-10-17T14:53:16Z "As far as truncate_file accepts size_t variable, it will be impossible to re-size file to size greater than 2GB in the x32 application. Here is signature: inline bool truncate_file (file_handle_t hnd, std::size_t size)" Dmytro Ovdiienko Boost 1.51.0 7522 bootstrap.bat fails when TMP/TEMP folder contains a space in the path on Windows Building Boost Boost 1.51.0 To Be Determined Bugs new 2012-10-17T16:36:26Z 2012-10-17T17:52:46Z "To reproduce: (on Windows 7 x64 machine with vs2010) 1. set TEMP=C:\Program Files\Temp 2. set TMP=%TEMP% 3. bootstrap Gives error. Bootstrap.log shows that ""Files\Temp\_CL_xxxx.obj"" not found, indicating a problem with ' ' in path. " David Hait Boost 1.51.0 7535 filesystem::path::iterator inconsistency with multiple leading separators filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-19T19:31:16Z 2012-10-19T19:31:16Z "Iterating backwards through a filesystem::path does not terminate at path::begin() if the path starts with several leading directory separators. For example: {{{ #include #include int main() { boost::filesystem::path p(""/////foo""); boost::filesystem::path::iterator i = p.begin(); ++i; --i; std::cout << ((i == p.begin()) ? ""same"" : ""different"") << std::endl; } }}} Expected output: `same` \\ Actual output: `different` Looking at the source (filesystem/src/path.cpp), it seems that in path::begin() the iterator's m_pos member is set to the position of the last leading directory separator. During backward iteration, m_pos is set to 0, though, so the iterator comparison (which involves comparing the m_pos members) yields false. " Stefan Große Pawig Boost 1.51.0 7536 Fails to Compile under OSX 10.8 Building Boost Boost 1.51.0 Boost.Jam 4.0.0 Bugs new 2012-10-19T20:52:58Z 2016-08-09T00:13:18Z "I am trying to install the Boost libraries on a MacBook Pro running 10.8. This produces compiler errors. Any help you can give me would be appreciated. The output of ./b2 is below: Building the Boost C++ Libraries. Performing configuration checks - 32-bit : no - 64-bit : yes - x86 : yes - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam - iconv (libc) : no - iconv (separate) : yes - icu : no - icu (lib64) : no - gcc visibility : yes - long double support : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add ""using mpi ;"" to user-config.jam. note: to suppress this message, pass ""--without-mpi"" to bjam. note: otherwise, you can safely ignore this message. Component configuration: - chrono : building - context : building - date_time : building - exception : building - filesystem : building - graph : building - graph_parallel : building - iostreams : building - locale : building - math : building - mpi : building - program_options : building - python : building - random : building - regex : building - serialization : building - signals : building - system : building - test : building - thread : building - timer : building - wave : building ...patience... ...patience... ...patience... ...patience... ...found 8764 targets... ...updating 8 targets... darwin.compile.c++ bin.v2/libs/graph/build/darwin-4.5.0/release/threading-multi/graphml.o In file included from ./boost/property_tree/xml_parser.hpp:19:0, from libs/graph/src/graphml.cpp:20: ./boost/property_tree/detail/xml_parser_read_rapidxml.hpp: In function ‘void boost::property_tree::xml_parser::read_xml_internal(std::basic_istream&, Ptree&, int, const std::string&) [with Ptree = boost::property_tree::basic_ptree, std::basic_string >, typename Ptree::key_type::value_type = char, typename Ptree::key_type::value_type = char, std::string = std::basic_string]’: ./boost/property_tree/detail/xml_parser_read_rapidxml.hpp:89:10: internal compiler error: Segmentation fault: 11 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -dynamic -gdwarf-2 -fexceptions -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_GRAPH_DYN_LINK=1 -DNDEBUG -I""."" -I""libs/graph/src"" -c -o ""bin.v2/libs/graph/build/darwin-4.5.0/release/threading-multi/graphml.o"" ""libs/graph/src/graphml.cpp"" ...failed darwin.compile.c++ bin.v2/libs/graph/build/darwin-4.5.0/release/threading-multi/graphml.o... ...skipped libboost_graph.dylib for lack of graphml.o... darwin.link.dll bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/libboost_python.dylib ld: warning: ignoring file /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config/libpython2.6.dylib, missing required architecture x86_64 in file /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config/libpython2.6.dylib (2 slices) Undefined symbols for architecture x86_64: ""_PyCallable_Check"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o boost::python::objects::class_base::make_method_static(char const*) in class.o ""_PyDict_New"", referenced from: boost::python::detail::dict_base::dict_base() in dict.o boost::python::detail::dict_base::dict_base() in dict.o _instance_get_dict in class.o ""_PyType_Ready"", referenced from: boost::python::objects::(anonymous namespace)::new_enum_type(char const*, char const*) in enum.o _class_setattro in class.o boost::python::objects::static_data() in class.o boost::python::objects::class_metatype() in class.o boost::python::objects::class_type() in class.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&) in class.o ... ""_PyLong_FromUnsignedLong"", referenced from: boost::python::objects::class_base::set_instance_size(unsigned long) in class.o boost::python::objects::function_doc_signature_generator::parameter_string(boost::python::objects::py_function const&, unsigned long, boost::python::api::object, bool) in function_doc_signature.o boost::python::objects::function_doc_signature_generator::pretty_signature(boost::python::objects::function const*, unsigned long, bool) in function_doc_signature.o ""_PyObject_RichCompare"", referenced from: boost::python::api::operator>(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o boost::python::api::operator>=(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o boost::python::api::operator<(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o boost::python::api::operator<=(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o boost::python::api::operator==(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o boost::python::api::operator!=(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyExc_ValueError"", referenced from: boost::python::handle_exception_impl(boost::function0) in errors.o ""_PyDict_Update"", referenced from: boost::python::detail::dict_base::update(boost::python::api::object const&) in dict.o ""_PyExc_StopIteration"", referenced from: boost::python::objects::stop_iteration_error() in iterator.o ""__PyObject_New"", referenced from: boost::python::objects::make_nurse_and_patient(_object*, _object*) in life_support.o ""_PyObject_SetAttr"", referenced from: boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o boost::python::api::setattr(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::delattr(boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o ""_PyDict_GetItemString"", referenced from: boost::python::detail::wrapper_base::get_override(char const*, _typeobject*) const in wrapper.o ""_PyNumber_InPlaceRemainder"", referenced from: boost::python::api::operator%=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyArg_ParseTupleAndKeywords"", referenced from: _property_init in class.o ""_PyMethod_New"", referenced from: _function_descr_get in function.o ""_PyObject_Size"", referenced from: boost::python::objects::enum_base::export_values() in enum.o boost::python::objects::function::signature(bool) const in function.o boost::python::(anonymous namespace)::instance_reduce(boost::python::api::object) in pickle_support.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, std::allocator >, boost::python::converter::(anonymous namespace)::wstring_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::objects::function_doc_signature_generator::parameter_string(boost::python::objects::py_function const&, unsigned long, boost::python::api::object, bool) in function_doc_signature.o boost::python::objects::function_doc_signature_generator::pretty_signature(boost::python::objects::function const*, unsigned long, bool) in function_doc_signature.o boost::python::objects::function_doc_signature_generator::function_doc_signatures(boost::python::objects::function const*) in function_doc_signature.o ... ""_PyList_Sort"", referenced from: boost::python::detail::list_base::sort() in list.o ""_PyCFunction_Type"", referenced from: _function_get_class in function.o ""_PyDict_Values"", referenced from: boost::python::detail::dict_base::values() const in dict.o ""_PyNumber_InPlaceSubtract"", referenced from: boost::python::api::operator-=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyTuple_GetItem"", referenced from: boost::python::objects::function::argument_error(_object*, _object*) const in function.o ""_PyString_Size"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, std::allocator >, boost::python::converter::(anonymous namespace)::string_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyMem_Malloc"", referenced from: boost::python::instance_holder::allocate(_object*, unsigned long, unsigned long) in class.o ""_PyErr_Occurred"", referenced from: boost::python::detail::list_base::insert(boost::python::api::object const&, boost::python::api::object const&) in list.o boost::python::detail::str_base::endswith(boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&, boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) const in str.o boost::python::detail::str_base::index(boost::python::api::object const&) const in str.o boost::python::detail::str_base::index(boost::python::api::object const&, boost::python::api::object const&) const in str.o ... ""_PyInt_FromLong"", referenced from: boost::python::numeric::aux::array_base::argmax(long) in numeric.o boost::python::numeric::aux::array_base::argmin(long) in numeric.o boost::python::numeric::aux::array_base::argsort(long) in numeric.o boost::python::numeric::aux::array_base::diagonal(long, long, long) const in numeric.o boost::python::numeric::aux::array_base::trace(long, long, long) const in numeric.o boost::python::numeric::aux::array_base::repeat(boost::python::api::object const&, long) in numeric.o boost::python::numeric::aux::array_base::swapaxes(long, long) in numeric.o ... ""_PyNumber_Subtract"", referenced from: boost::python::api::operator-(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyErr_WarnEx"", referenced from: boost::python::converter::registry::insert(_object* (*)(void const*), boost::python::type_info, _typeobject const* (*)()) in registry.o ""_PySequence_SetSlice"", referenced from: boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o ""_Py_InitModule4_64"", referenced from: boost::python::detail::init_module(char const*, void (*)()) in module.o ""_PyString_FromString"", referenced from: boost::python::detail::str_base::str_base() in str.o boost::python::detail::str_base::str_base() in str.o boost::python::detail::str_base::str_base(char const*) in str.o boost::python::detail::str_base::str_base(char const*) in str.o boost::python::converter::do_return_to_python(char const*) in builtin_converters.o ""_PyType_IsSubtype"", referenced from: boost::python::objects::find_instance_impl(_object*, boost::python::type_info, bool) in class.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o ... ""_PyLong_AsLongLong"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyLong_AsUnsignedLongLong"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyRun_FileExFlags"", referenced from: boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o ""_PyObject_IsInstance"", referenced from: boost::python::numeric::aux::array_object_manager_traits::check(_object*) in numeric.o boost::python::pytype_check(_typeobject*, _object*) in from_python.o _class_setattro in class.o boost::python::objects::module_prefix() in class.o ""_PyErr_Clear"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o _instance_new in class.o boost::python::objects::function::call(_object*, _object*) const in function.o boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o boost::python::api::getattr(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::getattr(boost::python::api::object const&, char const*, boost::python::api::object const&) in object_protocol.o ""_PyMethod_Type"", referenced from: boost::python::detail::wrapper_base::get_override(char const*, _typeobject*) const in wrapper.o ""_PyNumber_InPlaceAdd"", referenced from: boost::python::api::operator+=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyString_InternFromString"", referenced from: _function_get_name in function.o ""_PyFile_AsFile"", referenced from: boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o ""_PyObject_GetItem"", referenced from: boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o boost::python::api::getitem(boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::getslice(boost::python::api::object const&, boost::python::handle<_object> const&, boost::python::handle<_object> const&) in object_protocol.o ""_PyType_GenericAlloc"", referenced from: boost::python::objects::class_type_object in class.o ""_PyImport_Import"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o ""_PyClass_Type"", referenced from: boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o ""_PyLong_AsUnsignedLong"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""__PyType_Lookup"", referenced from: _class_setattro in class.o ""_PyNumber_InPlaceLshift"", referenced from: boost::python::api::operator<<=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyLong_Type"", referenced from: boost::python::detail::long_base::call(boost::python::api::object const&) in long.o boost::python::detail::long_base::call(boost::python::api::object const&, boost::python::api::object const&) in long.o boost::python::detail::long_base::long_base() in long.o boost::python::detail::long_base::long_base() in long.o boost::python::detail::long_base::long_base(boost::python::api::object const&) in long.o boost::python::detail::long_base::long_base(boost::python::api::object const&) in long.o boost::python::detail::long_base::long_base(boost::python::api::object const&, boost::python::api::object const&) in long.o ... ""_PyNumber_InPlaceDivide"", referenced from: boost::python::api::operator/=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyDict_Size"", referenced from: boost::python::objects::function::call(_object*, _object*) const in function.o ""_PyObject_ClearWeakRefs"", referenced from: _instance_dealloc in class.o ""_PyExc_RuntimeError"", referenced from: _no_init in class.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o boost::python::detail::pure_virtual_called() in function.o boost::python::(anonymous namespace)::instance_reduce(boost::python::api::object) in pickle_support.o boost::python::handle_exception_impl(boost::function0) in errors.o ""_PyList_New"", referenced from: boost::python::detail::list_base::list_base() in list.o boost::python::detail::list_base::list_base() in list.o ""_PyNumber_Lshift"", referenced from: boost::python::api::operator<<(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyTuple_Type"", referenced from: boost::python::detail::tuple_base::call(boost::python::api::object const&) in tuple.o boost::python::detail::tuple_base::tuple_base(boost::python::api::object const&) in tuple.o boost::python::detail::tuple_base::tuple_base(boost::python::api::object const&) in tuple.o global constructors keyed to tuple.cpp in tuple.o boost::python::detail::converter_target_type >::get_pytype() in pickle_support.o ""_PyNumber_Divide"", referenced from: boost::python::api::operator/(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyErr_ExceptionMatches"", referenced from: boost::python::api::getattr(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::getattr(boost::python::api::object const&, char const*, boost::python::api::object const&) in object_protocol.o ""__Py_NoneStruct"", referenced from: global constructors keyed to numeric.cpp in numeric.o global constructors keyed to list.cpp in list.o global constructors keyed to long.cpp in long.o boost::python::detail::dict_base::get(boost::python::api::object const&) const in dict.o global constructors keyed to dict.cpp in dict.o global constructors keyed to tuple.cpp in tuple.o global constructors keyed to str.cpp in str.o ... ""_PyRun_StringFlags"", referenced from: boost::python::eval(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o boost::python::exec(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o boost::python::exec_statement(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o ""_PyString_FromStringAndSize"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o boost::python::detail::str_base::str_base(char const*, char const*) in str.o boost::python::detail::str_base::str_base(char const*, char const*) in str.o boost::python::detail::str_base::str_base(char const*, unsigned long) in str.o boost::python::detail::str_base::str_base(char const*, unsigned long) in str.o boost::python::converter::do_return_to_python(char) in builtin_converters.o boost::python::tuple boost::python::make_tuple, std::allocator > >(boost::python::str const&, boost::python::api::object const&, boost::python::str const&, boost::python::str const&, boost::python::str const&, std::basic_string, std::allocator > const&) in function_doc_signature.o ... ""_PyList_Append"", referenced from: boost::python::detail::list_base::append(boost::python::api::object const&) in list.o ""_PyTuple_New"", referenced from: boost::python::detail::tuple_base::tuple_base() in tuple.o boost::python::detail::tuple_base::tuple_base() in tuple.o boost::python::objects::(anonymous namespace)::new_enum_type(char const*, char const*) in enum.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o boost::python::objects::function::function(boost::python::objects::py_function const&, boost::python::detail::keyword const*, unsigned int) in function.o boost::python::objects::function::function(boost::python::objects::py_function const&, boost::python::detail::keyword const*, unsigned int) in function.o boost::python::objects::function::signature(bool) const in function.o ... ""_PyNumber_InPlaceRshift"", referenced from: boost::python::api::operator>>=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyDict_GetItem"", referenced from: boost::python::detail::dict_base::get(boost::python::api::object const&) const in dict.o boost::python::objects::function::call(_object*, _object*) const in function.o ""_PyObject_DelItem"", referenced from: boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o boost::python::api::delitem(boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o ""_PyNumber_InPlaceAnd"", referenced from: boost::python::api::operator&=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyObject_GetAttr"", referenced from: boost::python::api::getattr(boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::getattr(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o ""_PyType_Type"", referenced from: boost::python::objects::(anonymous namespace)::new_enum_type(char const*, char const*) in enum.o _class_setattro in class.o boost::python::objects::static_data() in class.o boost::python::objects::class_metatype() in class.o boost::python::objects::class_type() in class.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&) in class.o ... ""_PyExc_ImportError"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o ""_PyEval_GetGlobals"", referenced from: boost::python::eval(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o boost::python::exec(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o boost::python::exec_statement(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o ""_PyNumber_Rshift"", referenced from: boost::python::api::operator>>(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyList_Reverse"", referenced from: boost::python::detail::list_base::reverse() in list.o ""_PyMem_Free"", referenced from: _instance_dealloc in class.o boost::python::instance_holder::deallocate(_object*, void*) in class.o ""_PyString_Type"", referenced from: boost::python::detail::str_base::call(boost::python::api::object const&) in str.o boost::python::detail::str_base::str_base(boost::python::api::object const&) in str.o boost::python::detail::str_base::str_base(boost::python::api::object const&) in str.o global constructors keyed to str.cpp in str.o boost::python::converter::(anonymous namespace)::string_rvalue_from_python::get_pytype() in builtin_converters.o boost::python::converter::wrap_pytype<&PyString_Type>::get_pytype() in builtin_converters.o ""_PyExc_TypeError"", referenced from: boost::python::converter::(anonymous namespace)::lvalue_result_from_python(_object*, boost::python::converter::registration const&, char const*) in from_python.o boost::python::converter::rvalue_result_from_python(_object*, boost::python::converter::rvalue_from_python_stage1_data&) in from_python.o boost::python::converter::rvalue_from_python_stage2(_object*, boost::python::converter::rvalue_from_python_stage1_data&, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_pointer_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_reference_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::pytype_check(_typeobject*, _object*) in from_python.o boost::python::converter::registration::get_class_object() const in registry.o ... ""_PyUnicodeUCS2_FromEncodedObject"", referenced from: _encode_string_unaryfunc in builtin_converters.o ""_PyNumber_InPlaceXor"", referenced from: boost::python::api::operator^=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PyProperty_Type"", referenced from: _class_setattro in class.o boost::python::objects::static_data() in class.o boost::python::objects::class_base::add_property(char const*, boost::python::api::object const&, char const*) in class.o boost::python::objects::class_base::add_property(char const*, boost::python::api::object const&, boost::python::api::object const&, char const*) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&, boost::python::api::object const&) in class.o ""_PyBool_FromLong"", referenced from: boost::python::numeric::aux::array_base::factory(boost::python::api::object const&, boost::python::api::object const&, bool, bool, boost::python::api::object, boost::python::api::object) in numeric.o boost::python::objects::class_base::enable_pickling_(bool) in class.o ""_PyNumber_Add"", referenced from: boost::python::api::operator+(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyErr_NoMemory"", referenced from: boost::python::handle_exception_impl(boost::function0) in errors.o ""_PyFile_FromString"", referenced from: boost::python::exec_file(boost::python::str, boost::python::api::object, boost::python::api::object) in exec.o ""_PyInt_Type"", referenced from: _enum_str in enum.o boost::python::objects::(anonymous namespace)::new_enum_type(char const*, char const*) in enum.o boost::python::converter::(anonymous namespace)::signed_int_rvalue_from_python_base::get_pytype() in builtin_converters.o boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python_base::get_pytype() in builtin_converters.o ""_PyNumber_InPlaceMultiply"", referenced from: boost::python::api::operator*=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PySequence_GetSlice"", referenced from: boost::python::api::getslice(boost::python::api::object const&, boost::python::handle<_object> const&, boost::python::handle<_object> const&) in object_protocol.o ""_PyBool_Type"", referenced from: boost::python::converter::(anonymous namespace)::bool_rvalue_from_python::get_pytype() in builtin_converters.o ""_PyExc_ReferenceError"", referenced from: boost::python::converter::(anonymous namespace)::lvalue_result_from_python(_object*, boost::python::converter::registration const&, char const*) in from_python.o ""_PyDict_Copy"", referenced from: boost::python::detail::dict_base::copy() in dict.o ""__Py_NotImplementedStruct"", referenced from: boost::python::objects::(anonymous namespace)::not_implemented(_object*, _object*) in function.o ""_PyModule_Type"", referenced from: boost::python::objects::module_prefix() in class.o ""_PyComplex_Type"", referenced from: boost::python::converter::(anonymous namespace)::complex_rvalue_from_python::get_pytype() in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ... ""_PyObject_IsTrue"", referenced from: boost::python::objects::(anonymous namespace)::new_enum_type(char const*, char const*) in enum.o boost::python::objects::enum_base::to_python(_typeobject*, long) in enum.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o _function_get_doc in function.o boost::python::objects::function::signature(bool) const in function.o boost::python::objects::function::add_overload(boost::python::handle const&) in function.o boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o ... ""_PyNumber_Remainder"", referenced from: boost::python::api::operator%(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyComplex_ImagAsDouble"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyWeakref_NewRef"", referenced from: boost::python::objects::make_nurse_and_patient(_object*, _object*) in life_support.o ""_PyList_Insert"", referenced from: boost::python::detail::list_base::insert(long, boost::python::api::object const&) in list.o ""_PyNumber_Multiply"", referenced from: boost::python::api::operator*(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyImport_ImportModule"", referenced from: boost::python::import(boost::python::str) in import.o ""_PyExc_OverflowError"", referenced from: boost::python::handle_exception_impl(boost::function0) in errors.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyErr_SetString"", referenced from: _no_init in class.o _static_data_descr_set in class.o _function_get_module in function.o boost::python::detail::pure_virtual_called() in function.o boost::python::(anonymous namespace)::instance_reduce(boost::python::api::object) in pickle_support.o boost::python::handle_exception_impl(boost::function0) in errors.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ... ""_PyInt_AsLong"", referenced from: boost::python::detail::list_base::index(boost::python::api::object const&) const in list.o boost::python::detail::list_base::insert(boost::python::api::object const&, boost::python::api::object const&) in list.o boost::python::detail::list_base::count(boost::python::api::object const&) const in list.o boost::python::detail::str_base::endswith(boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&, boost::python::api::object const&) const in str.o boost::python::detail::str_base::find(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) const in str.o ... ""_PySequence_DelSlice"", referenced from: boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o ""_PyIter_Next"", referenced from: boost::python::objects::stl_input_iterator_impl::stl_input_iterator_impl(boost::python::api::object const&) in stl_iterator.o boost::python::objects::stl_input_iterator_impl::stl_input_iterator_impl(boost::python::api::object const&) in stl_iterator.o boost::python::objects::stl_input_iterator_impl::increment() in stl_iterator.o ""_PyErr_SetObject"", referenced from: boost::python::converter::(anonymous namespace)::lvalue_result_from_python(_object*, boost::python::converter::registration const&, char const*) in from_python.o boost::python::converter::rvalue_result_from_python(_object*, boost::python::converter::rvalue_from_python_stage1_data&) in from_python.o boost::python::converter::rvalue_from_python_stage2(_object*, boost::python::converter::rvalue_from_python_stage1_data&, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_pointer_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_reference_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::converter::registration::to_python(void const volatile*) const in registry.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o ... ""_PyDict_Keys"", referenced from: boost::python::detail::dict_base::keys() const in dict.o ""_PyBaseObject_Type"", referenced from: boost::python::objects::class_type() in class.o boost::python::objects::(anonymous namespace)::new_class(char const*, unsigned long, boost::python::type_info const*, char const*) in class.o ""_PyString_FromFormat"", referenced from: boost::python::converter::(anonymous namespace)::lvalue_result_from_python(_object*, boost::python::converter::registration const&, char const*) in from_python.o boost::python::converter::rvalue_result_from_python(_object*, boost::python::converter::rvalue_from_python_stage1_data&) in from_python.o boost::python::converter::rvalue_from_python_stage2(_object*, boost::python::converter::rvalue_from_python_stage1_data&, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_pointer_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::converter::throw_no_reference_from_python(_object*, boost::python::converter::registration const&) in from_python.o boost::python::converter::registration::to_python(void const volatile*) const in registry.o _enum_repr in enum.o ... ""_PyExc_AttributeError"", referenced from: _static_data_descr_set in class.o _function_get_module in function.o boost::python::api::getattr(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o boost::python::api::getattr(boost::python::api::object const&, char const*, boost::python::api::object const&) in object_protocol.o ""_PyObject_CallMethod"", referenced from: boost::python::detail::str_base::capitalize() const in str.o boost::python::detail::str_base::center(boost::python::api::object const&) const in str.o boost::python::detail::str_base::expandtabs() const in str.o boost::python::detail::str_base::expandtabs(boost::python::api::object const&) const in str.o boost::python::detail::str_base::join(boost::python::api::object const&) const in str.o boost::python::detail::str_base::ljust(boost::python::api::object const&) const in str.o boost::python::detail::str_base::lower() const in str.o ... ""_PyStaticMethod_New"", referenced from: boost::python::objects::class_base::make_method_static(char const*) in class.o ""_PyErr_Format"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o boost::python::pytype_check(_typeobject*, _object*) in from_python.o boost::python::converter::registration::get_class_object() const in registry.o boost::python::objects::class_base::make_method_static(char const*) in class.o boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o ""_PyObject_SetItem"", referenced from: boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o boost::python::api::setitem(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in object_protocol.o ""_PyFloat_Type"", referenced from: boost::python::converter::(anonymous namespace)::float_rvalue_from_python::get_pytype() in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o ... ""__PyEval_SliceIndex"", referenced from: boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o boost::python::api::getslice(boost::python::api::object const&, boost::python::handle<_object> const&, boost::python::handle<_object> const&) in object_protocol.o ""_PyObject_CallFunction"", referenced from: boost::python::detail::list_base::call(boost::python::api::object const&) in list.o boost::python::detail::list_base::list_base(boost::python::api::object const&) in list.o boost::python::detail::list_base::list_base(boost::python::api::object const&) in list.o boost::python::detail::long_base::call(boost::python::api::object const&) in long.o boost::python::detail::long_base::call(boost::python::api::object const&, boost::python::api::object const&) in long.o boost::python::detail::long_base::long_base() in long.o boost::python::detail::long_base::long_base() in long.o ... ""_PyNumber_Or"", referenced from: boost::python::api::operator|(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyUnicodeUCS2_AsWideChar"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, std::allocator >, boost::python::converter::(anonymous namespace)::wstring_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyDict_Items"", referenced from: boost::python::detail::dict_base::items() const in dict.o ""_PyDict_Type"", referenced from: boost::python::detail::dict_base::call(boost::python::api::object const&) in dict.o boost::python::detail::dict_base::dict_base(boost::python::api::object const&) in dict.o boost::python::detail::dict_base::dict_base(boost::python::api::object const&) in dict.o boost::python::detail::dict_base::clear() in dict.o boost::python::detail::dict_base::copy() in dict.o boost::python::detail::dict_base::get(boost::python::api::object const&) const in dict.o boost::python::detail::dict_base::items() const in dict.o ... ""_PyObject_SetAttrString"", referenced from: boost::python::objects::class_base::add_property(char const*, boost::python::api::object const&, char const*) in class.o boost::python::objects::class_base::add_property(char const*, boost::python::api::object const&, boost::python::api::object const&, char const*) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&) in class.o boost::python::objects::class_base::add_static_property(char const*, boost::python::api::object const&, boost::python::api::object const&) in class.o boost::python::objects::class_base::setattr(char const*, boost::python::api::object const&) in class.o boost::python::objects::class_base::def_no_init() in class.o boost::python::objects::class_base::enable_pickling_(bool) in class.o ... ""_PyExc_IndexError"", referenced from: boost::python::handle_exception_impl(boost::function0) in errors.o ""_PyNumber_And"", referenced from: boost::python::api::operator&(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyObject_GetAttrString"", referenced from: boost::python::numeric::(anonymous namespace)::load(bool) in numeric.o _enum_repr in enum.o _instance_new in class.o boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o boost::python::api::getattr(boost::python::api::object const&, char const*) in object_protocol.o boost::python::api::getattr(boost::python::api::object const&, char const*, boost::python::api::object const&) in object_protocol.o boost::python::detail::wrapper_base::get_override(char const*, _typeobject*) const in wrapper.o ... ""_PyString_AsString"", referenced from: _enum_repr in enum.o boost::python::converter::(anonymous namespace)::convert_to_cstring(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, std::allocator >, boost::python::converter::(anonymous namespace)::string_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyStaticMethod_Type"", referenced from: boost::python::objects::function::add_to_namespace(boost::python::api::object const&, char const*, boost::python::api::object const&, char const*) in function.o ""_PyCFunction_NewEx"", referenced from: boost::python::objects::class_base::def_no_init() in class.o ""_PyList_Type"", referenced from: boost::python::detail::list_base::call(boost::python::api::object const&) in list.o boost::python::detail::list_base::list_base(boost::python::api::object const&) in list.o boost::python::detail::list_base::list_base(boost::python::api::object const&) in list.o boost::python::detail::list_base::append(boost::python::api::object const&) in list.o boost::python::detail::list_base::insert(long, boost::python::api::object const&) in list.o boost::python::detail::list_base::reverse() in list.o boost::python::detail::list_base::sort() in list.o ... ""_PyErr_NewException"", referenced from: boost::python::objects::function::argument_error(_object*, _object*) const in function.o ""_PyDict_Clear"", referenced from: boost::python::detail::dict_base::clear() in dict.o ""_PyUnicode_Type"", referenced from: boost::python::converter::(anonymous namespace)::wstring_rvalue_from_python::get_pytype() in builtin_converters.o ""_PyComplex_RealAsDouble"", referenced from: boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o ""_PyTuple_Size"", referenced from: boost::python::objects::function::argument_error(_object*, _object*) const in function.o boost::python::objects::function::call(_object*, _object*) const in function.o ""_PyNumber_Xor"", referenced from: boost::python::api::operator^(boost::python::api::object const&, boost::python::api::object const&) in object_operators.o ""_PyEval_CallFunction"", referenced from: boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&, boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&, boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in numeric.o boost::python::numeric::aux::array_base::array_base(boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&, boost::python::api::object const&) in numeric.o ... ""_PyNumber_InPlaceOr"", referenced from: boost::python::api::operator|=(boost::python::api::object&, boost::python::api::object const&) in object_operators.o ""_PySlice_New"", referenced from: boost::python::detail::slice_base::slice_base(_object*, _object*, _object*) in slice.o boost::python::detail::slice_base::slice_base(_object*, _object*, _object*) in slice.o boost::python::api::(anonymous namespace)::assign_slice(_object*, _object*, _object*, _object*) in object_protocol.o boost::python::api::getslice(boost::python::api::object const&, boost::python::handle<_object> const&, boost::python::handle<_object> const&) in object_protocol.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status ""g++"" -dynamiclib -Wl,-single_module -install_name ""libboost_python.dylib"" -L""/Library/Frameworks/Python.framework/Versions/2.6/lib"" -L""/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/config"" -o ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/libboost_python.dylib"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/numeric.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/list.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/long.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/dict.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/tuple.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/str.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/slice.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/converter/from_python.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/converter/registry.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/converter/type_id.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/enum.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/class.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/function.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/inheritance.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/life_support.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/pickle_support.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/errors.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/module.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/converter/builtin_converters.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/converter/arg_to_python_base.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/iterator.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/stl_iterator.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object_protocol.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object_operators.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/wrapper.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/import.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/exec.o"" ""bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/object/function_doc_signature.o"" -lpython2.6 -headerpad_max_install_names -Wl,-dead_strip -no_dead_strip_inits_and_terms ...failed darwin.link.dll bin.v2/libs/python/build/darwin-4.5.0/release/threading-multi/libboost_python.dylib... ...skipped libboost_python.dylib for lack of libboost_python.dylib... darwin.compile.c++ bin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi/graphml.o In file included from ./boost/property_tree/xml_parser.hpp:19:0, from libs/graph/src/graphml.cpp:20: ./boost/property_tree/detail/xml_parser_read_rapidxml.hpp: In function ‘void boost::property_tree::xml_parser::read_xml_internal(std::basic_istream&, Ptree&, int, const std::string&) [with Ptree = boost::property_tree::basic_ptree, std::basic_string >, typename Ptree::key_type::value_type = char, typename Ptree::key_type::value_type = char, std::string = std::basic_string]’: ./boost/property_tree/detail/xml_parser_read_rapidxml.hpp:89:10: internal compiler error: Segmentation fault: 11 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -gdwarf-2 -fexceptions -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I""."" -I""libs/graph/src"" -c -o ""bin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi/graphml.o"" ""libs/graph/src/graphml.cpp"" ...failed darwin.compile.c++ bin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi/graphml.o... ...skipped libboost_graph.a(clean) for lack of graphml.o... ...skipped libboost_graph.a for lack of graphml.o... ...skipped libboost_graph.a for lack of libboost_graph.a... ...failed updating 3 targets... ...skipped 5 targets... " roberts@… Boost 1.51.0 7545 filesystem::path::filename() specification wrong? filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-21T15:12:14Z 2012-10-21T15:12:14Z "According to the [[http://www.boost.org/doc/libs/1_51_0/libs/filesystem/doc/reference.html#Definitions|definition]] section of the boost::filesystem documentation, * a **path** consists of a root-name, a root-directory and (as relative-path) a sequence of filenames (all optional) * a **filename** is the name of a file, with slashes explicitly forbidden as part of the filename With these definitions, paths consisting entirely of root-name and/or root-directory parts (like {{{ ""//net""}}}, {{{ ""//net/"" }}} and {{{ ""/""}}}) do not contain filenames. On the other hand, the specification of path::filename() says // Returns: // {{{ empty() ? path() : *--end() }}} without discrimination between the different parts. Consequently, * {{{ Path(""//net"").filename() == Path(""//net"") }}} * {{{ Path(""/"").filename() == Path(""/"") }}} instead of the expected empty {{{Path()}}}, and containing the forbidden slash. **Proposed fix:** \\ To become consistent with the definitions, path::filename() should be specified as follows: // Returns: // {{{ relative_path().empty() ? path() : *--end() }}} " Stefan Große Pawig Boost 1.51.0 7558 MPI missing symbols using serialization's static library design mpi Boost 1.51.0 To Be Determined Bugs Matthias Troyer new 2012-10-23T16:01:52Z 2013-01-01T11:26:28Z "On Mac OS X Lion, we're seeing errors when linking our application using Boost.MPI. The application is rather large and uses Boost.Serialization for both checkpoint/restart and MPI communication. The checkpoint/restart bits made serialization a bit of a disaster in terms of compile times (due to headers including basically every other header in the project). To solve that problem, we followed the Boost.Serialization advice on static libraries. On Lion (and possibly elsewhere, but definitely on Lion) using the gcc front-end (i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)), we're seeing link failures due to serialization calls for MPI archivers not being found when compiling with -O2 or higher on Boost 1.50.0 and 1.51.0: CXXLD sst.x Undefined symbols for architecture x86_64: ""void SST::Introspector::serialize(boost::mpi::packed_iarchive&, unsigned int)"", referenced from: boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive &, void*, unsigned int) const in introspectedComponent.o boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive &, void*, unsigned int) consti n simulation.o While I could simply explicitly instantiate the missing archivers, that seems like a bad idea for something in the detail namespace and it appears that the list of archivers I'd need to instantiate has changed over time. The mailing list suggested that this sounded like a bug and that I should file a bug report. I've attached a test case that shows the problem. It's essentially the Boost.Serialization demo_pimpl example, but using MPI instead of a text archiver. " Brian Barrett Boost 1.51.0 7564 filesystem::path passed to GTest's assertion leads to stack overflow filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-24T16:25:22Z 2012-10-30T14:44:27Z "The following code: {{{ boost::filesystem::path p1(""c:\\123""), p2(""c:\\987""); ASSERT_EQ(p1, p2); }}} leads to stack overflow. It's because when GTest prints the assertion values it examines `path` as a container and try to print its items which are also `path` instances. This leads to recursion and stack overflow. Most probably, the problem should be solved at Gtest side, but personal I think the design when `path` consist of `path`s (infinite recursion) is not very good and should be fixed." oliora@… Boost 1.51.0 7567 Shadow warnings in timer.hpp timer Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-24T20:48:50Z 2012-10-24T20:48:50Z "This code {{{ #include int main(int, char *[]) { return 0; } }}} compiled with {{{ gcc -I/path/to/boost -c -Wshadow test.cxx }}} produces several warnings about shadowed class members: {{{ /opt/local/include/boost/timer/timer.hpp: In member function 'std::string boost::timer::cpu_timer::format(short int, const std::string&) const': /opt/local/include/boost/timer/timer.hpp:74: warning: declaration of 'format' shadows a member of 'this' /opt/local/include/boost/timer/timer.hpp: In constructor 'boost::timer::auto_cpu_timer::auto_cpu_timer(std::ostream&, short int, const std::string&)': /opt/local/include/boost/timer/timer.hpp:103: warning: declaration of 'format' shadows a member of 'this' /opt/local/include/boost/timer/timer.hpp:103: warning: declaration of 'places' shadows a member of 'this' /opt/local/include/boost/timer/timer.hpp: In constructor 'boost::timer::auto_cpu_timer::auto_cpu_timer(std::ostream&, const std::string&)': /opt/local/include/boost/timer/timer.hpp:107: warning: declaration of 'format' shadows a member of 'this' }}} This was compile on Mac Snow Leopard, gcc 4.2.1 with the boost distribution from MacPorts (although I doubt any of that matters)." Kenneth Moreland Boost 1.51.0 7568 Unused parameter and shadowed member warnings in errors.hpp program_options Boost 1.51.0 To Be Determined Bugs Vladimir Prus new 2012-10-24T21:24:06Z 2012-10-24T21:33:26Z "This code {{{ #include int main(int, char *[]) { return 0; } }}} compiled with {{{ gcc -I/path/to/boost -c -Wunused-parameter -Wshadow test.cxx }}} produces a warning about an unused parameter and several warnings about shadowed class members: {{{ /opt/local/include/boost/program_options/errors.hpp:253: warning: unused parameter 'option_name' /opt/local/include/boost/program_options/errors.hpp: In constructor 'boost::program_options::invalid_syntax::invalid_syntax(boost::program_options::invalid_syntax::kind_t, const std::string&, const std::string&, int)': /opt/local/include/boost/program_options/errors.hpp:311: warning: declaration of 'kind' shadows a member of 'this' /opt/local/include/boost/program_options/errors.hpp: In constructor 'boost::program_options::invalid_config_file_syntax::invalid_config_file_syntax(const std::string&, boost::program_options::invalid_syntax::kind_t)': /opt/local/include/boost/program_options/errors.hpp:331: warning: declaration of 'kind' shadows a member of 'this' /opt/local/include/boost/program_options/errors.hpp: In constructor 'boost::program_options::invalid_command_line_syntax::invalid_command_line_syntax(boost::program_options::invalid_syntax::kind_t, const std::string&, const std::string&, int)': /opt/local/include/boost/program_options/errors.hpp:350: warning: declaration of 'kind' shadows a member of 'this' }}} This was compile on Mac Snow Leopard, gcc 4.2.1 with the boost distribution from macports (although I doubt any of that matters). " Kenneth Moreland Boost 1.51.0 7574 Boost iostreams documentation has too many spell misses iostreams Boost 1.51.0 To Be Determined Bugs Jonathan Turkanis new 2012-10-25T22:26:39Z 2012-10-25T22:26:39Z "I have listed the spell misses I found in the boost iostreams documentation below (I tried e-mailing Jonathan Turkanis directly, but the e-mail address on the website seems to be not used anymore): I know this may sound trivial, but I think the overall quality of the site can be improved by fixing spelling errors. >2.1.4. Writing a container_device indicates how off is // interpretted: characters in the conatiner The implementation of seek is striaghforward. >2.2.10. Finite State Filters Boost Metaprogamming library >3.1 Concepts Boost.Iostreams prvides several >3.3 Generic Streams and Stream Buffers A C++ standard library charatcer traits type Assocaites the given instance of T >3.5 Code Conversion encapulates code conversion store charatcres >3.6 Asynchronous and Non-Blocking I/O synchronous and asynychronous with both aynchronous and non-blocking i/o >3.8 Pipelines filter-or-device consiting of >3.9 Views represnt the component >3.10 Exceptions thrown are propogated by the public the implementor has a choice convey aditional information exception is rasied due propogated as-is" spe56nw9@… Boost 1.51.0 7583 Missing file? system Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2012-10-27T23:25:28Z 2012-10-29T02:06:10Z "Build on Windows 7 using Cygwin. Is there libboost_system.a on the latest Boost build? I can't find it anywhere. Any difference between libboost_system.a and libboost_system-mt.a?" anon Boost 1.51.0 7584 boost::interprocess::unique_ptr ambiguous overload for ‘operator=’ interprocess Boost 1.51.0 To Be Determined Bugs Ion Gaztañaga new 2012-10-28T01:52:00Z 2012-10-28T01:52:00Z "Attached code fails to compile on MSVC2005 and MSVC2008: error C2593: 'operator =' is ambiguous main.cpp:23 It also fails on gcc-4.3.4 - http://ideone.com/p4EXFS (but with older Boost version)." Evgeny Panasyuk Boost 1.51.0 7606 u32regex causes bus error regex Boost 1.51.0 To Be Determined Bugs John Maddock new 2012-10-30T11:43:49Z 2012-12-20T16:50:53Z "The Unicode regular expression boost::make_u32regex (""[pq]\\.\\.[xy]""); causes a Bus Error. The same r.e. as a boost::regex is fine. The r.e. ""[pq][.][.][xy]"" seems to be okay, so it looks like the repeated ""\\."" is at least part of the problem. The following program Bus Errors on Solaris 10 with gcc 4.6.1 and Boost 1.51. (and all previous versions of Boost as far as I can tell.) ------ # include int main (int, char**) { const boost::u32regex re = boost::make_u32regex (""[pq]\\.\\.[xy]""); return 0; } -------" a.sanders@… Boost 1.51.0 7617 msvc 9.0 (64-bit): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data asio Boost 1.51.0 To Be Determined Bugs chris_kohlhoff new 2012-10-31T12:40:15Z 2012-10-31T12:40:15Z "Warnings occured when using boost::asio::ssl implementation in 64-bit configuration: 1>C:\builds\boost_1_51_0\boost/asio/ssl/impl/context.ipp(513) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data 1>C:\builds\boost_1_51_0\boost/asio/ssl/detail/impl/engine.ipp(169) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data 1>C:\builds\boost_1_51_0\boost/asio/ssl/detail/impl/engine.ipp(180) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data 1>C:\builds\boost_1_51_0\boost/asio/ssl/detail/impl/engine.ipp(299) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data 1>C:\builds\boost_1_51_0\boost/asio/ssl/detail/impl/engine.ipp(304) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data" anonymous Boost 1.51.0 7630 Range adaptors do not play nicely with range-based for loops range Boost 1.51.0 To Be Determined Bugs Neil Groves assigned 2012-11-02T18:37:22Z 2016-06-02T23:18:04Z "Consider the following C++11 code, adapted from the Range documentation: {{{ std::vector vec; for (int val : vec | boost::adaptors::reversed | boost::adaptors::uniqued) { // Do stuff with val } }}} The behavior of this natural-seeming code is actually undefined, due to a dangling reference: per the C++ standard, it is equivalent to {{{ { auto && __range = (vec | boost::adaptors::reversed | boost::adaptors::uniqued); for ( auto __begin = __range.begin(), __end = __range.end(); __begin != __end; ++__begin ) { int val = *__begin; // Do stuff with val } } }}} The problem is that the value returned by the subexpression `vec | boost::adaptors::reversed` is a temporary, so its lifetime ends at the end of the statement containing it, namely the declaration of `__range`. Thus, `__range` is left holding a dangling reference to the range it's adapting. The fix is for each range adaptor to use an rvalue-reference overload to detect whether the input range is a temporary, and if so, move it into the adaptor (i.e. with `std::move`) in order to extend its lifetime. " gromer@… Boost 1.51.0 7658 Ambiguity error with function overloads function Boost 1.51.0 To Be Determined Bugs Douglas Gregor new 2012-11-07T16:11:48Z 2012-11-07T16:11:48Z "The following code (relevant for a convenient thread-callback API) fails to compile with VC2010 due to a C2668 error: {{{ typedef boost::function fooCallback; typedef boost::function barCallback; void TestBF(fooCallback fc) {} void TestBF(barCallback bc) {} void MyFunc (int a, int b) {} int main(int argc, char **argv) { TestBF (&MyFunc); return 0; } }}} Without calling TestBF in main, everything is fine, there is no multiple definition error. A (most likely) related discussion thread can be found here: [http://boost.2283326.n4.nabble.com/Boost-Function-detecting-ignored-arguments-td4631919.html]. " Ulrich Brandstätter Boost 1.51.0 7709 Exception library always built as static library. exception Boost 1.51.0 To Be Determined Bugs Emil Dotchevski new 2012-11-18T11:46:58Z 2013-01-03T16:40:28Z "Flag link=shared does not influence on building type of exception library. The exception library always built as static library. " asoudarikov@… Boost 1.51.0 8203 filtering_ostream fails to write 0xFF characters with XCode iostreams Boost 1.51.0 To Be Determined Bugs Jonathan Turkanis new 2013-02-28T12:30:06Z 2013-09-23T09:00:45Z "I originally found the problem using the zlib_compressor to write to an ofstream. It worked correctly on Windows but in Xcode 4.6 occasionally a 0xFF character was not written to the stream. I managed to reduce the code required to reproduce it down to: // filtering stream fails to write 0xFF chars to ostream. Have // reproduced with ofstream too std::ostringstream ostm(std::ios_base::out | std::ios_base::binary); // Use empty filtering stream. Problem was originally found with //zlib_compressor boost::iostreams::filtering_ostream filterStream; filterStream.push( ostm ); const unsigned fileSize = 30000; for( unsigned nWritten = 0; nWritten < fileSize; ++nWritten) { const char eofTest = -1; // Only fails with 0xFF character any other value fine filterStream.write( &eofTest, sizeof eofTest); } filterStream.flush(); // This assert fails with Xcode 4.6 assert( ostm.str().size() == fileSize); The number of missing characters is equal to the number of times overflow gets called. I suspect it's something to do with EOF character detection as the problem doesn't happen with other character values. I was unable to find the exact reason for the problem but was able to get it work by changing this code in write.hpp: static std::streamsize write(T& t, const typename char_type_of::type* s, std::streamsize n) { return t.rdbuf()->sputn(s, n); } to: static std::streamsize write(T& t, const typename char_type_of::type* s, std::streamsize n) { t.write(s, n); return n; } It looks like bypassing the ofstream in Xcode and going to the lower level rdbuf::sputn causes the issue. " support@… Boost 1.51.0 8425 [filesystem][documentation] copy_file cannot overwrite executing binary filesystem Boost 1.51.0 To Be Determined Bugs Beman Dawes new 2013-04-10T10:33:32Z 2013-04-10T10:33:32Z "If trying to copy a binary file over the currently executing program, then the ''copy_file'' call fails even though it has the ''overwrite_if_exists'' flag. Examining the code, this appears to be because ''copy_file_api'' (Linux) uses popen, thus attempts to write to the same file data as distinct from creating a new file node. The peculiar error ""Text file busy: "" is reported. Given that the Windows version would not (AFAIK) be able to achieve this anyway, I would say that this behaviour is ""by design"" but suggest a documentation update for ''copy_file''. " boost@… Boost 1.51.0 8540 Named Condition Variable hanging. interprocess Boost 1.51.0 To Be Determined Bugs Ion Gaztañaga new 2013-05-02T04:06:26Z 2013-05-13T21:32:21Z "Hi, I am having problems with the shared memory code below. I can get this working on a Windows, MAC and OpenSUSE machine. However this same code does not work on my redhat v5.0 workstation machine. It appears to hang on the wait (condition variable). Any idea why this would be the case on this particular OS? I can't find anything online on the subject. Website of code: http://en.highscore.de/cpp/boost/interprocesscommunication.html#interprocesscommunication_managed_shared_memory #include #include #include #include #include int main() { boost::interprocess::managed_shared_memory managed_shm(boost::interprocess::open_or_create, ""shm"", 1024); int *i = managed_shm.find_or_construct(""Integer"")(0); boost::interprocess::named_mutex named_mtx(boost::interprocess::open_or_create, ""mtx""); boost::interprocess::named_condition named_cnd(boost::interprocess::open_or_create, ""cnd""); boost::interprocess::scoped_lock lock(named_mtx); while (*i < 10) { if (*i % 2 == 0) { ++(*i); named_cnd.notify_all(); named_cnd.wait(lock); } else { std::cout << *i << std::endl; ++(*i); named_cnd.notify_all(); named_cnd.wait(lock); } } named_cnd.notify_all(); boost::interprocess::shared_memory_object::remove(""shm""); boost::interprocess::named_mutex::remove(""mtx""); boost::interprocess::named_condition::remove(""cnd""); } " ealfay@… Boost 1.51.0 8689 Solaris: make_shared compile error smart_ptr Boost 1.51.0 To Be Determined Bugs Peter Dimov new 2013-06-12T10:19:47Z 2013-06-12T10:19:47Z "Compile this with Forte 11 (Sun C++ 5.8 Patch 121017-08 2006/12/06): {{{ #include struct Foo { virtual ~Foo() {} }; void f() { boost::make_shared(); } }}} Compiler error is: {{{ ""/usr/local/include/boost/smart_ptr/make_shared.hpp"", line 60: Error: Non-const function Foo::__SLIP.DELETER__C() called for const object. ""/usr/local/include/boost/smart_ptr/make_shared.hpp"", line 86: Where: While instantiating ""boost::detail::sp_ms_deleter::destroy()"". ""/usr/local/include/boost/smart_ptr/make_shared.hpp"", line 86: Where: Instantiated from boost::make_shared(). ""test.cpp"", line 3: Where: Instantiated from non-template code. }}} Further testing shows the compiler incorrectly refuses to compile an explicit destructor call on any const T* with a virtual destructor. Would it be worth explicitly removing const from sp_ms_deleter's template parameter?" matthew.bergin@… Boost 1.51.0 8978 Segfault crash in boost.python with keyword arguments and overloads. python USE GITHUB Boost 1.51.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-08-08T18:28:09Z 2013-08-08T18:32:27Z "Please see the thread on the python c++ sig email list here (lacking protocol prefix to pass spam check): mail.python.org/pipermail/cplusplus-sig/2013-August/017012.html Here is a minimal repro case: ------------------------------------------------ // C++ #include static void f1(int a0, int a1) { } static void f2(int a0, int a1, int a2) { } BOOST_PYTHON_MODULE(kwargCrash) { boost::python::def(""f"", f1, (arg(""a1"")=2)); boost::python::def(""f"", f2, (arg(""a2"")=2)); } # Python import kwargCrash kwargCrash.f(0, a1=2) ------------------------------------------------ Version found info: boost 1.51.0, Python 2.7.5, gcc 4.8.1. Please see the list thread linked above for a detailed explanation of why the crash occurs. In short, boost.python calls PyTuple_GET_ITEM() on None, and then unconditionally uses the result as a key to look up in a dict. This boost.python code hasn't changed in a long time. I suspect Python has changed, and is now returning NULL here instead of None, and calling PyDict_GetItem with NULL crashes. Here is a patch to the boost.python code that fixes the bug. It simply checks to see if it got None from the m_arg_names tuple, and if so, that means the overload does not accept a keyword arg in that position, so it rejects the overload. This fixes the crash and works correctly across our codebase and testsuite. If the patch looks good, it would be great to apply it and add the repro case to the test suite. Thanks! --- ./libs/python/src/object/function.cpp.orig 2013-07-22 17:38:54.000000000 -0700 +++ ./libs/python/src/object/function.cpp 2013-08-07 10:25:26.963988000 -0700 @@ -182,6 +182,16 @@ // Get the keyword[, value pair] corresponding PyObject* kv = PyTuple_GET_ITEM(f->m_arg_names.ptr(), arg_pos); + // If kv is None, this overload does not accept a + // keyword argument in this position, meaning that + // the caller did not supply enough positional + // arguments. Reject the overload. + if (kv == Py_None) { + PyErr_Clear(); + inner_args = handle<>(); + break; + } + // If there were any keyword arguments, // look up the one we need for this // argument position " amohr@… Boost 1.51.0 9521 Exception when passing buffer to read_xml() property_tree Boost 1.51.0 To Be Determined Bugs Sebastian Redl new 2013-12-24T05:05:03Z 2013-12-24T05:54:48Z "Hi, I have taken reference from https://svn.boost.org/trac/boost/ticket/3831 I have made changes for read_xml(), now I am getting below exception ""ex.what():: (1): expected <"" code: string fileDataStr ((const char*)xmlFileBuffer); boost::property_tree::ptree pt; std::stringstream ss; ss< Boost 1.51.0 7064 hex() with flag for lowercase output algorithm Boost 1.51.0 To Be Determined Feature Requests Marshall Clow new 2012-07-02T14:27:55Z 2016-01-31T09:15:17Z Could you provide a paramter for hex() to indicate lowercase output is desired? Olaf van der Spek Boost 1.51.0 7082 Add support for benchmarking test Boost 1.51.0 To Be Determined Feature Requests Gennadiy Rozental new 2012-07-05T05:32:07Z 2012-07-31T15:38:08Z "One useful thing with boost test would be to run the tests in a ""benchmarking mode"". The general idea is to be able to run many iterations of all tests to get an idea of their performance. I believe the following changes would be sufficient: - BOOST_AUTO_TEST_CASE could have an additional optional parameter: number_of_iterations. This is set by the user manually. For example: BOOST_AUTO_TEST_CASE(my_test_case, 10000). If not passed in, it would default to 1. - A new command line parameter would trigger benchmarking: say --benchmarking. When passed in, all tests would run number_of_ iterations times. - the elapsed time for a test would then be the accumulated time taken by all iterations This would be great for nightlies. This issue was discussed a bit on the mailing-list on this thread: http://lists.boost.org/boost-users/2011/01/65790.php" marco.craveiro@… Boost 1.51.0 7107 Support property bundles as default parameter in graph algorithms graph Boost 1.51.0 To Be Determined Feature Requests Jeremiah Willcock new 2012-07-09T16:07:09Z 2012-07-09T16:07:09Z "Bundled properties don't support default parameters as internal properties do. Adding a possibility to tag members of a bundle would solve that issue. {{{ #include #include #include #include using namespace std; using namespace boost; struct City{}; struct Highway { double weight; }; typedef adjacency_list< listS, vecS, bidirectionalS, City, Highway> Map; typedef adjacency_list < listS, vecS, directedS, no_property, property < edge_weight_t, int > > Map2; int main() { Map m; Map2 m2; vector distances(num_vertices(m2)); dijkstra_shortest_paths( m2, *vertices(m2).first, distance_map(make_iterator_property_map(distances.begin(), get(vertex_index, m2)))); // does not work // dijkstra_shortest_paths( // m, *vertices(m).first, // boost::distance_map(make_iterator_property_map(distances.begin(), // get(vertex_index, m)))); return 0; } }}} One solution could be to add an optional tags typedef that contains an mpl::map between member pointers and property enum types. Alternatively, a traits class could be specified to map to the right enum type. Maybe someone can also come up with a nice mechanism to transparently tag a member." philipp.moeller@… Boost 1.51.0 7153 it is not possible to add methods in enum_ using def python USE GITHUB Boost 1.51.0 To Be Determined Feature Requests Ralf W. Grosse-Kunstleve new 2012-07-20T08:36:16Z 2012-07-21T21:19:11Z "Sometimes it is required to add method to exported enum to Python using Boost.Python. For example, if we want to specify __repr__ method to enum. But the following code wont work. enum_(""my_enum"") .def(""__repr__"", &my_enum_to_string) ; " tokiloki7@… Boost 1.51.0 7186 BOOST_BIND_ENABLE_STDCALL causes bind compilation to fail on x64 bind Boost 1.51.0 To Be Determined Feature Requests Peter Dimov new 2012-07-31T17:08:12Z 2012-08-15T19:39:48Z "On Win32, in order to use WINAPI ( = !__stdcall) functions with boost, developers must define BOOST_BIND_ENABLE_STDCALL before including bind.hpp On Win64 however, !__stdcall and !__cdecl are equivalent. When the macro BOOST_BIND_ENABLE_STDCALL is defined, bind.hpp fails compilation for multiply defined functions. This request is that the macro BOOST_BIND_ENABLE_STDCALL will only be effective is possible. " mitmit@… Boost 1.51.0 7187 boost::rational doesn't provide stream operators for wide streams rational Boost 1.51.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-08-01T09:29:00Z 2013-08-30T00:22:02Z There are `std::istream& operator>> (std::istream& is, rational& r)` and `std::ostream& operator<< (std::ostream& os, const rational& r)`, but no wide stream versions. Mathias Hasselmann Boost 1.51.0 7192 [mpl] std::integral_constant support mpl Boost 1.51.0 Boost 1.52.0 Feature Requests Aleksey Gurtovoy new 2012-08-02T21:48:07Z 2012-08-05T17:13:28Z "The following reasonable-seeming use of mpl::plus doesn't compile: {{{ #include #include typedef std::integral_constant one; typedef boost::mpl::plus::type two; }}} That's because mpl only works with its own integral constant wrappers, not the standard one. That seems unfortunate to me. Is there any interest in supporting this? Here's the error (from clang trunk with glibc++): {{{ 1> In file included from main.cpp:2: 1> In file included from /home/Eric/boost/org/trunk/boost/mpl/plus.hpp:19: 1> In file included from /home/Eric/boost/org/trunk/boost/mpl/aux_/arithmetic_op.hpp:34: 1> In file included from /home/Eric/boost/org/trunk/boost/mpl/aux_/include_preprocessed.hpp:37: 1> /home/Eric/boost/org/trunk/boost/mpl/aux_/preprocessed/gcc/plus.hpp:60:25: error: no type named 'tag' in 'std::integral_constant' 1> typedef typename T::tag type; 1> ~~~~~~~~~~~~^~~ 1> /home/Eric/boost/org/trunk/boost/mpl/aux_/preprocessed/gcc/plus.hpp:111:20: note: in instantiation of template class 'boost::mpl::plus_tag >' requested here 1> typename plus_tag::type 1> ^ }}} " Eric Niebler Boost 1.51.0 7197 Access regex_id from semantic action xpressive Boost 1.51.0 To Be Determined Feature Requests Eric Niebler new 2012-08-06T08:38:17Z 2012-08-06T08:38:17Z "It would be useful to be able to access from a semantic action the regex_id of the regex to which the semantic action belongs. I propose a special symbol named _regex_id_ for this purpose. Examples: {{{ sregex rx = xpr[cout << _regex_id_]; regex_match(str, rx); // prints rx.regex_id() on success }}} {{{ sregex sub = xpr[cout << _regex_id_]; sregex rx = sub >> another_xpr; regex_match(str, rx); // prints sub.regex_id() on success (not rx.regex_id()) }}} " zeratul976@… Boost 1.51.0 7199 Lazy at_key for phoenix phoenix Boost 1.51.0 To Be Determined Feature Requests Thomas Heller new 2012-08-07T00:41:05Z 2012-08-07T01:58:18Z "Teleported from [http://boost.2283326.n4.nabble.com/Lazy-at-key-for-phoenix-2-td3746575.html spirit-general aug 2011]: > I needed a lazy version of at_key to deal with fusion associative > sequences in semantic actions. The simple diff attached is based on the > phoenix at.hpp file. There is also a small test program attached. > > Maybe ""we"" can add it to the Spirit 2 trunk? > > Thanks - michael " Sehe Boost 1.51.0 7225 xpressvie Symbol Tables,I want get mapped value by iterator ,not by semantic action xpressive Boost 1.51.0 To Be Determined Feature Requests Eric Niebler new 2012-08-13T13:01:43Z 2012-08-13T13:22:35Z "std::map< std::string, string> ones_map = map_list_of(""one"",""1"")(""two"",""2""); std::string str( ""one two three""); for(sregex_token_iterator cur( str.begin(), str.end(), number_rx ); ; cur != sregex_token_iterator(); ++cur ) { std::cout << *cur << ' ';'''//will print 1 2''' } or str = regex_replace( str, ones_map, ""$1""); '''can get ""1 2""''' or, has existed an easy way? thank you!" taodm@… Boost 1.51.0 7247 Expose empty_arg_list to public interface parameter Boost 1.51.0 To Be Determined Feature Requests Daniel Wallin new 2012-08-18T17:14:03Z 2016-02-23T10:48:56Z "The empty_arg_list is defined in the parameter::aux namespace which indicates that this class is not intended to be used by users. However, in generic code it is often useful to be able to pass empty parameter packs to functions when all arguments are optional. Please, make the empty_arg_list class public. " Andrey Semashev Boost 1.51.0 7250 rational.hpp imports header iostream even if stream operators are not needed rational Boost 1.51.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-08-19T11:21:21Z 2013-08-28T07:12:49Z "Many Boost libraries have header variants with and without iostream support: {{{ #include ""boost/date_time/posix_time/posix_time.hpp"" //include all types plus i/o }}} or {{{ #include ""boost/date_time/posix_time/posix_time_types.hpp"" //no i/o just types }}} Likewise, there exists a macro BOOST_NO_IOSTREAM, which should prevent from being included, see ticket #4060. Neither approaches are available in boost::rational<> but either could be put to good use." Levente Hunyadi Boost 1.51.0 7276 Add move semantics tuple Boost 1.51.0 To Be Determined Feature Requests Joel de Guzman new 2012-08-25T08:12:34Z 2013-02-26T21:40:35Z Boost.Tuple lack move semantics for its arguments. It should be great if it can comply with the c++11 standard when the compiler provides rvalue references and use Boost.Move otherwise. viboes Boost 1.51.0 7303 XML Serialization - Skip/Ignore unexpected data. serialization Boost 1.51.0 To Be Determined Feature Requests Robert Ramey new 2012-08-30T12:40:15Z 2013-02-19T12:51:23Z "Please find attached an extension to boost::serialization. The purpose of this work is to add some support for forward compatibility of boost::serialization XML files; specifically the ability to skip/ignore unexpected data. I would describe the patch as a ""first working version"", the tests all pass (gcc 4.6) with some expected failures (see below), but further work is required. I guess I'm trying to gauge interest, get some feedback on the implementation, and get inspired enough to invest more time in it. == Implementation == Two new archive types, `rapidxml_iarchive`, and `rapidxml_wiarchive`, have been created. Their implementation is based on `xml_[w]iarchive` with the XML parsing provided by the rapidxml parser used in boost::property_tree. This seemed the best approach to the problem as it avoided issues with `ungetc`. Polymorphic versions of `rapidxml_[w]iarchive` have not been implemented. == Test status == All tests are passing with the following caveats: * Polymorphic rapidxml archives have not been implemented resulting in 6 tests failing to compile * The following tests have had to be tweaked to accommodate rapidxml_[w]iarchive not ignoring element names * test_derived_class * test_recursion * test_nvp * test_non_default_ctor2 * test_diamond * test_diamond_complex == Notes and further work == The current implementation is a ""first working version"" and requires some polishing. There are a number of things that require further investigation, broadly speaking they can be categorized as: * Better reuse * Factor out a base class (templated on char type) for `rapidxml_iarchive` and `rapidxml_wiarchive` * Some code could be shared between `rapidxml_[w]iarchive` and `xml_[w]iarchive` * See `[rapid]xml_iarchive::load(std::wstring&)` * See `[rapid]xml_wiarchive::load(std::string&)` * Better error handling * Flag support * Currently there are no plans to support any kind of flags/alternative behaviour so the existing flag code may need to be removed * Miscellany * Go through comments to see what's still relevant * Replace history map with vector " anonymous Boost 1.51.0 7333 Provide User-defined Literals for chrono durations on compilers supporting them chrono Boost 1.51.0 To Be Determined Feature Requests viboes assigned 2012-09-06T04:13:35Z 2012-09-08T06:46:29Z boost::chrono::duration suffixes h, min, s, ms, us, ns in namespace boost::suffixes::chrono viboes Boost 1.51.0 7424 Request for more Accumulators rolling capabilities accumulator Boost 1.51.0 To Be Determined Feature Requests Eric Niebler new 2012-09-26T12:27:57Z 2012-09-26T12:27:57Z "Hello, it would be really cool if the Boost.Accumulators library had other `rolling` features extending what already exists (`rolling_mean` etc.). My understanding of the wikipedia page on ""algorithms for calculating variance"" is that statistical moments could be calculated in a rolling manner. This is just a suggestion, thanks for everything! Arthur" Arthur Boost 1.51.0 7179 boost:::iostream::inverse doesn't work with char_type other then char iostreams Boost 1.51.0 To Be Determined Patches Jonathan Turkanis new 2012-07-26T13:37:25Z 2012-07-26T13:37:25Z "See file \boost\iostreams\invert.hpp This lines {{{ std::streamsize read(Source& src, char* s, std::streamsize n) ... std::streamsize write(Sink& dest, const char* s, std::streamsize n) }}} should be changed with: {{{ std::streamsize read(Source& src, char_type* s, std::streamsize n) ... std::streamsize write(Sink& dest, const char_type* s, std::streamsize n) }}} for appropriate handling of unsigned char, for example. " mexal@… Boost 1.51.0 7193 vacpp.jam improvements build Boost 1.51.0 To Be Determined Patches Vladimir Prus new 2012-08-03T20:02:50Z 2012-08-03T20:02:50Z "* Common up Linux linking with `gcc.jam`. * Make use of `$(CONFIG_COMMAND)` instead of hard-coded names. * Define inlining options. * Set `-bmaxdata` for 32-bit on AIX. " Hubert Tong Boost 1.51.0 7469 Parallel Graph: redistribute() does not compile for bidirected graphs graph Boost 1.51.0 To Be Determined Patches Jeremiah Willcock new 2012-10-04T13:32:07Z 2012-10-04T13:32:07Z "Trying to to use redistribute on a adjacency_list with the bidirectionalS tag leeds to compile erros. I tracked down the problem to the point, that there is a additional internal property on vertices for this type of graphs. This property is not properly handeled during the call of redistribute. Attached is a patch including a test." Christoph Koke Boost 1.51.0 7361 Forbid compilation of leaking mistake. program_options Boost 1.51.0 To Be Determined Support Requests Vladimir Prus new 2012-09-10T17:26:08Z 2013-03-27T06:52:48Z "I was adding program_option to my prorgam when I discovered a related leak. Fortunately it was false positive, but it pointed a hidden problem. I used: - Visual Studio 2012 - Boost 1.51.0 - Visual Leak Detector to detect the leak This, generate the leak: {{{ #include int main() { namespace bpo = boost::program_options; bpo::options_description options( ""Options"" ); options.add_options() ( ""test"" , ""Test."" ) , ( ""value"" , bpo::value(), ""Value."" ) ; } }}} The second option is leaking. The reason is because of the comma in the beginning of the line. I first added it by reflex when using function arguments so it took me some time to find what was leaking. Part of the time I spend was figuring out why it don't leak if you don't set a value type: {{{ #include int main() { namespace bpo = boost::program_options; bpo::options_description options( ""Options"" ); options.add_options() ( ""test"" , ""Test."" ) , ( ""value"" , ""Value."" ) // no leak but still wrong! ; } }}} The main problem I see with this is that it is compiled without any problem nor warning. So here is my question: Would it be possible to forbid comma operator with options_description_easy_init?" mjklaim@… Boost 1.51.0 10248 Understanding generated files / targets. build Boost 1.51.0 To Be Determined Support Requests Vladimir Prus new 2014-07-27T18:41:49Z 2015-02-27T01:38:18Z "Attached is a .zip file containing a detailed Jamroot attempting to understand how generated files and dependency analysis work. There are a few points that are not clear to me, so I hope someone can take a look and see of any of these behaviors are actually bugs. " anonymous Boost 1.52.0 7261 Boost.Units quantity output overflows ostream width field units Boost 1.52.0 To Be Determined Bugs Steven Watanabe new 2012-08-22T16:38:37Z 2012-08-22T16:38:37Z "Boost.Units quantity output overflows ostream width field quantity ql = 2345.6 * meters; std::cout << std::setw(20) << ql << std::endl; outputs 22 chars instead of 20 chars. The reason is that the first item value() is output using the ios width setting, but the second unit() 'm' (and separating space) is not. if os.width() > 0 then a way is to build a single string of the quantity with the width specified for example using an ostringstream (otherwise, outputing value and unit (perhaps autoprefixed to km) severally would overflow the width). (else if os.width() <= 0 then output directly to ostream os as at present). A test and a patch to deal with this is attached. (This is not necessarily the most efficient way to deal with this but appears to work)." Paul A. Bristow Boost 1.52.0 7268 Invalid DST for Europe/Paris before 1996 (using tzdatabase) date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2012-08-23T09:34:24Z 2012-08-23T09:34:24Z "Hello, Let me start with an example : For 1992, boost::datetime gives me (using the given timezone database) DST period from 1992-Mar-29 02:00:00 TO 1992-Oct-25 03:00:00 That's simply wrong. For 1996 and following years, it's correct, simply because, in 1996, France decided that DST occurs in the end of October. Before that date, it occured in the end of September. Here is a table of true DST dates (dates are in European form, ""day/month"") : {{{ 1976 : 28/3 -- 26/9 1977 : 3/4 -- 5/9 1978 : 2/4 -- 1/10 1979 : 1/4 -- 30/9 1980 : 6/4 -- 28/9 1981 : 29/3 -- 27/9 1982 : 28/3 -- 26/9 1983 : 27/3 -- 25/9 1984 : 25/3 -- 30/9 1985 : 31/3 -- 29/9 1986 : 30/3 -- 28/9 1987 : 29/3 -- 27/9 1988 : 27/3 -- 25/9 1989 : 26/3 -- 24/9 1990 : 25/3 -- 30/9 1991 : 31/3 -- 29/9 1992 : 29/3 -- 27/9 1993 : 28/3 -- 26/9 1994 : 27/3 -- 25/9 1995 : 26/3 -- 24/9 ================ 1996 : 31/3 -- 27/10 1997 : 30/3 -- 26/10 1998 : 29/3 -- 25/10 1999 : 28/3 -- 31/10 2000 : 26/3 -- 29/10 2001 : 25/3 -- 28/10 2002 : 31/3 -- 27/10 2003 : 30/3 -- 26/10 2004 : 28/3 -- 31/10 2005 : 27/3 -- 30/10 2006 : 26/3 -- 29/10 2007 : 25/3 -- 28/10 2008 : 30/3 -- 26/10 2009 : 29/3 -- 25/10 2010 : 28/3 -- 24/10 2011 : 27/3 -- 30/10 }}} Thank you, Guillaume" guillaume.v.sanchez@… Boost 1.52.0 7274 svn server error 413 trac / subversion Boost 1.52.0 To Be Determined Bugs Douglas Gregor new 2012-08-24T12:10:40Z 2012-09-18T17:01:50Z "Hi! I cant preform svn update, on day old copy, without geting this error message: svn: Server sent unexpected return value (413 Request Entity Too Large) in response to REPORT request for '/repository/!svn/vcc/default' regard.bartus" bartus@… Boost 1.52.0 7288 Under windows it is possible to use io_service::poll without a previous call to reset! asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2012-08-26T11:58:05Z 2012-08-26T11:58:42Z "I found out, that it is possible under windows to use io_service::poll without calling reset on the same service before. Under Linux the internal variable ""stopped_"" is checked in the immplementation. The windows immplementation doesent do that, although the documentation says: ""The poll() function runs handlers [...] until the io_service has been stopped [...].""" code.databyte@… Boost 1.52.0 7295 mapped_region large file throw exception interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2012-08-27T09:09:08Z 2012-09-18T21:37:23Z "using namespace boost::interprocess; const std::size_t FileSize = 10000000000; //if(argc == 1) { //Parent process executes this { //Create a file std::filebuf fbuf; fbuf.open(""e:\\output\\file.bin"", std::ios_base::in | std::ios_base::out | std::ios_base::trunc | std::ios_base::binary); //Set the size fbuf.pubseekoff(FileSize-1, std::ios_base::beg); fbuf.sputc(0); } //Remove file on exit struct file_remove { ~file_remove (){ file_mapping::remove(""file.bin""); } } destroy_on_exit; //Create a file mapping file_mapping m_file(""e:\\output\\file.bin"", read_write); //Map the whole file with read-write permissions in this process try{ mapped_region region(m_file, read_write); //Get the address of the mapped region void * addr = region.get_address(); std::size_t size = region.get_size(); //Write all the memory to 1 std::memset(addr, 1, size); } catch( boost::interprocess::interprocess_exception& ex ){ cout << ""\njjhhh"" << ex.what() << endl; } //Launch child process //std::string s(argv[0]); s += "" child ""; // if(0 != std::system(s.c_str())) return 1; } mapped_region region(m_file, read_write); throw a exception" anonymous Boost 1.52.0 7315 A fusion adapted struct with a single member doesn't work with the Qi list operator spirit Boost 1.52.0 To Be Determined Bugs Joel de Guzman new 2012-09-01T07:09:39Z 2012-09-01T07:09:39Z As demonstrated in the attached file a fusion adapted struct with a single member doesn't work with the Qi list operator whereas its equivalent based on the kleen operator does work. vexocide Boost 1.52.0 7332 Missing inline directives in crc.hpp crc Boost 1.52.0 To Be Determined Bugs Daryle Walker new 2012-09-05T20:34:12Z 2012-09-05T20:39:23Z see diff with fix Sergey Fokin Boost 1.52.0 7340 Visual studio iostreams warnings iostreams Boost 1.52.0 To Be Determined Bugs Jonathan Turkanis new 2012-09-06T14:41:27Z 2013-05-31T21:55:43Z "Visual studio 2010 raises ""conditional expression is constant"" warnings from chain.hpp. This can be fixed by simply including the disable_warnings header in chain.hpp Visual studio 2010 raises various ""unreachable code"" warnings. This can be fixed by adding warning 4702 in disable_warnings.hpp Visual studio 2012 raises a ""inherits via dominance"" warning from stream.hpp (see http://connect.microsoft.com/VisualStudio/feedback/details/733720/inheriting-from-std-fstream-produces-c4250-warning for the cause of this warning). This requires including the disable_warnings header in stream.hpp and adding warning 4250 to disable_warnings. " Alan Birtles Boost 1.52.0 7344 Free properties not available in conditional rule build Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2012-09-07T18:37:04Z 2012-09-25T20:04:16Z "Free properties are not propagated to common-properties2 rule in targets.jam file. Rationale behind this is to optimise caching of already created property-set objects (exactly as stated in rule common-properties, which contains the call). However, this optimisation causes that free features are not passed e.g. to user-defined rules used for evaluation of properties (see example below in the second code listing). Therefore I would propose to drop this optimisation and propagate also free properties (see code listing below). The other possible solution would be to just pass free properties to the common-properties2 rule and thus make them available to the algorithm, but this will introduce another bug (property-set object from cache will be used even though it contains values created from different free properties). == SOLUTION PROPOSAL == {{{ rule common-properties ( build-request requirements ) { local props = [ property-set.create [ $(requirements).base ] [ $(requirements).incidental ] [ $(requirements).free ] ] ; local key = .rp.$(build-request)-$(props) ; if ! $($(key)) { $(key) = [ common-properties2 $(build-request) $(props) ] ; } return $($(key)) ; } }}} == BUG REPRODUCTION == {{{ import feature ; feature.feature define-prefix : : free ; rule define-target-os ( properties * ) { local define-prefix = [ feature.get-values define-prefix : $(properties) ] ; define-prefix ?= """" ; local target-os = [ feature.get-values target-os : $(properties) ] ; return $(define-prefix)TARGET_OS_$(target-os:U) ; } project /root : requirements FOOBAR_ @define-target-os ; exe hello : #sources hello.cpp : #requirements ; }}} " anonymous Boost 1.52.0 7406 Documentation lists the wrong constructor for char_delimiters_separator tokenizer Boost 1.52.0 To Be Determined Bugs jsiek new 2012-09-22T07:15:09Z 2012-09-22T16:52:45Z "http://www.boost.org/doc/libs/1_39_0/libs/tokenizer/char_delimiters_separator.htm lists as the constructor: {{{ explicit char_delimiters_separator(bool return_delims = false, const Char* returnable = """",const Char* nonreturnable = """" ) }}} when it is in fact: {{{ explicit char_delimiters_separator(bool return_delims = false, const Char* returnable = 0,const Char* nonreturnable = 0) }}} from token_functions.hpp" Therefore Boost 1.52.0 7450 Buggy rounded_arith.hpp interval Boost 1.52.0 To Be Determined Bugs Boris Gubenko new 2012-10-01T10:33:56Z 2012-10-01T10:33:56Z "The rounded_arith file is currently buggy, because it misses an explicit this-> to some function calls (due to the evolution in template compilation of g++ since version 4.0). I attach the small patch to get it working." Luca Di Gaspero Boost 1.52.0 7453 Dead link in date::time docs date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2012-10-01T18:33:16Z 2012-10-01T18:33:16Z "In the list of references http://boost-sandbox.sourceforge.net/doc/html/date_time/details.html#date_time.references the link to Will Linden's list of calendar links http://www.ecben.net/calendar.shtml is a dead link." wlandry@… Boost 1.52.0 7502 Planarity test runs in quadratic time on some graphs graph Boost 1.52.0 To Be Determined Bugs Jeremiah Willcock new 2012-10-13T16:45:19Z 2012-10-13T19:52:39Z "The planarity test in the graph library (boyer_myrvold_planarity_test) seems to run in quadratic time for a certain class of graph. I attached a program that demonstrates the problem. The program reads number N from stdin, generates a certain graph and runs the planarity test on it. The graph is a bipartite graph K_{2,n} with some additional edges -- specifically, 2 ""left"" vertices of the bipartite graph are connected with an edge and n ""right"" vertices form a path. Note that the order of edge insertion matters -- the problem disappears if we change it. Unfortunately I don't understand the planarity test enough to fix the problem. What I established (and what makes me believe it runs in quadratic time) is that for my graph in function walkdown (in planar_details/boyer_myrvold_impl.hpp; I understand the function is called once for each vertex) there is a loop on line 663 that is executed k times when the function was called for (k+1)-th time. This loop seems to have to do with Kuratowski subgraph detection, but I can't say anything more about it. My configuration is Mac OS 10.8 with MacPorts, g++ 4.7 and boost 1.51. I also reproduced it on some Linux and Windows configurations. " Jan Hązła Boost 1.52.0 7504 boost::interprocess::basic_vectorbuf calls std::char_traits::pbump() with potentially mismatching data type interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2012-10-14T22:57:17Z 2012-10-14T22:57:17Z "`boost::interprocess::basic_vectorbuf::seekoff()` makes a call to `base_t::pbump()`, but the datatypes (may) mismatch for the parameter (and do on my system). `std::char_traits::pbump()` takes an `int` (according to the standard), but `basic_vectorbuf()` is passing it a value of type `CharTraits::off_type`, which is implementation defined. Since `std::char_traits::off_type` is `__int64` on my system, I am getting a warning about a conversion from `__int64` to `int`. I don't know what the most appropriate solution is (maybe just a `static_cast`), but it would be nice to have this resolved so I can get back down to 0 warnings in my codebase. I am using Visual Studio 2010 and the latest Boost (and I just check svn trunk and it has the same issue). I get this warning when creating a `boost::interprocess::basic_vectorstream` like so: `basic_vectorstream, std::char_traits> vs;`" mbradshaw@… Boost 1.52.0 7533 Quickbook build fails without bjam --hash if filenames are too long build Boost 1.52.0 Boost 1.52.0 Bugs Vladimir Prus new 2012-10-19T14:11:34Z 2012-10-19T17:44:16Z "Quickbook documentation (usually when using both Doxygen and auto-indexing)can cause filenames to become too long so xsltproc fails to process correctly. A sample of the format of an error message is shown below. The issue can be triggered by deep nesting of folders, creating very long filename, and will often only occur when autoindex is added with --enable-index (thereby increasing folder depth). The problem was very puzzling to diagnose because it occured with apparently identical files on different systems! The 'cure' is to use the undocumented bjam --hash option (which compresses the filename). This ticket is to provide a record of this in Trac and to request that the --hash option be documented. Building the Odeint docs with automatic index generation enabled. ...patience... ...patience... ...found 1925 targets... ...updating 8 targets... doxygen-action bin\msvc-10.0\debug\auto-index-internal-on\auto-index-verbose-on\auto-index-on\threading-multi\reference-xml.xml-dir finished... xslt-xsltproc.windows bin\msvc-10.0\debug\auto-index-internal-on\auto-index-verbose-on\auto-index-on\threading-multi\reference-xml.doxygen file:///I%3A/boost-sandbox/odeint-v2/libs/numeric/odeint/doc/bin/msvc-10.0/debug/auto-index-internal-on/auto-index-verbose-on/auto-index-on/threading-multi/reference-xml/index.xml:2067: parser error : Opening and ending tag mismatch: compound line 1792 and doxygenindex ^ " Paul A. Bristow Boost 1.52.0 7538 boost::spirit::istream_iterator does not handle incrememt correctly at the end spirit Boost 1.52.0 To Be Determined Bugs Joel de Guzman new 2012-10-21T03:12:10Z 2015-05-09T23:08:23Z "{{{boost::spirit::istream_iterator}}} (or its super class {{{multi_pass}}} )does not handle incrememt correctly at the end position. One more end char will be yielded which is incorrect: {{{ #!cpp #include #include #include int test_main(int, char*[]) { std::istringstream in(""12""); boost::spirit::istream_iterator it(in), end; BOOST_CHECK(*it++ == '1'); BOOST_CHECK(*it++ == '2'); // it should be end now, however it failed BOOST_CHECK(it == end); // !failed here // and yield the last char once more BOOST_CHECK(*it != '2'); // !failed here // only after another dereference will it really equal to end BOOST_CHECK(it == end); return 0; } }}} The output is: {{{ test.cpp(14): test it == end failed in function: 'int test_main(int, char **)' test.cpp(16): test *it != '2' failed in function: 'int test_main(int, char **)' **** 2 errors detected }}} #6750 may be a duplicated issue. Reproducable under: * Apple clang version 4.1 (tags/Apple/clang-421.11.65) (based on LLVM 3.1svn) * Target: x86_64-apple-darwin12.2.0 * With C++ 11 turn on: ""-std=c++11 -stdlib=libc++"" * Boost 1.52 and Boost Trunk rev.81030 " zhuo.qiang@… Boost 1.52.0 7549 uBLAS banded storage does not match common BLAS layout (from netlib) uBLAS Boost 1.52.0 To Be Determined Bugs Gunter new 2012-10-21T20:38:11Z 2014-04-02T14:52:36Z "A banded_matrix stores the elements in an unusual way. This makes it impossible to call standard BLAS-libraries with these matrix type. Example data taken from http://www.netlib.org/lapack/lug/node124.html {{{ Running banded_matrix < column_major > test Full matrix [5,5]((11,12,0,0,0),(21,22,23,0,0),(31,32,33,34,0),(0,42,43,44,45),(0,0,53,54,55)) data() of matrix 0 12 23 34 45 11 22 33 44 55 21 32 43 54 0 31 42 53 0 0 Expected data() of matrix 0 11 21 31 12 22 32 42 23 33 43 53 34 44 54 0 45 55 0 0 }}} {{{ Running banded_matrix < row_major > test Full matrix [5,5]((11,12,0,0,0),(21,22,23,0,0),(31,32,33,34,0),(0,42,43,44,45),(0,0,53,54,55)) data() of matrix 0 11 21 31 12 22 32 42 23 33 43 53 34 44 54 0 45 55 0 0 Expected data() of matrix 0 0 11 12 0 21 22 23 31 32 33 34 42 43 44 45 53 54 55 0 }}} " Gunter Boost 1.52.0 7572 boost::gregorian::to_tm() does not fill in tm_gmtoff and tm_zone fields of the resulting std::tm structure date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2012-10-25T14:55:10Z 2012-10-25T14:55:10Z "On Fedora 15 (and maybe on other OSes), std::tm contains fields describing the time zone: {{{ #ifdef __USE_BSD long int tm_gmtoff; /* Seconds east of UTC. */ __const char *tm_zone; /* Timezone abbreviation. */ #else long int __tm_gmtoff; /* Seconds east of UTC. */ __const char *__tm_zone; /* Timezone abbreviation. */ #endif }}} boost::gregorian::to_tm() (and boost::posix_time::to_tm() respectively) does not fill in these fields. So these fields contain garbage. Other code can be misleaded with values of these uninitialized fields." izimenkov@… Boost 1.52.0 7579 whole numbers => natural numbers numeric Boost 1.52.0 To Be Determined Bugs Fernando Cacciola new 2012-10-27T12:30:24Z 2013-02-16T12:54:13Z "> A numeric type is integer if the abstract values it represent are > whole numbers. Should say ""natural numbers""" Dave Abrahams Boost 1.52.0 7596 process_jam_log - --locate-root doesn't work as advertised Regression Testing USE GITHUB Boost 1.52.0 To Be Determined Bugs Beman Dawes new 2012-10-28T20:50:41Z 2013-03-29T17:27:28Z "Beman, I've found that --locate-root doesn't permit one to build/test a library outside the boost root directory. I've made changes to support this and tested it locally on my own projects. I can't really test it on the whole boost regression testing on my equipment. So I'm a little bit in a quandary. I'm attaching the patch with my changes. I hope you can consider rolling them in. The intention is that it the changes don't change the functioning of the code for current usage. However, I'm a little at a loss with the library name function. The problem occurs when there is a ""sublibrary"" file. I'm still looking at this. My motivation is that I really, really need to be able to run this program from outside the boost directory. This is to support the current project I'm trying to finish - ""Help for Boost Library Authors - Simple Tools - Build and Test"". www.blincubator.com . Basically this is a effort to make it easier to make quality C++ and Boost libraries and support ""modularization"" of boost. I've invested a lot of effort and hope to be able to finish up these sticky bits. I've shown my effort to a few cohorts, and response has been unenthusiastic. As always, I'm not disuaded and have invested too much effort to bail now. So I hope you can help me with this one sticky detail. Thanks for any help you can provide on this critical point. Robert Ramey " Robert Ramey Boost 1.52.0 7608 Custom service of boost::asio hangs after being interrupted asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2012-10-30T15:43:33Z 2012-10-30T15:48:20Z "Custom service like logger_service that presented in boost::asio's example hangs after being added async_wait on signal_set. i.e. One has to hit Ctrl-C twice to stop a program. FYI, my workaround is [http://stackoverflow.com/questions/13024711/extension-of-boostasio-hangs-after-being-interrupted/13064012#13064012 here]. " Acer Yang Boost 1.52.0 7611 segfault in epoll_reactor.ipp asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff reopened 2012-10-30T18:15:27Z 2018-07-31T12:54:45Z "During testing of versions 1.46.1 and 1.51 on a 64-bit Ubuntu 12.04 I have found a seg fault condition in epoll_reactor.ipp. The function is void epoll_reactor::deregister_descriptor(socket_type descriptor, epoll_reactor::per_descriptor_data& descriptor_data, bool closing) { if (!descriptor_data) return; mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); if (!descriptor_data->shutdown_) { The member descriptor_data is checked for NULL before the mutex is locked, in rare conditions, when the if-statement is reached, descriptor_data is NULL. I have solved this by adding a second check after the mutex is locked, i.e. if (!descriptor_data) return; mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); if (!descriptor_data) return; if (!descriptor_data->shutdown_) { Best regards, Fredrik Jansson" Fredrik Jansson Boost 1.52.0 7612 Compile fails when including units Boost 1.52.0 To Be Determined Bugs Matthias Schabel new 2012-10-30T20:53:06Z 2012-10-30T20:53:06Z "I found that adding ""#include "" to my program will cause it to fail compilation with a huge amount of template errors. This used to work on version 1.46 but fails on version 1.47 and every version after including 1.52.beta. I am using gcc 4.7.1 on OpenSUSE 12.2. The test program is used to determine which version works is: #include #include int main(int argc, char** argv) { std::cout << ""Hello."" << std::endl; return 0; }" Adam Shrader Boost 1.52.0 7622 filesystem - minor documentation issues filesystem Boost 1.52.0 To Be Determined Bugs Beman Dawes new 2012-11-01T20:17:05Z 2012-11-01T20:17:05Z ".../filesystem/doc/reference.html#path-decomposition shows path stem(const path& p) const; path extension(const path& p) const; I believe they should show path stem() const; path extension() const; as is shown at: .../filesystem/doc/reference.html#class-path Robert Ramey" Robert Ramey Boost 1.52.0 7625 container.hpp should get reference, etc., from the iterator types phoenix Boost 1.52.0 To Be Determined Bugs Thomas Heller new 2012-11-02T02:08:27Z 2012-11-02T02:08:27Z "Because container.hpp reaches into so many of the ""container's"" typedefs, it doesn't work with iterator_range. For example, try {{{front(arg1)(boost::as_literal(""foo""))}}}" Dave Abrahams Boost 1.52.0 7633 Wanted: a way to force a nested result_type phoenix Boost 1.52.0 To Be Determined Bugs Thomas Heller new 2012-11-02T23:53:36Z 2012-11-02T23:53:36Z "For example, I had to use this: {{{#!c++ template struct void_function : F { typedef void result_type; void_function(F x) : F(x) {} }; template void_function make_void(F x) { return void_function(x); } }}} in order to get the following to work: {{{#!c++ inline std::ostream& operator<<(std::ostream& s, my_variant const& x) { using namespace boost::phoenix::placeholders; using namespace boost::phoenix; boost::apply_visitor( make_void(s << arg1), x ); // ^^^^^^^^^ HERE return s; } }}} Some libraries, like Boost.Variant, don't follow the {{{result_of}}} protocol." Dave Abrahams Boost 1.52.0 7636 Detection of ICU fails locale Boost 1.52.0 To Be Determined Bugs Artyom Beilis new 2012-11-04T00:37:18Z 2013-10-12T13:20:54Z "Detection of ICU fails: {{{ Building the Boost C++ Libraries. Performing configuration checks - 32-bit : no - 64-bit : yes - x86 : yes - has_icu builds : no - iconv (libc) : yes - icu : no - icu (lib64) : no - gcc visibility : yes - long double support : yes }}} Build system should use `'icu-config --cflags'` (for C) and `'icu-config --cxxflags'` (for C++) to get flags required for compilation with ICU." Arfrever.FTA@… Boost 1.52.0 7647 b2 incompatible with _STLP_LIB_NAME_MOTIF in stlport (no library names flexibility) - fatal error LNK1181: cannot open input file 'stlportstld.5.2.lib build Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2012-11-06T03:37:10Z 2013-01-03T16:42:25Z "B2 seems too rigid with the searched libraries names used for stlport. It causes problems for someone who needs to use names a suffix _STLP_LIB_NAME_MOTIF that is not empty (see stlport/stl/config/user-config.h). Here I explain the context the context. I've tried (succcessfully) to build boost_1_52 with stlport.5.2.1 with Microsoft vs 2010 (vc10) I've essentially used what suggested in http://www.lenholgate.com/blog/2010/07/stlport-521-and-vs2010-and-x64.html. [[BR]] The author of the pages uses _STLP_LIB_NAME_MOTIF in order to specify the compiler's name in the library name, which is what I need too. To build with stlport I've followed the usual procedure: 1- added in tools/build/v2/user-config.jam the lines[[BR]] using msvc : 10.0 ; using stlport : 5.2.1 : /STLport-5.2.1/stlport : /STLport-5.2.1/lib/vc10 ; 2- and issued the command:[[BR]] .\tools\build\v2\b2.exe stdlib=stlport-5.2.1 toolset=msvc-10.0 debug/define=_STLP_DEBUG release --build-type=complete stage What I get is a linking error to the stlport libraries when doing link=shared threading=multi (for example with --with-system)[[BR]] the message error is: LINK : fatal error LNK1181: cannot open input file 'stlportstld.5.2.lib' This is because stlport.jam ((probably this jam file) '''forces''' the link to the stlport with its own names, therefore '''bypassing''' what is specified in the file STLport-5.2.1\stlport\stl\config\_auto_link.h I wonder why this choice, considering that life was beautiful years ago when this everything was delegated to stlport\stl\config\_auto_link.h. I imagine you had your own reasons. [[BR]] [[BR]] Things therefore work if I do:[[BR]] tools/build/v2/user-config.jam:[[BR]] using msvc : 10.0 ; using stlport : vc10.5.2.1 : /STLport-5.2.1/stlport : /STLport-5.2.1/lib/vc10 ; and issue the command:[[BR]] .\tools\build\v2\b2.exe stdlib=stlport-vc10.5.2.1 toolset=msvc-10.0 debug/define=_STLP_DEBUG release --build-type=complete stage But still there is one strange behaviour which is problematic.[[BR]] Let's take tools/build/v2/user-config.jam again[[BR]] with[[BR]] using stlport : 5.2.1 : ....[[BR]] the library searched was stlportstld.5.2.lib [[BR]] with[[BR]] using stlport : vc10.5.2.1 : ....[[BR]] the library searched was stlportstldvc10.5.2.lib [[BR]] with[[BR]] using stlport : xyz.5.2.1 : ....[[BR]] the library searched was stlportstldvc10.5.2.lib i.e. not stlportstldxyz.5.2.lib [[BR]] And this is a problem, as people may want to build to the stlport libraries also when their name name is modified according to the _STLP_LIB_NAME_MOTIF macro in stlport/stl/config/user-config.h. Hope this will be fixed, if you agree this is a limitation. Again, I wish everything would be left to what is specified in STLport-5.2.1\stlport\stl\config\_auto_link.h " Marcello Pietrobon Boost 1.52.0 7655 signed/unsigned mismatch warning in inplace_solver uBLAS Boost 1.52.0 To Be Determined Bugs Gunter new 2012-11-07T13:51:01Z 2014-10-06T14:08:24Z "MSVC 9 emits a warning ""C4018: '<' : signed/unsigned mismatch"" in line 2165 (inplace_solve) in triangular.hpp" Tobias Loew Boost 1.52.0 7679 unhex level 4 compile warning in visual studio algorithm Boost 1.52.0 To Be Determined Bugs Marshall Clow new 2012-11-10T15:56:10Z 2016-04-07T13:36:30Z " The following code generates a level 4 compiler warning in Visual Studio 2010 and 2012: {{{ #include #include int main() { std::string base = ""now is the time""; std::string hstr = boost::algorithm::hex(base); std::string cstr = boost::algorithm::unhex(hstr); } }}} The warnings are: {{{ 1>d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(137): warning C4244: '=' : conversion from 'unsigned int' to 'T', possible loss of data 1> d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(204) : see reference to function template instantiation 'std::back_insert_iterator<_Container> boost::algorithm::detail::decode_one(InputIterator &,InputIterator,OutputIterator,EndPred)' being compiled 1> with 1> [ 1> _Container=std::string, 1> InputIterator=std::_String_const_iterator,std::allocator>, 1> OutputIterator=std::back_insert_iterator, 1> Iterator=std::_String_const_iterator,std::allocator>, 1> EndPred=bool (__cdecl *)(std::_String_const_iterator,std::allocator>,std::_String_const_iterator,std::allocator>) 1> ] 1> d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(237) : see reference to function template instantiation 'OutputIterator boost::algorithm::unhex,OutputIterator>(InputIterator,InputIterator,OutputIterator)' being compiled 1> with 1> [ 1> OutputIterator=std::back_insert_iterator, 1> _Elem=char, 1> _Traits=std::char_traits, 1> _Alloc=std::allocator, 1> InputIterator=std::_String_const_iterator,std::allocator> 1> ] 1> d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(263) : see reference to function template instantiation 'OutputIterator boost::algorithm::unhex>(const Range &,OutputIterator)' being compiled 1> with 1> [ 1> OutputIterator=std::back_insert_iterator, 1> String=std::string, 1> _Container=std::string, 1> Range=std::string 1> ] 1> unhex_bug.cpp(10) : see reference to function template instantiation 'String boost::algorithm::unhex(const String &)' being compiled 1> with 1> [ 1> String=std::string 1> ] }}} " Gary Sanders Boost 1.52.0 7680 Poor choice of difference_type for zip_iterator iterator Boost 1.52.0 To Be Determined Bugs jeffrey.hellrung new 2012-11-11T04:37:06Z 2012-11-21T22:41:14Z "Hi, the following program results in an integer overflow on my system (Linux g++ 4.7.2): {{{#!c++ #include #include #include #include int main() { boost::counting_iterator i1(0); boost::counting_iterator i2(0); auto i3 = boost::make_zip_iterator(boost::make_tuple(i1, i2)); i3 += 3221225472u; std::cout << boost::get<1>(*i3) << '\n'; } }}} It prints 18446744072635809792, but I'd expect it to print 3221225472. boost::zip_iterator seems to use the first underlying iterator's difference_type as its own difference_type, which isn't necessarily the right choice. " matthias_berndt@… Boost 1.52.0 7681 Bug in indirect_streambuf::seek_impl iostreams Boost 1.52.0 Boost 1.53.0 Bugs Jonathan Turkanis new 2012-11-12T12:10:29Z 2012-11-12T12:10:29Z "Currently indirect_streambuf::seek_impl always modifies input and output pointers with code: setg(0, 0, 0); setp(0, 0); See detail/indirect_streambuf.hpp. However, this is incorrect for dual seekable streams buffers which only modifies one set of pointers on each seek (in or out). As a consequence, dual seekable devices cannot be correctly seek. Those 2 lines should be replaced by: if (is_convertible::value) { if (which == BOOST_IOS::in) { setg(0, 0, 0); } if (which == BOOST_IOS::out) { setp(0, 0); } } else { setg(0, 0, 0); setp(0, 0); } " lodos@… Boost 1.52.0 7682 boost 1.52 named_mutex/named_condition pairing broken interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga reopened 2012-11-13T00:00:48Z 2015-12-23T23:35:03Z "The following program works in boost 1.47, however in 1.52 it does not. To test it, run 2 instances. The 2nd instance should output the numbers 1, 3, 5, 7, 9. Under 1.52, the program outputs the number 1, and then does nothing. The fault appears to be with the named_condition and named_mutex classes. Tested under Windows 7 Pro, SP1, using Visual Studio 2010 v10.0.40219.1 SP1Rel. The test was done with a statically linked boost date time, with Platform Toolset set to v90, i.e. linked with the library 'libboost_date_time-vc90-mt-sgd-1_47.lib'. {{{ #include #include #include #include #include int main() { boost::interprocess::managed_shared_memory managed_shm(boost::interprocess::open_or_create, ""shm"", 1024); int *i = managed_shm.find_or_construct(""Integer"")(0); boost::interprocess::named_mutex named_mtx(boost::interprocess::open_or_create, ""mtx""); boost::interprocess::named_condition named_cnd(boost::interprocess::open_or_create, ""cnd""); boost::interprocess::scoped_lock lock(named_mtx); while (*i < 10) { if (*i % 2 == 0) { ++(*i); named_cnd.notify_all(); named_cnd.wait(lock); } else { std::cout << *i << std::endl; ++(*i); named_cnd.notify_all(); named_cnd.wait(lock); } } named_cnd.notify_all(); boost::interprocess::shared_memory_object::remove(""shm""); boost::interprocess::named_mutex::remove(""mtx""); boost::interprocess::named_condition::remove(""cnd""); } }}}" damian.coventry@… Boost 1.52.0 7687 [date_time] implicit conversion loses integer precision date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2012-11-13T07:53:12Z 2015-12-01T09:11:50Z "Compiling with Apple/clang-421.11.66, including boost/date_time.hpp, gives multiple warnings about implicite long64 to int32 conversions: main.cpp:9 {{{ #include }}} {{{ clang -x c++ -stdlib=libstdc++ -Iboost_1_52_0 -Wshorten-64-to-32 -c main.cpp In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:24: In file included from boost_1_52_0/boost/date_time/posix_time/time_formatters.hpp:16: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_types.hpp:16: boost_1_52_0/boost/date_time/posix_time/posix_time_duration.hpp:24:21: warning: implicit conversion loses integer precision: 'long' to 'hour_type' (aka 'int') [-Wshorten-64-to-32] time_duration(h,0,0) ~~~~~~~~~~~~~ ^ boost_1_52_0/boost/date_time/posix_time/posix_time_duration.hpp:35:23: warning: implicit conversion loses integer precision: 'long' to 'min_type' (aka 'int') [-Wshorten-64-to-32] time_duration(0,m,0) ~~~~~~~~~~~~~ ^ boost_1_52_0/boost/date_time/posix_time/posix_time_duration.hpp:46:25: warning: implicit conversion loses integer precision: 'long' to 'sec_type' (aka 'int') [-Wshorten-64-to-32] time_duration(0,0,s) ~~~~~~~~~~~~~ ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:18: In file included from boost_1_52_0/boost/date_time/gregorian/gregorian_types.hpp:19: In file included from boost_1_52_0/boost/date_time/gregorian/greg_calendar.hpp:15: In file included from boost_1_52_0/boost/date_time/gregorian_calendar.hpp:63: boost_1_52_0/boost/date_time/gregorian_calendar.ipp:82:12: warning: implicit conversion loses integer precision: 'unsigned long' to 'date_int_type' (aka 'unsigned int') [-Wshorten-64-to-32] return d; ~~~~~~ ^ boost_1_52_0/boost/date_time/date.hpp:71:25: note: in instantiation of member function 'boost::date_time::gregorian_calendar_base, unsigned int>::day_number' requested here : days_(calendar::day_number(ymd_type(y, m, d))) ^ boost_1_52_0/boost/date_time/gregorian/greg_date.hpp:56:9: note: in instantiation of member function 'boost::date_time::date::date' requested here : date_time::date(y, m, d) ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:18: In file included from boost_1_52_0/boost/date_time/gregorian/gregorian_types.hpp:19: In file included from boost_1_52_0/boost/date_time/gregorian/greg_calendar.hpp:15: In file included from boost_1_52_0/boost/date_time/gregorian_calendar.hpp:63: boost_1_52_0/boost/date_time/gregorian_calendar.ipp:47:14: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] return week; ~~~~~~ ^~~~ boost_1_52_0/boost/date_time/gregorian/greg_date.hpp:111:34: note: in instantiation of member function 'boost::date_time::gregorian_calendar_base, unsigned int>::week_number' requested here return gregorian_calendar::week_number(ymd); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:18: In file included from boost_1_52_0/boost/date_time/gregorian/gregorian_types.hpp:19: In file included from boost_1_52_0/boost/date_time/gregorian/greg_calendar.hpp:15: In file included from boost_1_52_0/boost/date_time/gregorian_calendar.hpp:63: boost_1_52_0/boost/date_time/gregorian_calendar.ipp:52:16: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] return week; //under these circumstances week == 53. ~~~~~~ ^~~~ boost_1_52_0/boost/date_time/gregorian_calendar.ipp:63:14: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] return week; ~~~~~~ ^~~~ boost_1_52_0/boost/date_time/gregorian_calendar.ipp:66:12: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32] return week; //not reachable -- well except if day == 5 and is_leap_year != true ~~~~~~ ^~~~ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:15: boost_1_52_0/boost/date_time/time_system_counted.hpp:57:52: warning: implicit conversion loses integer precision: 'unsigned long' to 'typename calendar_type::date_int_type' (aka 'unsigned int') [-Wshorten-64-to-32] typename calendar_type::date_int_type dc = day_count(); ~~ ^~~~~~~~~~~ boost_1_52_0/boost/date_time/time_system_counted.hpp:170:18: note: in instantiation of member function 'boost::date_time::counted_time_rep::date' requested here return val.date(); ^ boost_1_52_0/boost/date_time/time.hpp:72:27: note: in instantiation of member function 'boost::date_time::counted_time_system >::get_date' requested here return time_system::get_date(time_); ^ boost_1_52_0/boost/date_time/posix_time/date_duration_operators.hpp:33:31: note: in instantiation of member function 'boost::date_time::base_time> >::date' requested here return t + m.get_offset(t.date()); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:18: In file included from boost_1_52_0/boost/date_time/gregorian/gregorian_types.hpp:17: boost_1_52_0/boost/date_time/date.hpp:180:47: warning: implicit conversion loses integer precision: 'duration_rep_type' (aka 'long') to 'int_type' (aka 'unsigned int') [-Wshorten-64-to-32] return date_type(date_rep_type(days_) + dd.days()); ~~~~~~~~~~~~~ ^~~~~~~~~ boost_1_52_0/boost/date_time/time.hpp:145:49: note: in instantiation of member function 'boost::date_time::date::operator+' requested here time_ = (time_system::get_time_rep(date() + dd, time_of_day())); ^ boost_1_52_0/boost/date_time/posix_time/date_duration_operators.hpp:44:14: note: in instantiation of member function 'boost::date_time::base_time> >::operator+=' requested here return t += m.get_offset(t.date()); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:17: In file included from boost_1_52_0/boost/date_time/time_resolution_traits.hpp:15: boost_1_52_0/boost/date_time/int_adapter.hpp:233:41: warning: implicit conversion loses integer precision: 'long' to 'int_type' (aka 'unsigned int') [-Wshorten-64-to-32] return int_adapter(value_ + rhs.as_number()); ~~~~~~~~~~~ ~~~~~~~^~~~~~~~~~~~~~~~~ boost_1_52_0/boost/date_time/date.hpp:178:47: note: in instantiation of function template specialization 'boost::date_time::int_adapter::operator+' requested here return date_type(date_rep_type(days_) + dd.get_rep()); ^ boost_1_52_0/boost/date_time/time.hpp:145:49: note: in instantiation of member function 'boost::date_time::date::operator+' requested here time_ = (time_system::get_time_rep(date() + dd, time_of_day())); ^ boost_1_52_0/boost/date_time/posix_time/date_duration_operators.hpp:44:14: note: in instantiation of member function 'boost::date_time::base_time> >::operator+=' requested here return t += m.get_offset(t.date()); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:18: In file included from boost_1_52_0/boost/date_time/gregorian/gregorian_types.hpp:17: boost_1_52_0/boost/date_time/date.hpp:162:47: warning: implicit conversion loses integer precision: 'duration_rep_type' (aka 'long') to 'int_type' (aka 'unsigned int') [-Wshorten-64-to-32] return date_type(date_rep_type(days_) - dd.days()); ~~~~~~~~~~~~~ ^~~~~~~~~ boost_1_52_0/boost/date_time/period.hpp:93:21: note: in instantiation of member function 'boost::date_time::date::operator-' requested here last_(end_point - duration_rep::unit()) ^ boost_1_52_0/boost/date_time/date_parsing.hpp:308:14: note: in instantiation of member function 'boost::date_time::period::period' requested here return period(d1, d2); ^ boost_1_52_0/boost/date_time/gregorian/parsers.hpp:79:12: note: in instantiation of function template specialization 'boost::date_time::from_simple_string_type' requested here return date_time::from_simple_string_type(s); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:15: In file included from boost_1_52_0/boost/date_time/posix_time/ptime.hpp:12: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_system.hpp:13: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_config.hpp:17: In file included from boost_1_52_0/boost/date_time/time_resolution_traits.hpp:15: boost_1_52_0/boost/date_time/int_adapter.hpp:282:41: warning: implicit conversion loses integer precision: 'long' to 'int_type' (aka 'unsigned int') [-Wshorten-64-to-32] return int_adapter(value_ - rhs.as_number()); ~~~~~~~~~~~ ~~~~~~~^~~~~~~~~~~~~~~~~ boost_1_52_0/boost/date_time/date.hpp:160:47: note: in instantiation of function template specialization 'boost::date_time::int_adapter::operator-' requested here return date_type(date_rep_type(days_) - dd.get_rep()); ^ boost_1_52_0/boost/date_time/period.hpp:93:21: note: in instantiation of member function 'boost::date_time::date::operator-' requested here last_(end_point - duration_rep::unit()) ^ boost_1_52_0/boost/date_time/date_parsing.hpp:308:14: note: in instantiation of member function 'boost::date_time::period::period' requested here return period(d1, d2); ^ boost_1_52_0/boost/date_time/gregorian/parsers.hpp:79:12: note: in instantiation of function template specialization 'boost::date_time::from_simple_string_type' requested here return date_time::from_simple_string_type(s); ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:24: In file included from boost_1_52_0/boost/date_time/posix_time/time_formatters.hpp:16: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_types.hpp:20: boost_1_52_0/boost/date_time/dst_rules.hpp:57:49: warning: implicit conversion loses integer precision: 'long' to 'min_type' (aka 'int') [-Wshorten-64-to-32] if (time_of_day >= time_duration_type(0,offset,0)) { ~~~~~~~~~~~~~~~~~~ ^~~~~~ boost_1_52_0/boost/date_time/dst_rules.hpp:164:18: note: in instantiation of member function 'boost::date_time::dst_calculator::process_local_dst_start_day' requested here return process_local_dst_start_day(time_of_day, ^ boost_1_52_0/boost/date_time/dst_rules.hpp:116:16: note: in instantiation of member function 'boost::date_time::dst_calculator::local_is_dst' requested here return local_is_dst(current_day, time_of_day, ^ boost_1_52_0/boost/date_time/local_time/local_date_time.hpp:196:16: note: in instantiation of member function 'boost::date_time::dst_calculator::local_is_dst' requested here return dst_calculator::local_is_dst( ^ boost_1_52_0/boost/date_time/local_time/local_date_time.hpp:241:16: note: in instantiation of member function 'boost::local_time::local_date_time_base >::check_dst' requested here switch(check_dst(lt.date(), lt.time_of_day(), zone_)){ ^ boost_1_52_0/boost/date_time/local_time/conversion.hpp:23:9: note: in instantiation of member function 'boost::local_time::local_date_time_base >::is_dst' requested here if(lt.is_dst()){ ^ In file included from main.cpp:9: In file included from boost_1_52_0/boost/date_time.hpp:15: In file included from boost_1_52_0/boost/date_time/local_time/local_time.hpp:11: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time.hpp:24: In file included from boost_1_52_0/boost/date_time/posix_time/time_formatters.hpp:16: In file included from boost_1_52_0/boost/date_time/posix_time/posix_time_types.hpp:20: boost_1_52_0/boost/date_time/dst_rules.hpp:78:44: warning: implicit conversion loses integer precision: 'long' to 'int' [-Wshorten-64-to-32] int offset = dst_end_offset_minutes-dst_length_minutes; ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ boost_1_52_0/boost/date_time/dst_rules.hpp:170:18: note: in instantiation of member function 'boost::date_time::dst_calculator::process_local_dst_end_day' requested here return process_local_dst_end_day(time_of_day, ^ boost_1_52_0/boost/date_time/dst_rules.hpp:116:16: note: in instantiation of member function 'boost::date_time::dst_calculator::local_is_dst' requested here return local_is_dst(current_day, time_of_day, ^ boost_1_52_0/boost/date_time/local_time/local_date_time.hpp:196:16: note: in instantiation of member function 'boost::date_time::dst_calculator::local_is_dst' requested here return dst_calculator::local_is_dst( ^ boost_1_52_0/boost/date_time/local_time/local_date_time.hpp:241:16: note: in instantiation of member function 'boost::local_time::local_date_time_base >::check_dst' requested here switch(check_dst(lt.date(), lt.time_of_day(), zone_)){ ^ boost_1_52_0/boost/date_time/local_time/conversion.hpp:23:9: note: in instantiation of member function 'boost::local_time::local_date_time_base >::is_dst' requested here if(lt.is_dst()){ ^ 15 warnings generated. }}} " crueegg@… Boost 1.52.0 7692 Missing documentation for variables_map::count program_options Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2012-11-14T13:55:25Z 2012-11-14T13:55:25Z Neither `variables_map` documentation nor `abstract_variables_map` documentation mentions function `count`. abadura@… Boost 1.52.0 7700 remove_if with Placeholder Expression as predicate causes instantiation of PlaceHolder Expression before argument binding in GCC 4.7.2 fusion Boost 1.52.0 To Be Determined Bugs Kohei Takahashi new 2012-11-15T15:48:10Z 2018-07-06T16:46:38Z " The following code instantiates meta_func >, which causes a compile error. The problem seems to be with the mpl::not_ which involves the predicate with remove_if. The same error doesn't happen with filter_if. The equivalent code in MPL-only doesn't cause the same error (mpl::remove_if). #include #include namespace mpl = boost::mpl; namespace fusion = boost::fusion; struct element { typedef mpl::false_ type; }; template struct meta_func { typedef typename T::type type; }; int main() { fusion::vector e; fusion::as_vector(fusion::remove_if >(e)); } " felipe.m.almeida@… Boost 1.52.0 7715 Fractional seconds are parsed as timezone date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2012-11-20T08:25:52Z 2012-11-20T08:25:52Z "We're trying to use Boost's excellent date time functionality, but we've hit a snag. The formatting we require is ""%Y-%m-%dT%H:%M:%S.%F%ZP"", which results in for example ""2012-11-19T23:44:23.122344UTC+1"". We use this to store dates and time in our database as a string. The problem seems to be that the %F and %ZP flags don't work well together. The following code generates an exception: {{{ std::string serialized = ""2012-11-19T23:44:23.122344UTC+1""; std::stringstream ss(serialized); std::string format = ""%Y-%m-%dT%H:%M:%S.%F%ZP""; boost::local_time::local_time_facet* facet_output = new boost::local_time::local_time_facet(); facet_output->format(format.c_str()); ss.imbue(std::locale(std::locale::classic(), facet_output)); boost::local_time::local_time_input_facet* facet_input = new boost::local_time::local_time_input_facet(); facet_input->format(format.c_str()); ss.imbue(std::locale(ss.getloc(), facet_input)); boost::local_time::local_date_time result(boost::local_time::not_a_date_time); ss >> result; // exception }}} What happens when you trace the stack to the exception is that the tokenizer doesn't see the ""122344"" bit as fractional seconds and instead thinks it's the timezone. This results in an invalid timezone and thus an exception. We can circumvent the problem by removing the %F flag, but that is an unacceptable workaround, because we need the precision of the fractional seconds. Removing the %F flag solves the problem. The problem was found in 1.48.0, but has not yet been fixed in 1.52.0." knight666@… Boost 1.52.0 7729 concept_def.hpp multiple inclusion prevention macro bug graph Boost 1.52.0 Boost 1.56.0 Bugs acharles assigned 2012-11-23T14:35:43Z 2014-02-21T09:35:24Z "In boost/concept/detail/concept_def.hpp, the BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP macro does not apply to the whole include file (search for its pending endif). As a consequence, the following warning appearing e.g. when including boost/graph/adjacency_list.hpp: {{{ ""BOOST_concept"" redefined [...] }}} " moala@… Boost 1.52.0 7730 Generic specializations of is_nullary for custom terminals are not possible phoenix Boost 1.52.0 To Be Determined Bugs Thomas Heller new 2012-11-24T12:34:14Z 2014-03-12T06:51:51Z "The is_nullary trait is specialized for all custom_terminal to be true (see phoenix/code/is_nullary.hpp). {{{ template struct is_nullary > : mpl::true_ {}; }}} This is not true with regard to multiple terminals I define in Boost.Log. This forces me to specialize is_nullary for all my custom terminals, and I cannot provide a single blanket specialization for all my terminals. The is_nullary trait has a second template parameter which is intended to be used exactly for this purpose. A nested tag void typedef can be used to match the trait for a set of types. I could create the following specialization: {{{ template struct is_nullary, typename T::_is_my_terminal > : mpl::false_ {}; }}} However this extension mechanism does not work because the two specializations are considered equally specialized and the compiler reports ambiguity. I suggest to limit the first specialization to only match the default custom terminals, e.g.: {{{ template struct is_nullary, typename custom_terminal::_is_default_custom_terminal > : mpl::true_ {}; }}} Where typedef void _is_default_custom_terminal will be added to the generic custom_terminal template. " Andrey Semashev Boost 1.52.0 7737 Minor comment typo in boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp wave Boost 1.52.0 To Be Determined Bugs Hartmut Kaiser new 2012-11-27T02:55:13Z 2012-11-27T02:55:13Z Patch attached for fixing it. oss.2012.team+E4@… Boost 1.52.0 7747 Wrong header file information in ptr_container documentation ptr_container Boost 1.52.0 To Be Determined Bugs Thorsten Ottosen new 2012-11-28T15:29:29Z 2012-12-18T17:09:15Z "http://www.boost.org/doc/libs/1_52_0/libs/ptr_container/doc/ptr_container.html says ""Serialization has now been made optional thanks to Sebastian Ramacher. You simply include or perhaps just one of the more specialized headers."" This serialize.hpp does not exist (at least in 1.52), the more specialized headers do. " anonymous Boost 1.52.0 7756 Boost.HS install instructions outdated quickbook Boost 1.52.0 To Be Determined Bugs Daniel James new 2012-12-02T10:21:38Z 2014-04-09T02:18:45Z The install instructions and install.sh for Boost.HS are outdated with regard to KDE 4.x. The katepart syntax files are stored in /usr/share/kde4/apps/katepart/syntax rather than /usr/share/apps/katepart/syntax. Andrey Semashev Boost 1.52.0 7763 Boost.Parameter functions no longer accept non-moveable types as arguments parameter Boost 1.52.0 To Be Determined Bugs Daniel Wallin new 2012-12-04T04:00:23Z 2012-12-04T04:00:23Z "Boost.Parameter suffered a regression because of a change to the semantics of boost::is_convertible. It used to be possible to pass a non-movable type to a Boost.Parameter function, but that no longer works as of Boost 1.47 (at least on certain compilers; gcc continued to work for some more Boost versions but doesn't in 1.52). The issue with is_convertible was discussed in more detail in this thread: http://boost.2283326.n4.nabble.com/type-traits-parameter-Inconsistent-boost-is-convertible-between-gcc-and-clang-td4634162.html It first manifested in clang, but now also appears in gcc thanks to the bugfix discussed that thread. I attach an example demonstrating the problem. I have worked around the problem locally by editing boost/parameter/preprocessor.hpp and changing typedef is_convertible type; to typedef is_convertible type; I make no claim that this is exactly the correct fix, but I believe something along these lines is required." John Bytheway Boost 1.52.0 7769 BOOST_MPL_LIMIT_METAFUNCTION_ARITY > 8 causes compilation error on gcc mpl Boost 1.52.0 To Be Determined Bugs Aleksey Gurtovoy new 2012-12-05T20:50:25Z 2015-02-08T23:30:37Z " {{{ #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 9 #include int main() { return 0; } }}} The above code fails to compile on g++ (4.6.3 and 4.7.2 checked). Visual Compiler(VS 2010) compiles this correctly even with BOOST_MPL_LIMIT_METAFUNCTION_ARITY == 100. See also [http://boost.2283326.n4.nabble.com/boost-mpl-bimap-BOOST-MPL-LIMIT-METAFUNCTION-ARITY-issue-on-g-4-6-3-and-boost-1-50-td4639407.html#a4639506] " Adam Lach Boost 1.52.0 7790 Length check for destination buffer asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2012-12-13T09:53:00Z 2012-12-13T09:53:00Z "In file boost/asio/detail/impl/socket_ops.ipp In case of IPV6, length of dest is not verified while doing strcat at line no:1883 This is required to validate argument length passed by user. Attached patch is proposed fix for this. " Gaurav Gupta Boost 1.52.0 7792 Boost serialization is incompatible with final keyword serialization Boost 1.52.0 To Be Determined Bugs John Maddock new 2012-12-13T18:58:00Z 2012-12-13T19:12:34Z "When a class is marked as final using the C++11 final keyword it is not possible to serialize it using boost::serialization, because compilation fails while instantiating boost::detail::is_polymorphic_imp1<...>. A minimal example is attached in main.cpp. The output of Visual Studio 2012 SP1 attempting to compile this example can be found in BoostSerializationBugReport.log." Marco Wannemaker Boost 1.52.0 7803 [program_options] boost/program_options/errors.hpp:253: warning: unused parameter ‘option_name’ program_options Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2012-12-18T01:42:28Z 2013-01-17T20:01:34Z "The following warning is present in boost.program_options, and the boost/program_options/errors.hpp:253: warning: unused parameter ‘option_name’" Andrew Hundt Boost 1.52.0 7807 message_queue do_send and do_receive blocked for interprocess_mutex interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2012-12-18T08:35:43Z 2016-01-04T23:00:20Z Sending program A send information to the receiving program B, if the program B quit unexpectedly. Starting the program again B,Program A and B will block in “scoped_lock lock(p_hdr->m_mutex)” zyt1013@… Boost 1.52.0 7810 zlib_error::check throws on Z_BUF_ERROR iostreams Boost 1.52.0 To Be Determined Bugs Jonathan Turkanis new 2012-12-19T11:53:51Z 2016-12-09T01:17:31Z zlib_error::check has a line that checks for Z_BUF_ERROR but it is commented out. Now the documentation for zlib states that Z_BUF_ERROR is not a fatal error and so I think the commented code should actually be activated since it now happens to me that io::zlib_decompressor fails on one of my files. m.hekkelman@… Boost 1.52.0 7811 interprocess/synchronization_mechanisms.html message_queue example bug interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2012-12-19T16:17:40Z 2013-01-03T19:18:29Z "http://www.boost.org/doc/libs/1_52_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.message_queue.message_queue_example See the second example here (after ""This is the second process:""): {{{ //Open a message queue. message_queue mq (open_only //only create ,""message_queue"" //name ); }}} The first arguments of the constructor conradicts comment message. It seems that ""only create"" should be replaced by ""only open""." sarum9in@… Boost 1.52.0 7821 Cannot user tuple in unordered_set unordered Boost 1.52.0 To Be Determined Bugs Daniel James new 2012-12-21T18:58:40Z 2012-12-22T09:37:34Z "Compiling this program: #include ""boost/tuple/tuple.hpp"" #include ""boost/unordered_set.hpp"" int main() { boost::unordered_set > tuples; return 0; } using g++ (GCC) 4.8.0 20121216 (experimental) and boost 1.52.0 fails with this error: In file included from /usr/include/boost/unordered/detail/table.hpp:10:0, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/buckets.hpp: Jäsenfunktio ”void boost::unordered::detail::node_constructor::construct_with_value(const Args&)”: /usr/include/boost/unordered/detail/buckets.hpp:338:13: virhe: ”construct_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::construct_value_impl( ^ /usr/include/boost/unordered/detail/buckets.hpp: Jäsenfunktio ”void boost::unordered::detail::node_constructor::construct_with_value2(const A0&)”: /usr/include/boost/unordered/detail/buckets.hpp:347:13: virhe: ”construct_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::construct_value_impl( ^ /usr/include/boost/unordered/detail/buckets.hpp: In destructor ”boost::unordered::detail::node_constructor::~node_constructor()”: /usr/include/boost/unordered/detail/buckets.hpp:377:17: virhe: ”destroy_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::destroy_value_impl(alloc_, ^ /usr/include/boost/unordered/detail/buckets.hpp: Jäsenfunktio ”void boost::unordered::detail::node_constructor::construct()”: /usr/include/boost/unordered/detail/buckets.hpp:409:17: virhe: ”destroy_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::destroy_value_impl(alloc_, ^ /usr/include/boost/unordered/detail/buckets.hpp: In destructor ”boost::unordered::detail::node_holder::~node_holder()”: /usr/include/boost/unordered/detail/buckets.hpp:526:13: virhe: ”destroy_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::destroy_value_impl(this->alloc_, ^ /usr/include/boost/unordered/detail/buckets.hpp: At global scope: /usr/include/boost/unordered/detail/buckets.hpp:775:12: virhe: ”struct boost::unordered::detail::please_ignore_this_overload” uudelleenmääritelty struct please_ignore_this_overload { ^ In file included from /usr/include/boost/unordered/detail/buckets.hpp:15:0, from /usr/include/boost/unordered/detail/table.hpp:10, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/allocate.hpp:177:12: virhe: previous definition of ”struct boost::unordered::detail::please_ignore_this_overload” struct please_ignore_this_overload { ^ In file included from /usr/include/boost/unordered/detail/table.hpp:10:0, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/buckets.hpp:780:12: virhe: ”struct boost::unordered::detail::rv_ref_impl” uudelleenmääritelty struct rv_ref_impl { ^ In file included from /usr/include/boost/unordered/detail/buckets.hpp:15:0, from /usr/include/boost/unordered/detail/table.hpp:10, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/allocate.hpp:182:12: virhe: previous definition of ”struct boost::unordered::detail::rv_ref_impl” struct rv_ref_impl { ^ In file included from /usr/include/boost/unordered/detail/table.hpp:10:0, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/buckets.hpp:785:12: virhe: ”struct boost::unordered::detail::rv_ref” uudelleenmääritelty struct rv_ref : ^ In file included from /usr/include/boost/unordered/detail/buckets.hpp:15:0, from /usr/include/boost/unordered/detail/table.hpp:10, from /usr/include/boost/unordered/detail/equivalent.hpp:14, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/allocate.hpp:187:12: virhe: previous definition of ”struct boost::unordered::detail::rv_ref” struct rv_ref : ^ In file included from /usr/include/boost/unordered/detail/equivalent.hpp:14:0, from /usr/include/boost/unordered/unordered_set.hpp:17, from /usr/include/boost/unordered_set.hpp:16, from boost_tuple_hash.cpp:2: /usr/include/boost/unordered/detail/table.hpp: Jäsenfunktio ”void boost::unordered::detail::table::delete_node(boost::unordered::detail::table::c_iterator)”: /usr/include/boost/unordered/detail/table.hpp:505:13: virhe: ”destroy_value_impl” is not a member of ”boost::unordered::detail” boost::unordered::detail::destroy_value_impl(node_alloc(), ^ boost_tuple_hash.cpp: Funktio ”int main()”: boost_tuple_hash.cpp:6:49: virhe: template argument 1 is invalid boost::unordered_set > tuples; ^ boost_tuple_hash.cpp:6:49: virhe: template argument 2 is invalid boost_tuple_hash.cpp:6:49: virhe: template argument 3 is invalid boost_tuple_hash.cpp:6:49: virhe: template argument 4 is invalid boost_tuple_hash.cpp:6:57: virhe: invalid type in declaration before ”;” token boost::unordered_set > tuples; ^ boost_tuple_hash.cpp:6:51: varoitus: käyttämätön muuttuja ”tuples” [-Wunused-variable] boost::unordered_set > tuples; ^" ilja.honkonen@… Boost 1.52.0 7822 waveidl sample does not use the IDL lexer, but the default lexer wave Boost 1.52.0 To Be Determined Bugs Hartmut Kaiser new 2012-12-21T19:38:17Z 2012-12-21T19:38:17Z "Dear Boost developpers, The waveidl sample from the wave lib does not use the included IDL lexer. Instead it uses the default cpp lexer. This can be easily tested by setting a breakpoint in the scan function in idl_re.cpp. The reason is that it is explicitly set up like this in the lex_iterator constructor. The #if 0 branch below is the original code, the #else branch is modified to use the IDL lexer. template lex_iterator(IteratorT const &first, IteratorT const &last, typename TokenT::position_type const &pos, boost::wave::language_support language) : base_type( functor_data_type( unique_functor_type(), #if 0 cpplexer::lex_input_interface_generator ::new_lexer(first, last, pos, language) #else boost::wave::idllexer::new_lexer_gen< std::string::iterator>::new_lexer( first, last, pos, language ) #endif ) ) {} Now if I do the above modification, the preprocessor stops after the first include file with this warning: ""warning: last line of file ends without a newline"" Somehow the function which checks if there is a return from an include always returns false. Btw.: What I want to achieve is a preprocessor for Verilog-A, which is a simplified variant of a C preprocessor with ` instaed of #. It should be easy, but I cannot get it to work. Thanks & best regards, Michael" Michael Soegtrop Boost 1.52.0 7858 boost should not blindly assume that MinGW installation is in c:\ directory Building Boost Boost 1.52.0 To Be Determined Bugs new 2013-01-05T10:09:20Z 2013-01-05T10:09:20Z "instead it should search the directory in which main boost dir lies and then if not found should withdraw to defauld directory so in file : boost\tools\build\v2\engine\build.bat {{{ #!html
if EXIST ""C:\MinGW\bin\gcc.exe"" (
    set ""BOOST_JAM_TOOLSET=mingw""
    set ""BOOST_JAM_TOOLSET_ROOT=C:\MinGW\""
    goto :eof)
call :Clear_Error
}}} }}} should instead be: {{{ #!html
if EXIST ""..\MinGW\bin\gcc.exe"" (
    set ""BOOST_JAM_TOOLSET=mingw""
    set ""BOOST_JAM_TOOLSET_ROOT=..\MinGW\""
    goto :eof)
call :Clear_Error
}}} to catch that mingw installation which lies along with boost in the same parent directory. This is needed in case both of them are run from removable drive or there are different pairs of boost and mingw for testing." anonymous Boost 1.52.0 7865 error: unknown target CPU 'i386' for the boost b2 build using architecture=x86 address-model=32 build Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2013-01-07T19:33:56Z 2013-05-20T12:58:33Z "Trying to build boost 1.52 for 32 bit architecture on OS X 10.7.5, using clang: ./b2 toolset=clang cxxflags=""-std=c++11 -stdlib=libc++"" linkflags=""-stdlib=libc++"" architecture=x86 address-model=32 Get a lot of errors of this type: {{{ ""clang++"" -x c++ -O3 -std=c++11 -stdlib=libc++ -O3 -finline-functions -Wno-inline -Wall -march=i386 -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I""."" -c -o ""bin.v2/libs/date_time/build/clang-darwin-4.2.1/release/address-model-32/architecture-x86/threading-multi/gregorian/greg_month.o"" ""libs/date_time/src/gregorian/greg_month.cpp"" ...failed clang-darwin.compile.c++ bin.v2/libs/date_time/build/clang-darwin-4.2.1/release/address-model-32/architecture-x86/threading-multi/gregorian/greg_month.o... clang-darwin.compile.c++ bin.v2/libs/date_time/build/clang-darwin-4.2.1/release/address-model-32/architecture-x86/threading-multi/gregorian/greg_weekday.o error: unknown target CPU 'i386' }}} " anonymous Boost 1.52.0 7884 unused parameter warnings tokenizer Boost 1.52.0 To Be Determined Bugs jsiek new 2013-01-11T17:27:57Z 2013-01-11T17:27:57Z "Hello, I've noticed a few 'unused parameter' warnings in the spirit library, as discussed in the related bug https://svn.boost.org/trac/boost/ticket/7880. After suggestion, I'm submitting a new bug against the specific project. Attached is a patch that fixes those ones that I've found (by not naming the parameters)." alex@… Boost 1.52.0 7893 Unresolved link errors when building 64 bit ASIO with 64 bit OpenSSL under Windows asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2013-01-14T22:55:35Z 2013-02-04T13:43:29Z "According to this link: http://stackoverflow.com/questions/9357751/boost-ssl-with-visual-studio-2010-and-openssl There is a problem when trying to build a very simple program which includes 3 include files from Boost::ASIO. The program fails to build when linking with the 64 bit version of the Boost library as well as the 64 bit version of the OpenSSL library. The build succeeds when the 32 bit version of the Boost library is used in conjunction with the 32 bit version of the OpenSSL library. I have tried building it for Boost versions 1.51 and 1.52. Have also tried the c and j versions of the 64 bit OpenSSL library for Windows which results in the same error. The link above is for building with VS2010. The same error results for me when I try to build with VS2008. I have also written a description of the problem in StackOverflow.com as well which involved building one of the ASIO example programs: http://stackoverflow.com/questions/14286346/link-unresolved-error-with-vs2008-boost-asio-and-openssl The work around to the problem right now is to build it with 32 bit libraries. If you can successfully build using VS2010 or VS2008 with the 64 bit versions, then please advise on what you think the problem might be. This problem has been reported by several individuals." RobertGBryan@… Boost 1.52.0 7901 jam's hash.c misaligns hashed entries build Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2013-01-17T16:05:56Z 2014-10-09T05:59:52Z "On platforms where a void* is smaller (e.g. 32bit) than a time_t (e.g. 64bit) and where the cpu requires strict alignment, jam bus errors already during bootstrap. NetBSD/sparc is an example for such a platform. This is because the hash_item_data macro () casts to char* and adds sizeof a struct only containing a pointer, while later filesys code stores file_info_t structures in a hash (which include time_t members and need greater alignment). Since this is all needed very early, the easiest and most portable solution is to force sizeof(ITEM) to be great enough for the required alignment by making it a union including a dummy time_t member. This has the benefit of beeing a no-op for non affected architectures. I have a patch tested against the 1.52 release, but the idea should be obvious and applying it to the (a bit different) trunk code should be straighforward. Please let me know if you need a real patch against trunk." martin@… Boost 1.52.0 7904 doc: bad qbk macro __boost__ptr_map__ functional/factory Boost 1.52.0 To Be Determined Bugs t_schwinger new 2013-01-18T19:02:28Z 2013-01-18T19:02:28Z "see [http://www.boost.org/doc/libs/1_52_0/libs/functional/factory/doc/html/index.html] search for `__boost__ptr_map__`. It is probably meant to be `boost::ptr_map`." Eric Niebler Boost 1.52.0 7910 MSVC-11 can't find some symbols in Boost::System static library system Boost 1.52.0 To Be Determined Bugs Beman Dawes new 2013-01-20T21:30:09Z 2013-07-07T16:32:24Z " {{{ #ifndef BOOST_SYSTEM_ERROR_CATEGORY_DIRTY_WORKAROUND #define BOOST_SYSTEM_ERROR_CATEGORY_DIRTY_WORKAROUND // I have not had a chance to investigate the root cause of this problem, // but it happens when I use boost::asio on MSVC-11 (Visual Studio 2012). // The problem seems to be that boost::system defines generic_error_category and system_error_category, // but then somehow doesn't have these symbols in the libboost_system-vc110-mt-1_52.lib library when you build boost // with just ""/b2"" with and toolset=msvc-11.0 // For me the problem happened when I was trying to use boost::asio from something I compiled with MSVC-11.0. // I got linker errors, so it's a showstopper. // Feel free to contact me at MyName.MyLastName@Gmail.com for more detail. // Now, I found that if you build boost on your machine with /b2 and then specifically do these two steps: // > b2 --with-system threading=multi link=static runtime-link=shared clean // > b2 --with-system threading=multi link=static runtime-link=shared // then magicaly the problem goes away and you don't need this workaround below it seems. // But since the root cause is not clear to me, the problem may not go away for you after the steps above. // So, if it didn't go away for you indeed, feel free to add this piece of source code into your application. // Two ways to do it: // 1. if you are adding this piece of code as an include file, uncomment these two lines: // #undef BOOST_SYSTEM_ERROR_CATEGORY_DIRTY_WORKAROUND // #define BOOST_SYSTEM_ERROR_CATEGORY_DIRTY_WORKAROUND inline // 2. but if you are adding it as a separate compilation unit (source file), then don't uncomment anything #if defined(_MSC_VER) && _MSC_VER >= 1700 #include // looks like implementations of three error categories are defined in MSVC 11 include files in 'std' namespace #include // interfaces for those error categories required by boost in 'boost' namespace, but somehow implementations cannot be found in the library files // glue that hooks up the implementations from MSVC11 to the interfaces required by boost // (this glue code is **unsafe** in case MSVC or Boost change interfaces for these error categories, because reinterpret_cast is used, // so a safer way to go about it would be to wrap std::error_category& as a field of some wrapper class that inherits from boost::system::error_category, // but it works with these versions, because boost and std interfaces are the same (""binary compatible""!) now and I don't yet have time to do it properly) namespace boost { namespace system { error_category const& system_category() { return reinterpret_cast(std::system_category()); } error_category const& generic_category() { return reinterpret_cast(std::generic_category()); } error_category const& iostream_category() { return reinterpret_cast(std::iostream_category()); } }} #endif // defined(_MSC_VER) && _MSC_VER >= 1700 #endif // BOOST_SYSTEM_ERROR_CATEGORY_DIRTY_WORKAROUND }}} " Gene Panov Boost 1.52.0 7927 boost::bimap not boost::interprocess compatible. bimap Boost 1.52.0 To Be Determined Bugs Matias Capeletto new 2013-01-25T16:33:49Z 2013-01-25T16:33:49Z "I've been trying to get boost::bimap to work in a boost::interprocess::managed_mapped_file. According to Matias Capeletto in this thread on the boost devel mailing list: http://thread.gmane.org/gmane.comp.lib.boost.devel/238100/ Bimap is just given your allocator to MultiIndex. The issue is that the map views (left, right and relation set) are initialized with a reference to the multiindex core in construction time... when interprocess read it from memory the second time this references are garbage. A direct solution will be to use interprocess offset_ptr, but that will have a performance hit so I will have to rethink how the views are accessing the core, probably using CRTP. I've attached two small programs. Both compile with g++ 4.7. One (multiindex.c++) puts a multi_index into the managed_mapped_file. On the first run, it creates the data structure puts some stuff in it, then reopens the data structure and outputs the stuff. On the second run, it does the same thing, but it uses the data stored in the mapped file. The other program (bimap.c++) does exactly the same thing, but when run the second time it crashes. My guess is because bimap isn't quite interprocess compatible---that is, it isn't using the provided allocator for EVERYTHING. Compiled with: {{{ g++ -o multiindex multiindex.c++ -lpthread }}} and {{{ g++ -g -o bimap bimap.c++ -lpthread }}} Joel" jdy@… Boost 1.52.0 7929 boost::lexical_cast< std::string, std::wstring > gives a compiler error. program_options Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2013-01-26T01:44:35Z 2013-06-12T19:07:09Z "This causes a problem with `boost::program_options::typed_value< std::wstring, wchar_t >::default_value( const std::wstring& v )` which attempts to use lexical_cast to convert `v` into a `std::string`. Using `lexical_cast` to convert a wide string to a normal one may be debatable, but program_options should not give a compiler error on a valid use case such as the one shown below. Luckily you can work around this by providing an explicit `std::string` version or not using the `default_value` method at all. ==== lexical_cast error ==== {{{#!cpp #include #include int main( int argc, wchar_t* argv[] ){ std::wstring wstr = L""some string""; std::string str = boost::lexical_cast< std::string >( wstr ); return 0; } }}} ==== program_options error ==== {{{#!cpp #include #include int main( int argc, wchar_t* argv[] ){ namespace po = boost::program_options; po::options_description opts( ""Some opts"" ); std::wstring str = L""""; opts.add_options() ( ""o"", po::wvalue< std::wstring >( &str ) ->default_value( L""default value"" ), // This line causes error. ""an option"" ); return 0; } }}} " nate@… Boost 1.52.0 7932 "Document the ""*"" wildcard feature in option keys" program_options Boost 1.52.0 To Be Determined Bugs Vladimir Prus new 2013-01-27T15:51:31Z 2013-01-27T15:51:31Z "Document the ""*"" wildcard feature in option keys." smntov@… Boost 1.52.0 7934 tuples::element returns wrong typesss for bolatile tuples tuple Boost 1.52.0 To Be Determined Bugs Joel de Guzman new 2013-01-28T01:01:27Z 2013-01-28T03:34:46Z "Hi, according to c++11, volatile tuples should return volatile elements. I think, boost tuple should behave similarly, however it doesn't. Below is an example with two tests, one test for boost tuple and one for standard tuple. The boost tuple test fails. {{{ // file a.cpp #define BOOST_TEST_MODULE example #include #include #include #include BOOST_AUTO_TEST_CASE( boost_tuple ) { using boost::is_same; using boost::tuple; using boost::tuples::element; typedef element<0, volatile tuple > VElement; typedef element<0, const volatile tuple > CVElement; BOOST_CHECK((is_same::value)); BOOST_CHECK((is_same::value)); } BOOST_AUTO_TEST_CASE( std_tuple ) { using boost::is_same; using std::tuple; using std::tuple_element; typedef tuple_element<0, volatile tuple > VElement; typedef tuple_element<0, const volatile tuple > CVElement; BOOST_CHECK((is_same::value)); BOOST_CHECK((is_same::value)); } }}} {{{ ptomulik@barakus$ g++ -ansi -std=c++11 -Werror -Wall -Wextra -pedantic a.cpp ptomulik@barakus$ ./a.out Running 2 test cases... a.cpp(15): error in ""boost_tuple"": check (is_same::value) failed a.cpp(16): error in ""boost_tuple"": check (is_same::value) failed *** 2 failures detected in test suite ""example"" }}} my gcc version {{{ ptomulik@barakus:$ g++ --version g++ (Debian 4.7.2-5) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }}} " ptomulik@… Boost 1.52.0 7937 local_time_types.hpp tries to typedef local_microsec_clock on system without BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK date_time Boost 1.52.0 To Be Determined Bugs az_sw_dude new 2013-01-28T12:24:39Z 2013-01-28T12:24:39Z "On platforms that don't define {{{ BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK }}} (e.g. due to a missing gettimeofday()), in file local_time_types.hpp date_time tries to {{{ typedef date_time::second_clock local_sec_clock }}} This obvioulsy results in a compile error on such systems. This typedef should be embraced by an {{{ #ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK }}} A patch is attached. " p.brockamp@… Boost 1.52.0 7963 bootstrap.sh uses echo -n, which is not portable Building Boost Boost 1.52.0 To Be Determined Bugs new 2013-02-02T00:43:31Z 2013-02-02T00:43:31Z The echo builtin in OS X's sh does not support any command line switches, which results in bootstrap.sh's output being somewhat ugly (but still working; this is purely cosmetic). The attach patch simply replaces all of the uses of echo -n with printf, which works on all unix-like systems. anonymous Boost 1.52.0 7986 iostreams fails to compile on AIX7 XLC11 with _LARGE_FILES iostreams Boost 1.52.0 To Be Determined Bugs Jonathan Turkanis new 2013-02-05T22:31:49Z 2014-01-13T22:30:06Z "AIX version: 7100.01.05.1228 VACPP version: 11.1.0.12 Compiling iostreams library with _LARGE_FILES support causes the below compilation errors. I was able to resolve the compilation error by moving the inclusion of fcntl so that it's _LARGE_FILES macro definitions affects all of the source instead of just part. Patch for 1.52.0 attached. common.mkdir ../../../bin.v2 common.mkdir ../../../bin.v2/libs common.mkdir ../../../bin.v2/libs/iostreams common.mkdir ../../../bin.v2/libs/iostreams/build common.mkdir ../../../bin.v2/libs/iostreams/build/vacpp common.mkdir ../../../bin.v2/libs/iostreams/build/vacpp/debug vacpp.compile.c++ ../../../bin.v2/libs/iostreams/build/vacpp/debug/file_descriptor.o ""../../../libs/iostreams/src/file_descriptor.cpp"", line 400.6: 1540-1140 (S) The member ""void open64(handle_type, file_descriptor_flags)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 404.6: 1540-1140 (S) The member ""void open64(handle_type, bool)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 424.6: 1540-1140 (S) The member ""void open64(const std::string &, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 427.6: 1540-1140 (S) The member ""void open64(const char *, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 447.6: 1540-1140 (S) The member ""void open64(const path &, std::ios::openmode, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 493.6: 1540-1140 (S) The member ""void open64(handle_type, file_descriptor_flags)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 497.6: 1540-1140 (S) The member ""void open64(handle_type, bool)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 513.6: 1540-1140 (S) The member ""void open64(const std::string &, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 517.6: 1540-1140 (S) The member ""void open64(const char *, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 521.6: 1540-1140 (S) The member ""void open64(const path &, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 565.6: 1540-1140 (S) The member ""void open64(handle_type, file_descriptor_flags)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 569.6: 1540-1140 (S) The member ""void open64(handle_type, bool)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 585.6: 1540-1140 (S) The member ""void open64(const std::string &, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 589.6: 1540-1140 (S) The member ""void open64(const char *, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 593.6: 1540-1140 (S) The member ""void open64(const path &, std::ios::openmode)"" must be declared in its containing class definition. ""../../../libs/iostreams/src/file_descriptor.cpp"", line 364.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 364.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 369.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 369.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 389.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""const std::_LFS_ON::basic_string,std::allocator >"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 389.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 460.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor_source::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 460.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 465.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor_source::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 465.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 482.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""const std::_LFS_ON::basic_string,std::allocator >"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 482.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 533.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor_sink::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 533.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 538.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""boost::iostreams::file_descriptor_sink::handle_type"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 538.8: 1540-1205 (I) The error occurred while converting to parameter 1 of ""open64(const char *, int, ...)"". ""../../../libs/iostreams/src/file_descriptor.cpp"", line 555.8: 1540-0256 (S) A parameter of type ""const char *"" cannot be initialized with an expression of type ""const std::_LFS_ON::basic_string,std::allocator >"". " Kevin Burge Boost 1.52.0 8010 Iterator adaptor and facade are not in TR1 iterator Boost 1.52.0 To Be Determined Bugs jeffrey.hellrung new 2013-02-08T12:15:12Z 2013-02-08T12:15:12Z "http://www.boost.org/doc/libs/1_53_0/libs/iterator/doc/#iterator-facade-and-adaptor says > Both iterator_facade and iterator_adaptor as well as many of the specialized adaptors mentioned below have been proposed for standardization, and accepted into the first C++ technical report; Assuming this is referring to TR1 it's incorrect and very out of date, neither was included in TR1." Jonathan Wakely Boost 1.52.0 8012 Inconsistency in linearize() circular_buffer Boost 1.52.0 To Be Determined Bugs No-Maintainer new 2013-02-08T17:41:28Z 2013-10-24T21:35:39Z "Assume two equivalent non-empty circular buffers A and B, with A reporting as linearized and B as not linearized. After calling ''clear()'' on them, they will both still report the same linearized state as before; the linearized state applies to all buffers, whether empty or not. However, calling ''linearize()'' on the non-linearized empty buffer B will '''not''' linearize it, which is inconsistent. One option to fix this would be to automatically linearize a buffer when it becomes empty, but that would force some overhead even in cases where it is unnecessary. A better solution would be to make ''linearize()'' work normally even on empty buffers." Serge Meynard Boost 1.52.0 8021 gcc: ptree_utils.hpp:76: warning: comparison is always false due to limited range of data type [-Wtype-limits] property_tree Boost 1.52.0 To Be Determined Bugs Sebastian Redl new 2013-02-09T20:00:59Z 2013-07-18T09:04:13Z "gcc version 4.7.2 (Built by MinGW-builds project) i686-w64-mingw32 yields {{{ boost/property_tree/detail/ptree_utils.hpp: In instantiation of 'std::string boost::property_tree::detail::narrow(const Ch*) [with Ch = wchar_t; std::string = std::basic_string]': boost/property_tree/string_path.hpp:64:36: required from here boost/property_tree/detail/ptree_utils.hpp:76:13: warning: comparison is always false due to limited range of data type [-Wtype-limits] 76: if (*text < 0 || *text > (std::numeric_limits::max)()) }}}" anonymous Boost 1.52.0 8125 Failure compiling data_members.hpp with i386-mingw32 under OS X python USE GITHUB Boost 1.52.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-02-20T18:15:48Z 2013-02-20T18:34:16Z "I'm using boost to compile Python support for libRocket (librocket.com). I compile my engine across a variety of platforms and compilers, and I've only come across this issue with the i386-mingw32 compiler obtained from Mac Ports (macports.org), on OS X. The mingw compiler for Ubuntu seems to work just fine, as well as the native compilers for each system, for Android, iOS, etc. The error I get is the following: {{{ In file included from /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/Rocket/Core/Python/precompiled.h:32, from /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/cython_src/Rocket+Core+Python+ElementChildrenProxy.cpp:28: /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/Rocket/Core/Python/Python.h:38: warning: ignoring #pragma warning /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/Rocket/Core/Python/Python.h:39: warning: ignoring #pragma warning In file included from /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/Rocket/Core/Python/precompiled.h:32, from /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/cython_src/Rocket+Core+Python+ElementAttributeProxy.cpp:28: /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/Rocket/Core/Python/Python.h:49: warning: ignoring #pragma warning /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/boost/python/data_members.hpp: In function `boost::python::api::object boost::python::make_getter(const D&) [with D = const char*(Rocket::Core::Python::ElementAttributeProxy::AttributeProxy::*)()]': /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/boost/python/class.hpp:484: instantiated from `boost::python::class_& boost::python::class_::def_readonly_impl(const char*, D&, const char*) [with D = const char*(Rocket::Core::Python::ElementAttributeProxy::AttributeProxy::*const)(), W = Rocket::Core::Python::ElementAttributeProxy::AttributeProxy, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/boost/python/class.hpp:283: instantiated from `boost::python::class_& boost::python::class_::def_readonly(const char*, const D&, const char*) [with D = const char*(Rocket::Core::Python::ElementAttributeProxy::AttributeProxy::*)(), W = Rocket::Core::Python::ElementAttributeProxy::AttributeProxy, X1 = boost::python::detail::not_specified, X2 = boost::python::detail::not_specified, X3 = boost::python::detail::not_specified]' /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/cython_src/Rocket+Core+Python+ElementAttributeProxy.cpp:49: instantiated from here /Users/gabo/ignifuga/tmp/intel_mingw32/ignifuga/boost/python/data_members.hpp:279: error: no matching function for call to `make_getter(const char*(Rocket::Core::Python::ElementAttributeProxy::AttributeProxy::*const&)(), boost::python::detail::not_specified&, boost::is_member_pointer, long int)' make: *** [Modules/Rocket+Core+Python+ElementAttributeProxy.o] Error 1 }}} " gabomdq@… Boost 1.52.0 8134 Compiler error using boost::foreach with boost::bimap bimap Boost 1.52.0 To Be Determined Bugs Matias Capeletto new 2013-02-21T05:39:28Z 2013-03-25T23:30:35Z "boost_1_52_0\boost\multi_index\ordered_index.hpp(1399) : error C3083: 'BOOST_FOREACH': the symbol to the left of a '::' must be a type boost_1_52_0\boost\multi_index\ordered_index.hpp(1399) : error C2039: 'tag' : is not a member of 'boost' boost_1_52_0\boost\multi_index\ordered_index.hpp(1399) : error C2061: syntax error : identifier 'tag' This occurs when using boost::bimap and boost::foreach. Seen first in 1.52, also in 1.53. OK in 1.49, with Visual tudio 2008 and 2010 Very simple VS2008 project included. Need to set environment variable BOOST_DIR to the boost directory, or change the project settings explicitly." john.x.foster@… Boost 1.52.0 8183 boost::geometry::intersection on two polygons returns incorrect empty intersection geometry Boost 1.52.0 To Be Determined Bugs Barend Gehrels assigned 2013-02-26T09:24:56Z 2013-03-17T17:47:02Z "Hi The code snippet intersects 2 2D polygons resulting in an empty intersection. I'm including an image of the two polygons and they are overlapping. There may be a problem because the polygons share an overlapping edge? Thanks Matthew Danielsen {{{ polygon_2d triangle2D; { const double triangle2Dcoor[] = {{0.891747, 2.28756}, {0.490911, -1.52549}, {-1.72945, -1.52549}, {0.891747, 2.28756}}; assign(triangle2D, triangle2Dcoor); } polygon_2d box2D; { const double box2Dcoor[] = {{-1.6744, -1.52549}, {-1.70498, -1.52549}, {-1.70052, -1.49155}, {-1.67049, -1.49579}, {-1.6744, -1.52549}}; assign(box2D, box2Dcoor); } boost::geometry::model::multi_polygon< boost::geometry::model::polygon > > intersectionPolygons; boost::geometry::intersection(triangle2D, box2D, intersectionPolygons); assert(intersectionPolygons.size() != 0); // Assert fails }}} " matthewd@… Boost 1.52.0 8242 strerror is not thread-safe on all platforms interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2013-03-05T08:54:25Z 2013-03-05T08:54:25Z "boost/interprocess/errors.hpp uses strerror function which is not thread-safe on many platforms (e.g. Linux). Its use should be replaced with strerror_r, when possible. As a hint for implementation see libs/system/src/error_code.cpp. " Andrey Semashev Boost 1.52.0 8243 strerror is not thread-safe on all platforms exception Boost 1.52.0 To Be Determined Bugs Emil Dotchevski new 2013-03-05T09:00:19Z 2013-03-09T00:13:31Z "boost/exception/errinfo_errno.hpp uses strerror function which is not thread-safe on many platforms (e.g. Linux). Its use should be replaced with strerror_r, when possible. As a hint for implementation see libs/system/src/error_code.cpp. " Andrey Semashev Boost 1.52.0 8244 strerror is not thread-safe on all platforms iostreams Boost 1.52.0 To Be Determined Bugs Jonathan Turkanis new 2013-03-05T09:04:23Z 2013-03-05T09:04:23Z "boost/iostreams/detail/system_failure.hpp uses strerror function which is not thread-safe on many platforms (e.g. Linux). Its use should be replaced with strerror_r, when possible. As a hint for implementation see libs/system/src/error_code.cpp. " Andrey Semashev Boost 1.52.0 8276 Shared Memory Access by 32-bit and 64-bit Processes interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2013-03-11T17:12:17Z 2016-04-07T14:14:10Z "Problem: Exception raised in Segment.find_or_construct<>() call. {{{ Problem: Exception raised in Segment.find_or_construct<>() call. The system operates if all of the the processes are 64-bit, or if all of the processes are 32-bit. If the shared memory segment has been constructed by a 64-bit process, attempting to find_or_construct it with a 32-bit process fails. Similary, if the shared memory segment has been constructed by a 32-bit process, attempting to find_of_construct it with a 64-bit process fails. I have determined that the actual objects in shared memory report different sizes when compiled for 32-bit or 64-bit. This is a multi-cast PubSub program. It constructs the following complex data structure in shared memory: // Boost includes #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef managed_shared_memory::segment_manager segment_manager_t; // this is the segment_manager // Define the allocators. typedef boost::interprocess::allocator void_allocator; // void_allocator is convertible to any other allocator. typedef boost::interprocess::allocator int_allocator; // allocator for allocating ints. typedef boost::interprocess::vector int_vector; // an int_vector is a vector of ints. typedef boost::interprocess::allocator int_vector_allocator; // an allocator for allocating vectors of ints. typedef boost::interprocess::vector int_vector_vector; // an int_vector_vector is a vecctor of (vectors of ints) typedef boost::interprocess::allocator semaphore_allocator; // an allocator for interprocess_semaphore typedef boost::interprocess::allocator wchar_allocator; // an allocator for wide chars. typedef boost::interprocess::basic_string, wchar_allocator> wchar_string; // a basic_string (which supports formatting). This is built on a collection of wide chars, allocated by wchar_alloctor. class EventMessage { EnumEventType EventType_; // an enum EnumEventSubType EventSubType; // an enum ULONG32 ProcessId_; ULONG32 ThreadId_; EnumMyType MyType_; // an enum wchar_string FullPath_; GUID GuidPublisher_; } // Event allocators typedef boost::interprocess::allocator EventMessage_allocator; // allocator for allocating EventMessage typedef boost::interprocess::vector EventMessage_vector; // vector of EventMessage objects. class Subscription { ULONG32 uSignature_; ULONG32 uSubscribingProcessId_; ULONG32 uSubscribingThreadId_; EnumEventType nEventType_ // an enum offset_ptr pSemaphoreSubscription_; GUID guidSubscriber_; BOOL fDestructed; BOOL fWaiting_; BOOL fCancelled_; EventMessage_vector events_; // a shared memory vector of EventMessage } // Define the types related to Subscription typedef boost::interprocess::allocator subscription_allocator; // allocator for allocating Subscription typedef boost::interprocess::allocator guid_allocator; // allocator for allocating GUID typedef std::pair pair_guid_subscription; // a pair of GUID, Subscription typedef boost::interprocess::allocator eventtype_allocator; // allocator for allocating EnumEventType typedef boost::interprocess::allocator pair_guid_subscription_allocator; // allocator for pair_guid_subscription typedef boost::unordered_map, std::equal_to, pair_guid_subscription_allocator> guid_subscription_map; // a map of GUID => Subscription typedef std::pair pair_eventtype_pair_guid_subscription; // a pair(EnumEventType, pair(GUID, Subscription)) typedef boost::interprocess::allocator pair_eventtype_pair_guid_subscription_allocator; // allocator for pair(EnumEventType, pair(GUID, Subscription)) typedef boost::unordered_map, std::equal_to, pair_eventtype_pair_guid_subscription_allocator> eventtype_map_guid_subscription_map; // a map(EnumEventType, map typedef boost::interprocess::vector subscription_vector; // a vector of Subscriptions typedef boost::interprocess::allocator subscription_vector_allocator; // allocator for allocating a vector of Subscription. typedef boost::interprocess::allocator guid_subscription_map_allocator; // allocator for allocating a map of GUID => Subscription typedef boost::interprocess::allocator eventtype_map_guid_subscription_map_allocator; // allocator for allocating map> // This is the single item defined in the segment class Base { uint64_t reserved1_; uint64_t reserved2_; ULONG32 uSignature_; interprocess_mutex mutexSharedMemory_ eventtype_map_guid_subscription_map subscriptions_; // a shared memory map of [GUID, Subscription] (the active subscriptions) } The following sizes are reported: 64-bit sizeof(IntPtr): 8 sizeof(ULONG32): 4 sizeof(BOOL): 4 sizeof(EnumEventType): 4 sizeof(EnumEventSubType): 4 sizeof(EnumCloudAppIconBadgeType): 4 sizeof(GUID): 16 sizeof(EventMessage): 72 sizeof(Subscription): 88 sizeof(Base): 104 sizeof(size_t): 8 32-bit: sizeof(IntPtr): 4 sizeof(ULONG32): 4 sizeof(BOOL): 4 sizeof(EnumEventType): 4 sizeof(EnumEventSubType): 4 sizeof(EnumCloudAppIconBadgeType): 4 sizeof(GUID): 16 sizeof(EventMessage): 60 sizeof(Subscription): 64 sizeof(Base): 72 sizeof(size_t): 4 Note that all of the fundamental types are the same size, but the Boost interprocess sizes are different. I thought that as of Boost 1.48 all of the sizes were normalized to use the same shared memory sizes whether compiled for 32- or 64-bit. Perhaps I am doing something wrong. Suggestions will be welcome. Thanks. }}}" Bob Stevens Boost 1.52.0 8278 BOOST_ASSERT_MSG prerocessed out if NDEBUG is defined regardless of BOOST_ENABLE_ASSERT_HANDLER utility Boost 1.52.0 To Be Determined Bugs Beman Dawes reopened 2013-03-11T22:55:50Z 2013-03-14T22:01:10Z "There is an inconsistency in boost/assert.hpp. The macros `BOOST_ASSERT` and `BOOST_VERIFY` are *not* preprocessed out when `BOOST_ENABLE_ASSERT_HANDLER` is defined, but `BOOST_ASSERT_MSG` is. The inconsistency should be resolved one way or the other, and I think making `BOOST_ASSERT_MSG` behave like the other two makes the most sense. Assigning to you, Peter, since you created this file. Please reassign as appropriate. " Eric Niebler Boost 1.52.0 8280 missing reference docs for members of basic_managed_shared_memory interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2013-03-12T06:05:38Z 2013-03-12T06:05:38Z "The reference docs say that `managed_shared_memory` is a typedef for an instantiation of the `basic_managed_shared_memory` template. The reference docs for that are here: http://www.boost.org/doc/libs/1_53_0/doc/html/boost/interprocess/basic_managed__idp56460464.html The members `find`, `construct`, `construct_it` and `destroy` are not documented here, despite being used in the example here: http://www.boost.org/doc/libs/1_53_0/doc/html/interprocess/quick_guide.html#interprocess.quick_guide.qg_named_interprocess " Eric Niebler Boost 1.52.0 8281 interprocess docs refer to non-existant basic_managed_shared_memory::remove interprocess Boost 1.52.0 To Be Determined Bugs Ion Gaztañaga new 2013-03-12T07:05:08Z 2013-03-12T07:06:01Z "The reference docs for `~basic_managed_shared_memory` here (www.boost.org/doc/libs/1_53_0/doc/html/boost/interprocess/basic_managed__idp56460464.html) say: > Destroys *this and indicates that the calling process is finished using the resource. The destructor function will deallocate any system resources allocated by the system for use by this process for this resource. The resource can still be opened again calling the open constructor overload. To erase the resource from the system use remove(). There is no member `remove`. " Eric Niebler Boost 1.52.0 8290 Python GIL not acquired before freeing shared_ptr, causes crash python USE GITHUB Boost 1.52.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-03-13T12:05:02Z 2015-09-30T04:44:22Z "We're successfully using boost::python with Python on multiple threads that lock and release the GIL as appropriate, and correctly set the Python thread state, etc. One thing we don't have control over, however, is the freeing of shared_ptr objects which were created by boost::python. This may happen on a different thread than the previous Python execution and/or without the GIL being locked. To fix this, the following patch is required: {{{ --- builtin_converters.cpp 2011-06-07 06:15:33.000000000 +0200 +++ builtin_converters.cpp.fixed 2013-03-13 12:57:29.346638173 +0100 @@ -32,7 +32,9 @@ void shared_ptr_deleter::operator()(void const*) { + PyGILState_STATE gil = PyGILState_Ensure(); owner.reset(); + PyGILState_Release(gil); } namespace }}} This fix can be applied externally to boost::python, but requires a few header files that re-implement shared_ptr_to_python.hpp and shared_ptr_from_python.hpp." team@… Boost 1.52.0 8348 asio::detail::epoll_reactor::descriptor_state c'tor doesn't initialize all POD members asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2013-03-27T18:49:01Z 2013-05-24T12:20:52Z "{{{ epoll_reactor::descriptor_state::descriptor_state() : operation(&epoll_reactor::descriptor_state::do_complete) { 5. uninit_member: Non-static class member ""next_"" is not initialized in this constructor nor in any functions that it calls. 7. uninit_member: Non-static class member ""prev_"" is not initialized in this constructor nor in any functions that it calls. 9. uninit_member: Non-static class member ""reactor_"" is not initialized in this constructor nor in any functions that it calls. 11. uninit_member: Non-static class member ""descriptor_"" is not initialized in this constructor nor in any functions that it calls. 13. uninit_member: Non-static class member ""registered_events_"" is not initialized in this constructor nor in any functions that it calls. CID 10922 (#2 of 2): Uninitialized pointer field (UNINIT_CTOR)15. uninit_member: Non-static class member ""shutdown_"" is not initialized in this constructor nor in any functions that it calls. } }}}" Richard Boost 1.52.0 8380 sym_difference yields bad result for large numbers geometry Boost 1.52.0 To Be Determined Bugs Barend Gehrels new 2013-04-03T14:46:43Z 2015-09-21T14:37:59Z "Here is an example where using a relatively small number yields the correct result whereas using ''boost::numeric::bounds::highest()/2'' yields a bad result when calling boost::geometry::sym_difference. My polygon type is '''oriented counter-clockwise''' and '''not closed''', my point type is based on '''int'''. Based on using int, can you offer any guidance about the largest possible numbers (""domain of definition"") that yield correct results in the boost geometry algorithms? Here is our conversation on the geometry mailing list regarding this issue in 1.48.0:[[BR]] http://lists.boost.org/geometry/2012/02/1849.php For readability, I use the `^` operator to denote the call to sym_difference below. {{{ MULTIPOLYGON(((564 2394,1548 2850,2526 2916,2526 32767,564 32767))) ^ MULTIPOLYGON(((564 3252,2526 3252,2526 32767,564 32767))) correct result: MULTIPOLYGON(((564 3252,564 2394,1548 2850,2526 2916,2526 3252))) MULTIPOLYGON(((564 2394,1548 2850,2526 2916,2526 1073741823,564 1073741823))) ^ MULTIPOLYGON(((564 3252,2526 3252,2526 1073741823,564 1073741823))) bad result: MULTIPOLYGON(((564 3252,564 2394,1548 2850,2526 2916,2526 333411))) }}}" Volker Schöch Boost 1.52.0 8437 /boost/iostreams/stream.hpp possibly wrong detail::stream_base superclass iostreams Boost 1.52.0 To Be Determined Bugs Jonathan Turkanis new 2013-04-14T20:19:01Z 2013-04-20T10:51:50Z "The file contains: typedef typename stream_traits::stream_type stream_type; ... stream_base() : pbase_type(), stream_type(&member) { } Thus stream_type *must* be a supertype of stream_base; however, the only supertypes are: : protected base_from_member< stream_buffer >, public Base And the default value for template argument, Base, is: typename Base = // VC6 Workaround. BOOST_DEDUCED_TYPENAME detail::stream_traits::stream_type So I would guess type stream_type typedef should be removed and Base substituted for stream_type in the CTOR intialization list. " anonymous Boost 1.52.0 8438 vector & circular_buffer storage misbehave when using compiler optimizations uBLAS Boost 1.52.0 To Be Determined Bugs Gunter new 2013-04-15T12:35:39Z 2013-06-09T21:05:23Z "When compiling the following code without optimizations, it behaves as expected: (compiled with g++-4.7.2 with no flags at all) {{{ #include #include #include int main () { boost::numeric::ublas::vector > v (3, 1); std::cout << v << std::endl; v[1] = 5; std::cout << v << std::endl; std::cout << v[1] << std::endl; return 0; } }}} Output: {{{ [3](1,1,1) [3](1,5,1) 5 }}} When compiling the exact same code with O1, O2, and O3 it produces the following output: {{{ [3](0,0,0) [3](0,0,0) 5 }}} I noticed that inner_prod() also sees the vector as zeros." ofir Boost 1.52.0 8463 function_output_iterator: MSVC warning C4512 iterator Boost 1.52.0 To Be Determined Bugs jeffrey.hellrung new 2013-04-19T18:10:30Z 2013-07-03T10:54:35Z "In `boost/function_output_iterator` the struct `function_output_iterator::output_proxy` yields this warning: ""assignment operator could not be generated."" I see this primarily using signals2, where the iterator class is created using `boost::signals2::detail::does_nothing` as the iterator template argument. The warning is due to the proxy's const data member, and probably not dependent on the iterator template argument. The struct also has a templated operator= defined, but not of the sort that would work as a copy-assignment. Other libraries (fusion, spirit, statechart in particular) have implemented do-nothing assignment operators (or just declarations) to overcome similar symptoms. If I do the same for this class in my local copy -- simply add a declaration for this particular signature: {{{ private: output_proxy& operator=(output_proxy const &src); }}} the warning goes away; however, I can't be sure this doesn't break something. It seems unlikely, as I can run code with the warning and my signals seem to work just fine." Mike Cowperthwaite Boost 1.52.0 8488 Code/doc mismatch in iterator_facade distance_to iterator Boost 1.52.0 To Be Determined Bugs jeffrey.hellrung new 2013-04-23T18:39:57Z 2013-04-23T18:39:57Z "When creating a random access facade, one must implement the distance_to member function in order for std::distance to work. However, it looks like the arguments passed to this method are reversed from what the documentation states. Specifically, the docs [1] say (paraphrased): a.distance_to(b) is equivalent to distance(a, b). However, when I call std::distance(a, b), I find that b.distance_to(a) is invoked in the facade - the mirror image of what the docs say! A test case demonstrating the problem is attached. [1] http://www.boost.org/doc/libs/1_53_0/libs/iterator/doc/iterator_facade.html#iterator-facade-requirements" gredner@… Boost 1.52.0 8498 cray.jam doesn't build .so files Building Boost Boost 1.52.0 To Be Determined Bugs rsd assigned 2013-04-26T04:16:30Z 2013-10-14T13:49:35Z The current cray.jam file doesn't build dynamic libraries because of the lack of the -fPIC flet ag. On my my system I made the following changes (in attached patch) and was able to get ec.verything to build. I'm not a boostjam expert, I just modelled my changes on the pgi.jam and gcc.jam files. So some of these changes might not be appropriate. alan@… Boost 1.52.0 8499 improving pgi support Building Boost Boost 1.52.0 To Be Determined Bugs new 2013-04-26T04:25:35Z 2013-04-26T04:25:35Z "I have access to PGI 12.2 and 12.5 on a Cray XE6 system. The current boostcpp.jam specifically doesn't build ""versioned"" .so files on PGI (and there's a comment in the file that indicates they don't work). However, it appears to work for me. To be fair, I don't know if it's due to changes in the compiler versions since pgi.jam was developed or if some of my other pgi.jam changes fascillitated this in some way. I am not very familiar with jamfiles... I modified my changes based on cray.jam and gcc.jam, but this appears to be working for me. My second change is specifically to better support PGI on Cray systems. Cray's compiler wrappers automatically scan the commandline looking for the ""-shared"", ""-static"", ""-Bshared"", and ""-Bstatic"" to detect if the userswe is attempting to compile dynamically or statically (and adds additional options as necessary). These wrappers consider it an error to find both a ""static"" and a ""shared"" flag on the same command line. pgi.jam does this using the -Bst coatic/-Bshared flags to control linking behavior. However, if these options are passed as -Wl,-Bstatic... this won't trigger the error condition in the compiler wrappers, and (of course) passes the option through to ld(1). I believe this is a reasonable changes for non-Cray systems." alan@… Boost 1.52.0 8522 Using result_of on pure virtual functions lead to compile errors result_of Boost 1.52.0 To Be Determined Bugs Daniel Walker new 2013-04-30T05:21:47Z 2013-04-30T05:21:47Z "minimal example: struct Test{ typedef int result_type; virtual int operator()(int)=0; }; typedef boost::result_of::type type; fails because Test is pure virtual and thus the function pointer is invalid. from the mailing list: ""This is supposed to work: typedef boost::result_of::type type;"" But apparently it does not: /usr/include/boost/utility/result_of.hpp:166:8: Error: »Test&« is no class, structure or union type. " oswin.krause@… Boost 1.52.0 8529 boost/spirit/home/karma/stream/stream.hpp comments about special overload incomplete spirit Boost 1.52.0 To Be Determined Bugs Hartmut Kaiser new 2013-04-30T15:45:12Z 2014-04-09T02:05:49Z "The comments here: // this is a special overload to detect if the output iterator has been // generated by a format_manip object. template < typename T, typename Traits, typename Properties, typename Context , typename Delimiter, typename Attribute > static bool generate( karma::detail::output_iterator< karma::ostream_iterator, Properties >& sink, Context& context, Delimiter const& d , Attribute const& attr) { around line 153 should also indicate that this function is called, at least sometimes, when just a stream operator is used. For example, when the attached is run, the above method is also called despite there being no format_manip object used. " cppljevans Boost 1.52.0 8565 Lists in admonitions quickbook Boost 1.52.0 To Be Determined Bugs Daniel James assigned 2013-05-13T11:12:38Z 2013-09-29T11:35:22Z "It seems not to be possible to include lists in admonitions. E.g. the following won't work, meaning no list will be displayed but just the stars as characters: [note Some text for my note * first point I want to note * second point I want to note ]" thomas.moeck@… Boost 1.52.0 8583 tar attempts to change ownership to invalid uid. Building Boost Boost 1.52.0 To Be Determined Bugs new 2013-05-18T02:35:03Z 2013-05-25T13:39:07Z "When running as root, untaring the boost package using gentoo prefix on Interix v3.5 for Windows XP fails with: ''Cannot change ownership to uid 501, gid 0: Invalid argument'' This is solved by running tar with flags: ""--user root --no-same-owner"" This issue is unique to boost .tar.gz files and blocks any installation by gentoo emerge. More information found here: [http://forums.gentoo.org/viewtopic-t-959612-highlight-.html]" akf@… Boost 1.52.0 8587 Command line response file not being shown in regression tests Regression Testing USE GITHUB Boost 1.52.0 To Be Determined Bugs - new 2013-05-18T15:37:52Z 2017-08-26T15:50:16Z In the online regression test page, when looking at a particular regression test, the compiler command line can be viewed. But when the compiler command line shows a response file being used for compiler options, the contents of the response file are not being shown. Edward Diener Boost 1.52.0 8611 pthread functions are called without checking return values for error signals2 Boost 1.52.0 To Be Determined Bugs Frank Mori Hess new 2013-05-23T16:09:24Z 2013-06-09T20:46:27Z "This is similar to https://svn.boost.org/trac/boost/ticket/2681 The errors are detected by coverity static analysis. {{{ 58 void lock() 59 { CID 11713: Unchecked return value 60 pthread_mutex_lock(&m_); 61 } 68 void unlock() 69 { CID 11714 (#1 of 1): Unchecked return value (CHECKED_RETURN) 1. check_return: Calling function ""pthread_mutex_unlock(pthread_mutex_t *)"" without checking return value (as is done elsewhere 6 out of 7 times). 2. unchecked_value: No check of the return value of ""pthread_mutex_unlock(&this->m_)"". 70 pthread_mutex_unlock(&m_); 71 } }}} " Richard Boost 1.52.0 8612 unused pointers in copying of handlers asio Boost 1.52.0 To Be Determined Bugs chris_kohlhoff new 2013-05-23T22:15:28Z 2013-07-25T06:22:21Z "boost/asio/detail/reactive_socket_recv_op.hpp: {{{ 84 static void do_complete(io_service_impl* owner, operation* base, 85 const boost::system::error_code& /*ec*/, 86 std::size_t /*bytes_transferred*/) 87 { 88 // Take ownership of the handler object. 89 reactive_socket_recv_op* o(static_cast(base)); CID 11125 (2): Unused pointer value (UNUSED_VALUE) CID 10926 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(o->handler_)"" is never used. 90 ptr p = { boost::addressof(o->handler_), o, o }; 91 92 BOOST_ASIO_HANDLER_COMPLETION((o)); 93 94 // Make a copy of the handler so that the memory can be deallocated before 95 // the upcall is made. Even if we're not about to make an upcall, a 96 // sub-object of the handler may be the true owner of the memory associated 97 // with the handler. Consequently, a local copy of the handler is required 98 // to ensure that any owning sub-object remains valid until after we have 99 // deallocated the memory here. 100 detail::binder2 101 handler(o->handler_, o->ec_, o->bytes_transferred_); 102 p.h = boost::addressof(handler.handler_); 103 }}} boost/asio/detail/reactive_socket_send_op.hpp: {{{ 81 static void do_complete(io_service_impl* owner, operation* base, 82 const boost::system::error_code& /*ec*/, 83 std::size_t /*bytes_transferred*/) 84 { 85 // Take ownership of the handler object. 86 reactive_socket_send_op* o(static_cast(base)); CID 11126 (4): Unused pointer value (UNUSED_VALUE) CID 11126 (4): Unused pointer value (UNUSED_VALUE) CID 10927 (#2 of 2): Unused pointer value (UNUSED_VALUE) CID 10927 (#1 of 2): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(o->handler_)"" is never used. 87 ptr p = { boost::addressof(o->handler_), o, o }; 88 89 BOOST_ASIO_HANDLER_COMPLETION((o)); 90 91 // Make a copy of the handler so that the memory can be deallocated before 92 // the upcall is made. Even if we're not about to make an upcall, a 93 // sub-object of the handler may be the true owner of the memory associated 94 // with the handler. Consequently, a local copy of the handler is required 95 // to ensure that any owning sub-object remains valid until after we have 96 // deallocated the memory here. 97 detail::binder2 98 handler(o->handler_, o->ec_, o->bytes_transferred_); 99 p.h = boost::addressof(handler.handler_); }}} boost/asio/detail/wait_handler.cpp: {{{ 43 static void do_complete(io_service_impl* owner, operation* base, 44 const boost::system::error_code& /*ec*/, 45 std::size_t /*bytes_transferred*/) 46 { 47 // Take ownership of the handler object. 48 wait_handler* h(static_cast(base)); CID 11127 (2): Unused pointer value (UNUSED_VALUE) CID 10929: Unused pointer value (UNUSED_VALUE) CID 10928 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(h->handler_)"" is never used. 49 ptr p = { boost::addressof(h->handler_), h, h }; 50 51 BOOST_ASIO_HANDLER_COMPLETION((h)); 52 53 // Make a copy of the handler so that the memory can be deallocated before 54 // the upcall is made. Even if we're not about to make an upcall, a 55 // sub-object of the handler may be the true owner of the memory associated 56 // with the handler. Consequently, a local copy of the handler is required 57 // to ensure that any owning sub-object remains valid until after we have 58 // deallocated the memory here. 59 detail::binder1 60 handler(h->handler_, h->ec_); 61 p.h = boost::addressof(handler.handler_); }}} boost/asio/detail/wait_handler.cpp: {{{ 43 static void do_complete(io_service_impl* owner, operation* base, 44 const boost::system::error_code& /*ec*/, 45 std::size_t /*bytes_transferred*/) 46 { 47 // Take ownership of the handler object. 48 wait_handler* h(static_cast(base)); CID 11127 (2): Unused pointer value (UNUSED_VALUE) CID 10928: Unused pointer value (UNUSED_VALUE) CID 10929 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(h->handler_)"" is never used. 49 ptr p = { boost::addressof(h->handler_), h, h }; 50 51 BOOST_ASIO_HANDLER_COMPLETION((h)); 52 53 // Make a copy of the handler so that the memory can be deallocated before 54 // the upcall is made. Even if we're not about to make an upcall, a 55 // sub-object of the handler may be the true owner of the memory associated 56 // with the handler. Consequently, a local copy of the handler is required 57 // to ensure that any owning sub-object remains valid until after we have 58 // deallocated the memory here. 59 detail::binder1 60 handler(h->handler_, h->ec_); 61 p.h = boost::addressof(handler.handler_); }}} boost/asio/" Richard Boost 1.52.0 8642 Global locale prevents from using Boost.Filesystem in global constructors and destructors filesystem Boost 1.52.0 To Be Determined Bugs Beman Dawes assigned 2013-06-03T13:06:50Z 2017-03-07T09:17:41Z "The problem appears in particular with Boost.Log. On program termination, Boost.Log may attempt to perform final log file rotation, which involves calling Boost.Filesystem routines (path construction, in particular). But Boost.Filesystem is not usable at this point because its global locale is already destroyed. Boost.Filesystem should remain usable during global constructors and destructors. The global locale should either be embedded into the path object (preferred solution, IMHO) or the library should ensure its availability during these stages. " Andrey Semashev Boost 1.52.0 8687 ABI-breaking workaround unneccesary with recent ICC versions. mpl Boost 1.52.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-06-11T16:58:21Z 2013-06-11T16:58:21Z "Description of the problem is here, with repro and fix: http://software.intel.com/en-us/articles/link-error-with-icpc-with-boost-151-mpl-library-and-g" lukeocamden@… Boost 1.52.0 8708 surprising element segmentation filesystem Boost 1.52.0 To Be Determined Bugs Beman Dawes new 2013-06-19T03:18:49Z 2013-06-19T03:18:49Z "I was shocked today to find that this fails: {{{#!cpp assert( boost::starts_with( boost::filesystem::path(""/website/public_html/""), boost::filesystem::path(""/website/""))); }}} The reason is that the 2nd path has 3 elements, {{{""/""}}}, {{{""website""}}}, and {{{"".""}}}. I found that last one especially surprising." Dave Abrahams Boost 1.52.0 8720 Fix for boost serialisation, portable binary archive on AIX serialization Boost 1.52.0 To Be Determined Bugs Robert Ramey new 2013-06-21T12:10:32Z 2013-06-21T12:10:32Z "On most platforms, char is signed, however on AIX by default char is unsigned. The portable binary archive assumes the char type is signed. The fix is simply to replace 'char' with 'signed char' in the correct places. This is a fairly safe and quick fix, can I please ask the authors of this library to add this fix, for the next version of boost. Here are the changes I made: (flagged under ' // changed ' comment //-------------------------------------------------------- portable_binary_iarchive.hpp void load(signed char & t){ // changed this->primitive_base_t::load(t); } //------------------------------------------------------------- portable_binary_iarchive.cpp void portable_binary_iarchive::load_impl(boost::intmax_t & l, char maxsize){ signed char size; // changed l = 0; this->primitive_base_t::load(size); if(0 == size){ return; } bool negative = (size < 0); ...... // ----------------------------------------------------------------- portable_binary_oarchive.hpp void save(const signed char & t){ // changed this->primitive_base_t::save(t); } // ----------------------------------------------------------- portable_binary_oarchive.cpp void portable_binary_oarchive::save_impl( const boost::intmax_t l, const char maxsize ){ signed char size = 0; // changed if(l == 0){ this->primitive_base_t::save(size); return; } .......... " avi.bahra@… Boost 1.52.0 8749 Accessing type of insert, pair >::type discards inserted elements mpl Boost 1.52.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-06-30T22:04:35Z 2015-02-21T22:19:17Z "The following code sample illustrates the problem typedef insert, pair >::type little_map; BOOST_STATIC_ASSERT(size::value == 1); /* Success */ BOOST_STATIC_ASSERT(size::value == 1); /* Failure */ I have traced the problem to the file boost/mpl/map/aux_/item.hpp in the class definition of m_item. m_item derives from Base (which is a map<...> type) but does not define a ""typedef m_item type;"" to act as a unary metafunction returning itself. The result is that Base::type is found instead which means that m_item acts as a unary metafunction returning a map with all the inserted elements removed. The class m_item_ at the bottom of the file properly defines a ""typedef m_item_ type;"" which strengthens my belief that it missing from m_item is a bug. The solution, quite staightforwardly is to simply add the line ""typedef m_item type;"" to the class' definition. It should be noted that I am running version 1.48 of Boost, but have checked http://www.boost.org/doc/libs/1_52_0/boost/mpl/map/aux_/item.hpp and it still lacks the define so I'm convinced that this problem will still be there when I download the latest version of boost." guylaingreer@… Boost 1.52.0 7343 Extend result_of to work with SFINAE result_of Boost 1.52.0 To Be Determined Feature Requests Daniel Walker new 2012-09-07T01:51:26Z 2012-09-25T13:59:42Z "In response to a problem first identified by Joel de Guzman: http://thread.gmane.org/gmane.comp.lib.boost.devel/233752/focus=233934 When BOOST_RESULT_OF_USE_DECLTYPE is defined, the attached patch makes the expression result_of::type not well formed when the expression decltype(INVOKE(declval< Fn >(), declval< ArgTypes >()...)) is not well formed, but does not break SFINAE when used as the return type of a function overload. " Daniel Walker Boost 1.52.0 7411 Matrix with vector interface. uBLAS Boost 1.52.0 To Be Determined Feature Requests Gunter new 2012-09-22T23:02:12Z 2012-09-22T23:02:12Z "Sometimes it is useful to treat a matrix as a range of (independent) columns (or rows). Currently there is no iterator available that iterates over one dimension of the matrix and returns a full column/row as value. The attached files have been provided by Oswin Krause as a possible solution." Gunter Boost 1.52.0 7476 Use of Boost.Filesystem without building as separate library. filesystem Boost 1.52.0 To Be Determined Feature Requests Beman Dawes new 2012-10-07T04:26:12Z 2012-10-07T04:26:12Z "It is really tedious to use Boost.Filesystem (and possibly other non-header-only boost library, e.g. Boost.System) in a program because it needs to be built separately. I think it should be possible to add source files of Boost.Filesystem library to project so that Boost.Filesystem sources are built as a part of program itself. This will remove the dependency of building Boost.Filesystem as a separate library and so it will be as good as a header-only library. I have tried this and it seems to be working after commenting out #define BOOST_FILESYSTEM_SOURCE from source files." sacha@… Boost 1.52.0 7534 Iostreams filter for LZMA2 (XZ) iostreams Boost 1.52.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-10-19T18:22:50Z 2018-04-08T07:55:22Z "I propose a standard LZMA2 (XZ) filter implementation for the Iostreams library. LZMA2 provides much better compression than gz and bzip2. XZ is the default package format in Slackware GNU/Linux. 7-Zip, the most popular file compressor for Windows also uses LZMA2. The source code of liblzma is found [http://tukaani.org/xz/ here]. A sample implementation of a Boost Iostream filter for lzma can be found in the [http://fusecompress.sourcearchive.com/documentation/2.6.git913897f4-1ubuntu1/files.html fusecompress source]. I think it would be a big advantage because XZ is an upcoming file format which is used more and more in areas and by applications where saving bandwidth, memory or physical storage is important." spixxi Boost 1.52.0 7543 Expose range protocol for boost::iostreams::mapped_file iostreams Boost 1.52.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-10-21T09:59:31Z 2012-10-21T09:59:31Z "It will be convenience that `boost::iostreams::mapped_file` expose a `boost::range` protocol using either member function or free function " zhuo.qiang@… Boost 1.52.0 7573 Missing operator++, --, % units Boost 1.52.0 To Be Determined Feature Requests Matthias Schabel new 2012-10-25T17:27:40Z 2013-09-13T11:12:28Z "As reported on the boost-users list , It would be nice if quantity could increment that type -- same for decrement and modulus. The attached patch seems to work in my local copy -- it would be nice to get rolled into a future release, however." nathan.crookston@… Boost 1.52.0 7586 Add a testable_mutex thread Boost 1.52.0 Feature Requests viboes assigned 2012-10-28T19:22:13Z 2014-09-05T06:11:32Z "Based on Associate Mutexes with Data to Prevent Races, By Herb Sutter, May 13, 2010 - http://www.drdobbs.com/windows/associate-mutexes-with-data-to-prevent-r/224701827?pgno=3 ""Make our mutex testable if it isn't already. Many mutex services (including boost::mutex) don't provide a way to ask, ""Do I already hold a lock on this mutex?"" Sometimes it is needed to know if a method like is_held to be available. This wrapper associates an arbitrary lockable type with a thread id that stores the ID of the thread that currently holds the lockable. The thread id initially holds an invalid value that means no threads own the mutex. When we acquire a lock, we set the thread id; and when we release a lock, we reset it back to its default no id state.""" viboes Boost 1.52.0 7589 Add polymorphic lockables thread Boost 1.52.0 Feature Requests viboes assigned 2012-10-28T19:43:12Z 2014-09-05T06:11:43Z "Mutex are generic classes that work well when generic programming. Sometimes, in a OOP context, it is useful to be able to use polymorphically any model of a lockable. A poly_lockable class that defines the lockable interface could be added as well as an poly_lockable_adapter to make any Lockable inherit from poly_lockable." viboes Boost 1.52.0 7595 Implement interruptible threads on top of non-interruptible threads thread Boost 1.52.0 To Be Determined Feature Requests viboes assigned 2012-10-28T20:05:07Z 2012-10-28T20:06:01Z "Once we will be able to disable thread interruption it would be great if we can provide interruptible threads on top of non-interruptible threads so that the user don't pay for what they don't use, but has yet a mechanism that allows work with interruptible and non-interruptible threads on the same executable. See #7594 Allow to disallow thread interruptions" viboes Boost 1.52.0 7629 "Implement the algorithm deadlock detection ""lockdep""" thread Boost 1.52.0 To Be Determined Feature Requests viboes assigned 2012-11-02T16:24:53Z 2012-11-04T00:28:06Z "Implement the algorithm deadlock detection ""lockdep"" (http://ceph.com/dev-notes/lockdep-for-pthreads/)" anonymous Boost 1.52.0 7652 compile-time checked access array Boost 1.52.0 Boost 1.54.0 Feature Requests Marshall Clow assigned 2012-11-06T06:56:56Z 2013-02-12T18:11:23Z "Since code like boost::array test; test[2] = 1; test[-1] = 1; compiles correctly on some compilers (even without warnings). I suggest adding compile checked functions for static access to arrays like: template reference at() { BOOST_STATIC_ASSERT( (i < N) ); return elems[i]; } template const_reference at() const { BOOST_STATIC_ASSERT( (i < N) ); return elems[i]; } then code like: boost::array test; test.at<2> = 1; test.at<-1> = 1; would result in the expected errors." Tobias Loew Boost 1.52.0 7721 [utility] want get() member function to boost::initialized utility Boost 1.52.0 To Be Determined Feature Requests No-Maintainer new 2012-11-22T08:45:55Z 2012-11-22T08:45:55Z I am using boost::initialized together boost::optional usually. So, I want get() member function to boost::initialized class for unified interface. Akira Takahashi Boost 1.52.0 7735 Ability to provide option_description name as Regex program_options Boost 1.52.0 To Be Determined Feature Requests Vladimir Prus new 2012-11-26T13:18:29Z 2013-01-20T06:17:39Z "It would be nice to have the ability to provide option_description name as Regex in order to parse open-end options like this: item1 = 234 item2 = 345 ... itemN = 564" smntov@… Boost 1.52.0 7742 tie like functionality for ranges range Boost 1.52.0 To Be Determined Feature Requests Neil Groves assigned 2012-11-27T11:56:41Z 2014-03-03T01:50:10Z "The Graph library uses std::pair to pass ranges and this allows a nice pattern to use old-fashioned for-loops: Graph g; boost::graph_traits::vertex_iterator b, e; for(boost::tie(b, e) = vertices(g); b != e; ++b) { } This works without any modifications with pair. The functionality would be great for all ranges as it provides users that don't want to use Boost.Range algorithms with a simple way to use their preferred style or algorithms from std. " philipp.moeller@… Boost 1.52.0 7777 at() member function required for program_options::variables_map program_options Boost 1.52.0 To Be Determined Feature Requests Vladimir Prus new 2012-12-09T18:36:39Z 2012-12-09T18:36:39Z "variables_map provides operator[] which sets an empty value to the option, if the specified key does not exist.[[BR]] I think it would be nice and more robust to also provide an overrided member function at() which throws an exception for such circumstances. Related ticket: #7495. If implementing #7495, it will be also required to handle boost::optional values for at()." Nana Sakisaka Boost 1.52.0 7786 Add support for RTTI-disabled environments iostreams Boost 1.52.0 To Be Determined Feature Requests Jonathan Turkanis new 2012-12-11T13:18:17Z 2014-08-26T11:33:54Z Boost.Iostreams does not compile when -fno-rtti is defined. There are lots of environments where it is not possible to activate RTTI. It would be useful if it could support non-RTTI settings even if it means a smaller set of functionality. Adam Romanek Boost 1.52.0 7838 Exposing hander sizes of each call as constants. asio Boost 1.52.0 To Be Determined Feature Requests chris_kohlhoff new 2012-12-29T20:11:41Z 2012-12-29T20:14:07Z "Hello! This feature request is related to the CustomHandler api. As the internal handler storage size is fixed for each async api call (I think...), would it be possible to add constants that inform about the maximum size requirements of each async call? That would ease the implementation of segregated storage pools storing custom handlers, making it more suitable for realtime use. For example of what I'm using on x86 linux, I found that an ""async_wait"" takes 40 bytes, an ""async_receive_from"" 72, and an ""async_send_to"" 92. What I'm doing now is ""fake calls"" in initialization time, retreiving the requested sizes through a CustomHandler that traces the sizes, and then initializing the segregated storage pools with the results. That could easily be avoided exposing the size constants in some way. The current custom handler API wouldn't need to change. I must say that it was very wise to add the block size to the deallocation call, it eased things a lot, it allowed me to write safety code to forward the allocation/deallocation calls to the heap in case that the size requested wasn't the one. Best regards! Rafa." rafael_gago_81@… Boost 1.52.0 7848 [enhancement] supply download tarballs as tar.xz instead of .bz2 Building Boost Boost 1.52.0 To Be Determined Feature Requests new 2013-01-04T11:46:35Z 2016-07-24T00:41:41Z "you already have .gz tarballs, which is perfect for systems that don't yet support .xz (which at this time are little, any linux system i know supports it and probably even current macOS X releases) so the only reason for supplying bzip2 downloads must be for smaller storage/download time requirements. however, xz packs a lot better than bzip2, and bzip2 is a very slow (highly CPU-bound) to unpack algorithm. on average, extracting .xz is about 3.5 times faster than bzip2. /dev/shm $ time tar xf boost_1_52_0.tar.bz2 real 0m10.939s user 0m10.747s sys 0m1.390s /dev/shm $ tar cJf boost_1_52_0.tar.xz boost_1_52_0 boost_1_52_0/ boost_1_52_0.tar.bz2 /dev/shm $ time tar cJf boost_1_52_0.tar.xz boost_1_52_0 real 2m12.790s user 2m10.255s sys 0m3.822s /dev/shm $ rm -rf boost_1_52_0 /dev/shm $ time tar xf boost_1_52_0.tar.xz real 0m4.940s user 0m4.762s sys 0m1.232s /dev/shm $ la boost_1_52_0.tar.xz -rw-r--r-- 1 user users 47673912 Jan 4 10:17 boost_1_52_0.tar.xz /dev/shm $ la boost_1_52_0.tar.bz2 -rw-r--r-- 1 user users 54421709 Jan 4 10:14 boost_1_52_0.tar.bz2 this testing was done on a high-end 3.1 GHZ machine, and here the difference is that xz is more than 2 times faster, and the tarball 7 MB smaller. when using 2 distinct steps to create the .xz archive and invoking the xz compressor with -E (extreme), makes the tarball even smaller. i also build software regularly on mips and arm platforms in qemu. as an example, untarring the linux kernel sources provides as .bzip2 takes roughly 2 hours, but untarring the .xz archive ""only"" 30 minutes. so imo it makes much sense to deprecate .bz2 downloads and replace them with .xz. the .gz files need to stay in order to have a fallback for outdated platforms. " anonymous Boost 1.52.0 7933 "Enable population of a map with options described using ""*"" wildcard" program_options Boost 1.52.0 To Be Determined Feature Requests Vladimir Prus new 2013-01-27T15:56:56Z 2013-01-27T15:56:56Z "Enable population of a map with options described using ""*"" wildcard. map itemsMap; options_description items(""items options""); items.add_options() (""item_*"",value>(&itemsMap)->multitoken(), ""items"") ;" smntov@… Boost 1.52.0 8174 Add serialization support to Boost.Container container Boost 1.52.0 To Be Determined Feature Requests Ion Gaztañaga new 2013-02-25T20:20:29Z 2014-01-03T10:16:55Z The containers from Boost.Container are not currently serializable with Boost.Serialize. It would be very convenient if this functionality were provided. Boost.Serialize already has code for serializing standard containers, which should be pretty easy to adapt to Boost.Container. Erik.Jensen@… Boost 1.52.0 8273 Add externally locked streams thread Boost 1.52.0 Feature Requests viboes assigned 2013-03-11T07:21:19Z 2014-09-05T06:11:53Z "Based on N3354: C++ Stream Mutexes http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3354.html add thread safe streams that gets its protecting mutex externally instead of internally as in the proposal so that several streams can share the same protecting mutex. This will be useful to take in account coherency when working with cout and cin." viboes Boost 1.52.0 8599 enable_shared_from_this -- no throw alternative smart_ptr Boost 1.52.0 To Be Determined Feature Requests Peter Dimov new 2013-05-21T07:00:41Z 2013-05-21T07:00:41Z "I think that enable_shared_from_this misses one feature, that is accessible for weak_ptr and allows no throw access to the underlying instance to a shared_ptr, by either a valid pointer or a null_ptr (boost::weak_ptr::lock). It would be great to have such a mechanism for enable_shared_from_this as well -- i.e. returning the weak_ptr via member functions weak_this and then chain with lock -- to avoid bad_weak_ptr exception. Background: Combining intrusive container with enable_shared_from_this and auto-unlink option, where the element own the container, the only way to determine if an element is currently unlinking itself in muti threaded execution, is via an exception, rather than just checking for a null_ptr. Where this setup might sound very rare, it is one of the most powerful combinations of shared_ptr aliasing, intrusive-containers and enable_shared_from_this for perfect concurrent lookup containers. And under multi-threading conditions, the exception may get very common and therefore expensive." ingo.loehken@… Boost 1.52.0 8729 Library Submission, working with pointer containers functional Boost 1.52.0 To Be Determined Library Submissions No-Maintainer new 2013-06-25T15:02:20Z 2014-01-30T17:58:04Z "Hey All, I don't even know if this is the right place to submit this, but the website seems to indicate it is. I was reading a book which seems to suggest that working with pointers in containers is harder then it should be. A couple of templates can make it much easier. For instance, to work with pointers(this template assumes that T is derived from unary_function, as std::set Compare types are, and long typenames are there to be an example to make this more understandable, final form could cut back: template struct dereference { typename T::result_type operator()(const typename T::first_argument_type* arg1, const typename T::second_argument_type* arg2) const { return T()(*arg1, *arg2); } }; e.x.: std::set > > myset; " Charlie Page Boost 1.52.0 7337 sparse_view.hpp: wrong copy-constructor for compressed_matrix_view uBLAS Boost 1.52.0 To Be Determined Patches Gunter new 2012-09-06T08:27:09Z 2013-08-21T12:37:34Z "The copy constructor for {{{compressed_matrix_view}}} (in {{{boost/numeric/ublas/experimental/sparse_view.hpp}}}) is wrong: it doesn't copy any member from the input argument. I upload a patch for this, along with the patched file." Marco Guazzone Boost 1.52.0 7387 marginal improvements to dijkstra_shortest_paths graph Boost 1.52.0 To Be Determined Patches Jeremiah Willcock new 2012-09-18T12:26:56Z 2013-09-24T13:33:43Z "There are a couple of details in the dijkstra_shortest_path calculation that potentially make the implementation less efficient than strictly necessary. All considered the change in performance is marginal. But the code will be more to the point and I was happy to no longer use boost::closed_plus. 1. The tree_edge member function and the gray_target member function call the relax() function. In case of undirected graphs, this function attempts to relax both the target and the source of the edge. This is right for some algorithms (e.g. Bellman-Ford) but not for others (e.g. Dijkstra Shortest Paths). It would therefore be preferred to introduce a new function relax_target(), that only relaxes the target of an edge. 2. The defaults algorithm for summing weights and distances is boost::closed_plus. This implements a simple plus operation with the extension that x + inf = inf, where inf is a special value set upon initialization. Note that this is not a generic guard against overflows, but only works if one of the inputs is equal to inf. If the new relax_target() is used, then it is no longer necessary to use boost::closed_plus and simple std::plus will suffice. (*) 3. The tree_edge member function of the dijkstra_bfs_visitor is called when a new vertex is found. The distance for this vertex must always reduce. Several checks in relax() or relax_target() are therefore not necessary, and it is recommended to add a function relax_target_confident().(*) 4. If the relax_target_confident function is used, then any comparison with distance_inf values is avoided. Strictly speaking it is not longer necessary to initialize the values of the distance map, and the precise value becomes irrelevant to the algorithm. 5. The update() function for the d-ary-heap does not need the old_distance therefore the gray_target member function does not need to call it. (*). There could possibly be one other reason to use boost::closed_plus and that is the case of edge_weights being equal to distance_inf. This could be a hackish way of excluding edges from the shortest path search and IMO does not need to be supported. " Alex Hagen-Zanker Boost 1.52.0 7468 asio/detail/config.hpp defines _WIN32_WINNT even under WinCE asio Boost 1.52.0 To Be Determined Patches chris_kohlhoff new 2012-10-04T13:30:05Z 2012-10-04T13:30:05Z "Boost.Asio defines _WIN32_WINNT macro even under WinCE environment (_WIN32_WCE == 0x500, Visual Studio 2008). {{{ # if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) # if defined(_MSC_VER) || defined(__BORLANDC__) # pragma message( \ ""Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n""\ ""- add -D_WIN32_WINNT=0x0501 to the compiler command line; or\n""\ ""- add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.\n""\ ""Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target)."") # else // defined(_MSC_VER) || defined(__BORLANDC__) # warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. # warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. # warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). # endif // defined(_MSC_VER) || defined(__BORLANDC__) # define _WIN32_WINNT 0x0501 # endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) }}} Maybe it would better to add some UNDER_CE check here? " listhex@… Boost 1.52.0 7551 unused local variable in_str in tz_db_base.hpp date_time Boost 1.52.0 To Be Determined Patches az_sw_dude new 2012-10-22T08:09:20Z 1970-01-01T00:00:00Z trivial unused in_str variable Caolán McNamara Boost 1.52.0 7565 BOOST_MPL_CFG_HAS_TYPEOF should be defined for recent ICC versions mpl Boost 1.52.0 To Be Determined Patches Aleksey Gurtovoy new 2012-10-24T16:38:36Z 2013-06-11T17:10:59Z "Attached are: 1) A program listing that fails to compile with 'icc -DBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -DBOOST_MPL_LIMIT_VECTOR_SIZE=50 z.cpp'. It would pass if BOOST_MPL_CFG_HAS_TYPEOF were defined. 2) A proposed patch." lukeocamden@… Boost 1.52.0 7610 Add support for PSK authentication to boost::asio:ssl asio Boost 1.52.0 To Be Determined Patches chris_kohlhoff new 2012-10-30T16:51:39Z 2015-03-06T20:58:00Z boost::asio:ssl provides methods to set up PKI authentication. But TLS can also use PSK for authentication. This patch adds methods to set a PSK callback on ssl::context. Roman Bovsunovskiy Boost 1.52.0 7621 Stateful policies support for Qi bool parsers spirit Boost 1.52.0 To Be Determined Patches Joel de Guzman new 2012-11-01T19:26:22Z 2012-11-01T19:26:22Z The attached patch implements the missing pieces needed for Qi bool parsers to support stateful policies. K-ballo Boost 1.52.0 7637 Karma allow integrals as type for real_generator spirit Boost 1.52.0 To Be Determined Patches Joel de Guzman new 2012-11-04T01:12:04Z 2012-11-04T01:12:04Z The attached patch allows Karma `real_generator` to be instantiated with fundamental integral types, which will otherwise result in an error when calling `modf` due to its pointer argument. The remaining requirements (fmod, floor, et.al.) are satisfied by implicit conversion, though they could be specially handled as well. K-ballo Boost 1.52.0 7941 fpos.hpp may not define BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS for vxworks iostreams Boost 1.52.0 To Be Determined Patches Jonathan Turkanis new 2013-01-28T16:00:35Z 2013-01-28T16:00:35Z "in fpos.hpp, l. 26 {{{ #define BOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS }}} must not be enabled for vxWorks" p.brockamp@… Boost 1.52.0 8088 Limited Forward Compatibility serialization Boost 1.52.0 To Be Determined Patches Robert Ramey new 2013-02-17T15:32:09Z 2017-11-27T10:56:08Z "We use xml serialization for saving and loading several types of metadata and we have to support possibility of reading new versions of files with old versions of soft. Boost::serialization is very good at backward compatibility but does not provide anything with opposite problem. So, This patch introduces new flag boost::archive::skip_unknown_tail_tags. When this flag is set and basic_xml_iarchive is faced with unknown tags at the end of element it will skip them (include nested). E.g., the first version of some file was: {{{
31 11 12 32 }}} After a while, the second version could be: {{{ 31 11 12 13 14 1 2 32 }}} Therefore, if the first version software set skip_unknown_tail_tags it can read second version of file (if does not set then exception will be thrown)." Dmitry Shesterkin Boost 1.52.0 8593 enable std::atomic with clang / libc++ lockfree Boost 1.52.0 To Be Determined Patches timblechmann new 2013-05-19T23:50:10Z 2013-05-21T07:36:04Z "Attatched is a simple patch that checks if we're usng a version of clang / libc++ that has support. The: {{{ #if defined(_LIBCPP_VERSION) && __has_include( ) }}} is on a second line because I previously had problems with the __has_include( <> ) macro when this code is interpreted by MSVC compiler - it seems to want to process the entire line despite the first check failing." reakinator@… Boost 1.52.0 8623 Remove use of `boost::blank` function_types Boost 1.52.0 To Be Determined Patches t_schwinger new 2013-05-28T02:37:12Z 2013-05-28T02:37:12Z The attached patch removes the dependency on `boost::blank`, while incidentally improving error messages when the metafunction preconditions do not hold. K-ballo Boost 1.52.0 7483 Exception 'T' is not a legal base class exception Boost 1.52.0 To Be Determined Support Requests Emil Dotchevski new 2012-10-08T14:06:18Z 2013-01-17T00:09:47Z You might be getting this error for all kinds of reasons. Please provide complete source code of your test, or close the bug. xaviergxf@… Boost 1.52.0 7723 prune include directives spirit Boost 1.52.0 To Be Determined Support Requests Joel de Guzman new 2012-11-22T12:04:58Z 2012-11-26T11:34:17Z "I was trying to figure out what was still including boost/foreach.hpp after removing every include of it in my own code, so I used the /showIncludes MSVC compiler option and it turns out it is some ""deep"" Spirit header finally included by boost/spirit/home/karma/generate.hpp. It also showed that boost/spirit/home/karma/generate.hpp includes an enormous amount of other headers while I include it only for a simple boost::spirit::karma::generate() (with real_generator) call. Please do prune/clean up the included headers in Boost.Spirit (and/or provide more fine grained versions of the current ones)..." Domagoj Šarić Boost 1.52.0 7736 Boost.Units io.hpp always includes Boost.serialization and an unwanted Clang warning units Boost 1.52.0 To Be Determined Support Requests Steven Watanabe new 2012-11-26T18:01:47Z 2012-11-26T18:01:47Z "I note that Boost.Units io.hpp''' always''' #includes serialization (a not inconsiderable amount of code to parse etc). It would be nice if Serialization could only be included when required (but perhaps this is troublesome?) This became apparent when compiling using Clang 3.1 (Ruben van Boxem's mingw32) on Netbeans 7.2 on Windows 7 when this ugly warning appeared: {{{ In file included from i:/boost-trunk\boost/units/io.hpp:27: In file included from i:/boost-trunk\boost/serialization/nvp.hpp:34: In file included from i:/boost-trunk\boost/serialization/base_object.hpp:39: i:/boost-trunk\boost/serialization/void_cast_fwd.hpp:29:1: warning: dllexport attribute ignored BOOST_DLLEXPORT ^ i:/boost-trunk\boost/serialization/force_include.hpp:37:43: note: expanded from macro 'BOOST_DLLEXPORT' # define BOOST_DLLEXPORT __declspec(dllexport) ^ :150:38: note: expanded from macro '__declspec' #define __declspec(a) __attribute__((a)) ^ 1 warning generated. }}} This also suggests that inappropriate dllexport attribute is being generated for Clang? " Paul A. Bristow Boost 1.52.0 8054 Where is the PageRank algorithm? graph Boost 1.52.0 To Be Determined Support Requests Jeremiah Willcock new 2013-02-13T14:45:45Z 2016-08-09T09:22:51Z "Hello, It seems that once where was a PageRank implementation for Boost, which is referenced here http://osl.iu.edu/~dgregor/bgl-python/reference/boost.graph.html#-page_rank which refers to http://www.boost.org/libs/graph/doc/page_rank.html which does not exist. A search in the SVN https://svn.boost.org/trac/boost/changeset/29931/trunk/boost/libs/graph/src/python/page_rank.cpp showed me that there once was a file ""page_rank.cpp"" which seems to no longer exist https://svn.boost.org/trac/boost/browser/trunk/boost/libs/graph/src/python/page_rank.cpp gives an error. (Why) Has the implementation been removed? Robert" anonymous Boost 1.52.0 8404 VC++ 2012 compiler warning C4244: 'initializing' : conversion from '__int64' to 'const double' geometry Boost 1.52.0 To Be Determined Support Requests Barend Gehrels new 2013-04-05T14:58:07Z 2018-01-04T14:05:36Z "I'm using Microsoft Visual Studio 2012 to compile boost 1.52.0. I use compiler flag /W4. The following warnings (which we declared errors for our project) occur in geometry, regardless whether I'm compiling for x64 or x86. '''My scalar data type is int.''' {{{ \boost_1_52_0\boost\geometry\strategies\cartesian\distance_pythagoras.hpp(156): error C4244: 'initializing' : conversion from '__int64' to 'const double', possible loss of data calculation_type const t = comparable_type::apply(p1, p2); }}} Maybe it's possible to eliminate this warning for the next boost version?" Volker Schöch Boost 1.52.0 7393 documentation suggests to store handle in node, why? heap Boost 1.52.0 To Be Determined Tasks timblechmann new 2012-09-19T12:48:57Z 2012-09-19T12:48:57Z "The documentation of the mutability concept includes a section that describes how to store handles into values in the heap. ""Note that handles can be stored inside the value_type (nodes): "" http://www.boost.org/doc/libs/1_51_0/doc/html/heap/concepts.html#heap.concepts.mutability I don't understand the point of this note. Handles are used to access nodes. If you store your handles inside nodes and not somewhere else, how can you possibly access nodes. If you do store your handles somewhere else, why would you also store them in the nodes? I got confused trying to make use of this tip in my own code. Perhaps it is possible to add some motivation for this note, or just remove it. " Alex Hagen-Zanker Boost 1.52.0 7793 Not needed code for mapped files in windows interprocess Boost 1.52.0 To Be Determined Tasks Ion Gaztañaga new 2012-12-13T23:40:11Z 2012-12-13T23:40:11Z "The exchange below took place on the boost developer list, it describes the request. Thank you. > > > When you grow a managed mapped file, the current > > > implementation fills all the new space with zeroes. This is less > > > efficient than just resizing the file. The comments in the code > > > implies there is a reason, so what is it? > > > > Interprocess tries to simulate as much as possible POSIX guarantees. > > truncate() POSIX system call guarantees that ""If the file is > extended, > > the extended area appears as if it were zero-filled"". In windows, > > SetFileValidData/SetEndOfFile does not zero-fill the extended size so > > Interprocess needs to write it. > Given that the mapped file content is not part of the library > interface, and the only expected user of the mapped file is the library > itself, why waste time in Windows? Seems to me that a requirement that > files should be identical is too strong, as long as they work and > perhaps don't affect platform portability. File portability between > platforms should be warranted? What about platforms with different > endianness? I need to investigate it, but I tried to support similar behaviour for internal file-handling functions. I'll need to think it again. Please fill a ticket so this doesn't get lost when reviewing pending issues. " lodos@… Boost 1.53.0 5103 Boost Polygon: The union of these two polygon return an empty result. polygon Boost 1.53.0 To Be Determined Bugs Andrii Sydorchuk new 2011-01-20T21:09:57Z 2015-07-02T14:04:08Z "main.cpp {{{ #include #include namespace gtl = boost::polygon; using namespace boost::polygon::operators; // points_array_A_1 (-92810838,3618230) (-94606872,1822196) (-94999302,2214626) (-93203268,4010660) (-92810838,3618230) int points_array_A_1[] = {-92810838,3618230,-94606872,1822196,-94999302,2214626,-93203268,4010660,-92810838,3618230}; int points_array_A_1_size =5; // points_array_B_1 (-95269304,222758) (-95260668,419862) (-95234760,615696) (-95192088,808228) (-95132906,996442) (-95057214,1178814) (-94966028,1354074) (-94860110,1520444) (-94739968,1676908) (-94606618,1822450) (-94999048,2214880) (-95165164,2033778) (-95314770,1838706) (-95446850,1631442) (-95560388,1413510) (-95654368,1186434) (-95728282,951992) (-95781368,711962) (-95813626,468376) (-95824294,222758) (-95269304,222758) int points_array_B_1[] = {-95269304,222758,-95260668,419862,-95234760,615696,-95192088,808228,-95132906,996442,-95057214,1178814,-94966028,1354074,-94860110,1520444,-94739968,1676908,-94606618,1822450,-94999048,2214880,-95165164,2033778,-95314770,1838706,-95446850,1631442,-95560388,1413510,-95654368,1186434,-95728282,951992,-95781368,711962,-95813626,468376,-95824294,222758,-95269304,222758}; int points_array_B_1_size =21; namespace{ class Output //for printing debug info { public: template static void Print(const gtl::polygon_data& polyData) { gtl::polygon_data::iterator_type pit = polyData.begin(); gtl::polygon_data::iterator_type pit_end = polyData.end(); while(pit!=pit_end) { gtl::point_data p = (*pit++); std::cout<<""(""< static void Print(std::vector >& polygonVec) { int size = polygonVec.size(); for(int i=0;i& poly = polygonVec[i]; std::cout<<""Polygon ""< >& group, int* points_array, int size) { //convert c array to boost polygon data if(size>0) { gtl::polygon_data poly_data; std::vector > poly_points(size); int pi=0; for(int i=0;i(points_array[i1],points_array[i2]); } poly_data.set(poly_points.begin(),poly_points.end()); group.push_back(poly_data); } } void testBooleanOps() { //lets declare ourselves a polygon set using namespace gtl; //because of operators typedef std::vector > PolygonVec; PolygonVec group_A; PolygonVec group_B; PolygonVec group_U; //load group A; AddPolygonData(group_A,points_array_A_1,points_array_A_1_size); //load group B; AddPolygonData(group_B,points_array_B_1,points_array_B_1_size); std::cout<<""union\n""; //the result of the union is tore in group U; assign(group_U, group_A + group_B); Output::Print(group_U); } int main() { testBooleanOps(); return 0; } }}} " thai@… Boost 1.53.0 7253 [Boost.Build] Escape command line properly when calling assembler on MSVC build Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2012-08-21T07:28:11Z 2013-02-08T07:48:57Z "Hi. As of Boost.Context release (since Boost 1.51.0) assembler related build rules are actually used. However, currently these make no attempt whatsoever to properly escape the command line arguments (mostly global defines, that may have characters such as ""<"" and "">"" that are interpreted by command prompt, not good). The following patch proxies command line arguments thru a RSP file, as done with C/C++ compiling/build rules. The patch does a) Add an ASM_RSPLINE under rule get-rspline, b) Add a rule compile.asm that calls get-rspline and compile-asm, c) Move the actual assembler call under actions compile-asm, that uses the generated ASM_RSPLINE, d) Remove toolset.flags msvc.compile.asm DEFINES as these are now inherited from toolset.flags msvc.compile DEFINES. That should fix it once and for all." Pekka Seppänen Boost 1.53.0 7256 wrong error message for program options with dashes program_options Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2012-08-21T13:01:49Z 2014-01-19T17:52:14Z "Hi, I defined some options: {{{ optionsDescription.add_options() .... (""output-file,o"", program_options::value(), ""Result file"") ....; }}} Now, when I start my program without an argument (e.g. ./myprog -o) the error message says: the required argument for option '--file' is missing instead of the required argument for option '--output-file' is missing This worked at least with version 1.48." thomas.zuhl@… Boost 1.53.0 7433 MSVC runtime check fix in crc crc Boost 1.53.0 To Be Determined Bugs Daryle Walker reopened 2012-09-27T08:30:53Z 2013-02-22T07:23:26Z "With MSVC in debug mode and runtime checks enabled, we encounter an issue in crc.hpp. Please find attached a simple patch against boost 1.51.0 which fixes this issue." Franz Detro Boost 1.53.0 7902 Division by scalar should use enable_if<> (matrix_expression) uBLAS Boost 1.53.0 To Be Determined Bugs Gunter new 2013-01-18T02:55:55Z 2015-07-01T13:44:01Z "Bug #6511 added enable_if<> to file: vector_expression.hpp function: operator/( vector, scalar). The same feature needs to be add to matrix_expression's operator/( matrix, scalar). See attached e-mail " campreilly@… Boost 1.53.0 7944 Adapt filesystem for vxWorks 6.9 filesystem Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-01-28T16:58:29Z 2013-01-28T16:58:29Z Attached a small patch to inhibit inclusion of headers not present in vxWorks 6.9 p.brockamp@… Boost 1.53.0 7945 Inhibit inclusion of headers not present in vxWorks timer Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-01-28T17:02:00Z 2013-01-28T17:02:00Z Attached a patch inhibiting the inclusion of headers unpresent in vxWorks p.brockamp@… Boost 1.53.0 7984 In very rare cases, boost::polygon crashed or generate bad polygon when substracting 2 sets of polygons polygon Boost 1.53.0 To Be Determined Bugs Andrii Sydorchuk assigned 2013-02-05T19:25:06Z 2015-01-26T19:53:36Z "I am using boost:: polygon to calculate sum or difference of sets of polygons. Recently, When calcualting the difference of 2 sets of polygons, I found 2 cases creating a serious issue: Depending on the shape of polygons ( a slight change ""fix"" the bug) I have one case which create no polygon and one (in fact 2 samples) which crashes. In the sample which calculate the difference between 2 polygon sets, there are 2 polygon sets: one creates no polygon, and the other crashes. This it reproducible under Linux or Windows-gcc-mingw, with different gcc versions and boost version. (I tried to make the polygons as simple as possible) (see comments inside the sample). I have used a lot boost:: polygon, and I have only 2 cases which fails (Seems related to a particular shape, not to a polygon complexity) Thanks to the developpers." jp.charras@… Boost 1.53.0 7991 Many warnings with uBlas while compiling with clang/libc++ uBLAS Boost 1.53.0 To Be Determined Bugs Gunter new 2013-02-06T15:14:35Z 2013-02-10T22:06:34Z "I am currently compiling a project which uses mostly uBLAS library, and the problem is that I am crippled with many warnings, most of them from exterior libraries, among which Boost uBlas. Granted, I am very though with my compilation options (only an handful of warnings were deleted from clang's -Weverything), but the warnings obtained went from harmless (-Wmissing-noreturn, -Wweak-tables, -Wunused-parameter) to some a lot more worrying (-Wshadow). Do you intend to get rid of these warnings ? The page for this library indicates it is check against quite old compilers (gcc 4.0, Visual Studio 6, no trace of clang) Best regards, Sebastien Gilles " sebastien.gilles@… Boost 1.53.0 8013 Fusion sequence attribute compatibility spirit Boost 1.53.0 To Be Determined Bugs Joel de Guzman new 2013-02-09T03:03:03Z 2017-12-17T01:31:26Z "From Spirit point of view, two fusion sequences are compatible if one of them is a prefix of the other. This is unintentional." K-ballo Boost 1.53.0 8148 mpl::is_lambda_expression bug mpl Boost 1.53.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-02-22T23:03:45Z 2013-02-22T23:03:45Z "The metafunction boost::mpl::is_lambda_expression does not work correctly. My attached code example give a metafunction class for which is_lambda_expression evaluates as false. While is_lambda_expression is not a documented feature of boost::mpl, it is available in the boost::mpl namespace. Moreover, it is used in the implementation of boost::mpl::transform, and presumably results in unintended behaviour there. The package boost::tti (in the boost/trunk) has boost::tti::detail::is_lambda_expression. I have confirmed that this works correctly on my example (see attached file). The tti author has informed me that tti depends on mpl. Perhaps then, boost::mpl::is_lambda_expression should be replaced by tti's." James Hirschorn Boost 1.53.0 8150 gzip_compressor produces corrupt data when used with filtering_ostream iostreams Boost 1.53.0 To Be Determined Bugs Jonathan Turkanis new 2013-02-23T00:00:11Z 2013-02-25T15:07:55Z "In some cases, the USE_CORRUPTING_OSTREAM path in the following program will produce corrupt gzip output (fails CRC and the de-gzipped file differs slightly from the original input). This does not occur for all data, so I will attach an input data file that triggers the error. This bug only affects gzip_stream when used with filtering_ostream. It does not affect filtering_istream usage. Bug reproduced on Mac 10.8.2, 64-bit, Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn), zlib 1.2.5 (dylib as shipped with Mac OS X), boost 1.53.0. Bug does not appear to be affected by compiler optimizations (-O0 and -Os tested). {{{ #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { std::vector input; std::vector output; boost::iostreams::file_descriptor_source source(""inputdata""); boost::iostreams::copy(source, boost::iostreams::back_inserter(input)); #define USE_CORRUPTING_OSTREAM 1 #if USE_CORRUPTING_OSTREAM boost::iostreams::filtering_ostream gzip_stream; gzip_stream.push(boost::iostreams::gzip_compressor()); gzip_stream.push(boost::iostreams::back_inserter(output)); gzip_stream.write(&input[0], input.size()); boost::iostreams::close(gzip_stream); #else boost::iostreams::filtering_istream gzip_stream; boost::iostreams::stream input_array(&input[0], input.size()); gzip_stream.push(boost::iostreams::gzip_compressor()); gzip_stream.push(input_array); boost::iostreams::copy(gzip_stream, boost::iostreams::back_inserter(output)); #endif boost::iostreams::file_descriptor_sink destination(""inputdata.gz""); destination.write(&output[0], output.size()); } }}} " matt@… Boost 1.53.0 8172 Boost ASIO async connect false fail on HP-UX asio Boost 1.53.0 To Be Determined Bugs chris_kohlhoff new 2013-02-25T13:15:16Z 2013-02-25T13:15:16Z "HP-UX migs01a B.11.31 U ia64 aCC: HP C/aC++ B3910B A.06.20 [May 13 2008] Im getting weird and unexpected error using socket::async_connect Handle is called with error_code set to: 22 - system - Invalid argument (value - category - message) Even though the socket is actualy connected, because if I force to ignore this particular error, everything goes perfectly fine. I can even use the socket to transfer whole 400MB file to another server. Maybe a mismatch in code? Because there are other applications running there that are using POSIX sockets (not asio) If files are needed I can create some, but I dont see a point in that, since its 4 lines of code. I even tryed using endpoint constructor with ip address or resolver using query. Localhost works btw. Without calling handler with error. Thx" pinkerik88@… Boost 1.53.0 8235 Toolset “intel-win” fails on .asm files build Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2013-03-03T15:06:47Z 2014-10-22T14:26:19Z "Building boost v1.53.0 using intel-win fails because assembler (masm or ml/ml64) doesn’t set: intel-win.compile.asm bin.v2\libs\context\build\intel-win\debug\link-static\threading-multi\asm\make_x86_64_ms_pe_masm.obj '-c' is not recognized as an internal or external command, operable program or batch file. -c -Zp4 -Cp -Cx -DBOOST_ALL_NO_LIB=1 -DBOOST_ALL_NO_LIB=1 /Zi /Zd /W3 -Fo ""bin.v2\libs\context\build\intel-win\debug\link-static\threadingmulti\asm\make_x86_64_ms_pe_masm.obj"" ""libs\context\src\asm\make_x86_64_ms_pe_masm.asm"" ...failed intel-win.compile.asm bin.v2\libs\context\build\intel-win\debug\link-static\threading-multi\asm\make_x86_64_ms_pe_masm.obj... intel-win.compile.asm bin.v2\libs\context\build\intel-win\debug\link-static\threading-multi\asm\jump_x86_64_ms_pe_masm.obj '-c' is not recognized as an internal or external command, operable program or batch file. " elmira.a.semenova@… Boost 1.53.0 8250 Bug deleting self loop edges in parallel code graph Boost 1.53.0 To Be Determined Bugs ngedmond new 2013-03-05T13:58:30Z 2013-12-20T11:51:41Z "Hello, I think I found a bug in the graph parallel library. I have a bidirectional adjacency list which has some self loop edges. When I try to delete them with remove_edge_if (or remove_out_edge_if or remove_in_edge_if) the edges are deleted, but it seems that some reference gets broken in the graph. If I iterate over the in_edges a reference to a self loop is found. But it does not happen if I iterate over the out_edges. If the graph is written in a graphviz file the self loop edges does not appear. I think there is some broken reference into the adjacency list that keeps the in_edges. I have two different pieces of code (one with pbgl and the other with bgl). They do the same, create a graph, delete the self-edges and print the in_edges. Could someone have a look at this problem? Thank you" Borja Miñano Boost 1.53.0 8256 Wave tests fail to build on OSX+GCC wave Boost 1.53.0 To Be Determined Bugs Hartmut Kaiser new 2013-03-06T18:20:01Z 2013-03-07T16:21:24Z "When attempting to build & run the Boost (1.53.0) wave tests on OSX 10.8.2 with GCC 4.2.1 the build fails at the link stage. I built with:[[BR]] cd boost_1_53_0/libs/wave/test/build[[BR]] b2 variant=debug The invocation: {{{ g++-4.2 -o ""../../../../../build/libs/wave/test/build/test_re2c_lexer.test/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/test_re2c_lexer"" ""../../../../../build/libs/wave/test/build/test_re2c_lexer.test/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/test_re2c_lexer.o"" ""../../../../../build/libs/date_time/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_date_time.a"" ""../../../../../build/libs/thread/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_thread.a"" ""../../../../../build/libs/filesystem/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_filesystem.a"" ""../../../../../build/libs/system/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_system.a"" ""../../../../../build/libs/program_options/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_program_options.a"" ""../../../../../build/libs/wave/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_wave.a"" ""../../../../../build/libs/chrono/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_chrono.a"" ""../../../../../build/libs/date_time/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_date_time.a"" ""../../../../../build/libs/thread/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_thread.a"" ""../../../../../build/libs/filesystem/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_filesystem.a"" ""../../../../../build/libs/system/build/gcc-4.2/debug/link-static/runtime-link-static/threading-multi/libboost_system.a"" -g -static -isysroot /Developer/SDKs/MacOSX10.5.sdk }}} produces the message: {{{ ld_classic: can't locate file for: -lcrt0.o collect2: ld returned 1 exit status }}} However, removing the '-static' flag fixes the problem.[[BR]] (On OSX 'man ld' reports ""-static Produces a mach-o file that does not use the dyld. Only used building the kernel."".) The problem appears to be in boost_1_53_0/tools/build/v2/tools/gcc.jam. Due to these lines (767): {{{ if [ os.name ] != HPUX { toolset.flags gcc.link OPTIONS static : -static ; } }}} I was forced to change this, like so, to work around the problem: {{{ #if [ os.name ] != HPUX && [ os.name ] != darwin # Doesn't work #if [ os.name ] != HPUX && [ os.name ] != posix # Doesn't work if [ os.name ] != HPUX { # toolset.flags gcc.link OPTIONS static : -static ; # Had to comment out above line for OSX/darwin } }}} Once built the tests all run successfully. " chris0@… Boost 1.53.0 8258 Wave: unexpected pre-processing error wave Boost 1.53.0 To Be Determined Bugs Hartmut Kaiser new 2013-03-06T18:55:52Z 2013-03-07T13:41:17Z "Pre-processing the following file with the wave tool (v2.3.2.4101) on OSX 10.8.2 built from Boost 1.53.0 with GCC 4.2.1 produces an unexpected error. File PPError1.txt: {{{ #if 0 ""\U0000x"" #endif }}} Error: {{{ /path-to-file/PPError1.txt:2:2: error: universal character name specifies an invalid character: \U0000x"" }}} Wave was invoked with:[[BR]] /path-to-boost/dist/bin/wave PPError1.txt Wave was built with:[[BR]] cd boost_1_53_0/tools/wave/build[[BR]] b2 variant=debug Strangely, deleting any (or all) of the 0's in the second line causes wave to produce no error.[[BR]] [GNU cpp-4.2.1 produces no errors in all cases.]" chris0@… Boost 1.53.0 8293 Unused Variable Warnings in Boost.Units due to BOOST_UNITS_STATIC_CONSTANT units Boost 1.53.0 To Be Determined Bugs Matthias Schabel new 2013-03-15T15:45:12Z 2013-03-15T15:45:12Z "In clang every globally declared unit using BOOST_UNITS_STATIC_CONSTANT produces an unused variable warning, resulting in hundreds of warnings. Compiler version: c++ --version Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.2.0 Thread model: posix Here is one sample: ^ /opt/local/include/boost/units/static_constant.hpp:27:24: note: expanded from macro 'BOOST_UNITS_STATIC_CONSTANT' static const type& name = name##_instance_t::instance; \ ^ In file included from redacted.cpp:18: In file included from redacted2.h:20: In file included from redacted3.h:25: In file included from /opt/local/include/boost/units/systems/si.hpp:24: /opt/local/include/boost/units/systems/si/acceleration.hpp:27:29: warning: unused variable 'metre_per_second_squared' [-Wunused-variable] BOOST_UNITS_STATIC_CONSTANT(metre_per_second_squared,acceleration); ^" ahundt Boost 1.53.0 8309 [iostreams] bad handling of non-blocking writes for ‘indirect_streambuf’ class iostreams Boost 1.53.0 To Be Determined Bugs Jonathan Turkanis new 2013-03-19T09:26:26Z 2013-03-19T09:26:26Z "When a non-blocking write is done, the {{{indirect_streambuf}}} class sets the pointer to the start of the put area ({{{pbase()}}}) to the start of his own internal buffer ({{{out().buffer()}}}) offset by the number of bytes consumed. This algorithm works with a single non-blocking write but fails with multiple successive non-blocking writes. Imagine the following scenario: 1. Initially, {{{pbase()}}}, {{{pptr()}}} and {{{out().begin()}}} point to address {{{0x1000}}}. 2. 8 characters/bytes are written (assuming char as char_type). 3. {{{pptr()}}} is set to {{{0x1008}}}. 4. Only 2 characters are consumed downstream. 5. {{{pbase()}}} is correctly set to {{{0x1002}}}. {{{pptr()}}} remains at {{{0x1008}}}. 6. 2 more characters are consumed downstream. 7. **{{{pbase()}}} is wrongly set to {{{0x1002}}}**. It should be set to {{{0x1004}}}. I have attached a [[attachment:nonblocking_indirect_streambuf_write.cpp|file containing a sample unit-test]] that reproduces this scenario. The fix looks easy as the {{{pbase()}}} pointer needs to be set to its previous value offset by the number of bytes consumed. I have attached a [[attachment:indirect_streambuf.hpp.patch|patch]] that implements this fix and makes the unit-test pass. However I am unable to assess the impact or correctness of this fix." fpascutti@… Boost 1.53.0 8311 progress.hpp incompatible with timer/timer.hpp timer Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-03-19T23:56:21Z 2013-03-20T21:42:36Z "Hi, If I want to use boost::progress_display and boost::timer::cpu_timer for example, I have to modify boost/progress.hpp to prevent it from including the old boost::timer class, otherwise class boost::timer conflicts with namespace boost::timer. Alex" alex.burton@… Boost 1.53.0 8335 [locale] PGI 11.3 build problems () locale Boost 1.53.0 To Be Determined Bugs Artyom Beilis new 2013-03-26T14:37:40Z 2013-03-26T14:37:40Z "Hi, Compilation of boost 1.53.0 with the PGI 11.3 compiler on RHEL5 fails for the following source files when using the method in the quickstart guide: * libs/locale/src/posix/codecvt.cpp * libs/locale/src/posix/collate.cpp * libs/locale/src/posix/converter.cpp * libs/locale/src/posix/numeric.cpp * libs/locale/src/posix/posix_backend.cpp Most of the errors appear to stem from a claim that locale_t is undefined. Errors are too long to include here, so have attached a build output to this ticket. Hope it doesn't make it too much a pain to read. In addition, detection of icu libraries seems to fail (whereas building against GNU or Intel compilers succeeds). Note the icu/icu (lib64) lines below. I'm told this is to do with the locale component: {{{ $ ./b2 Building the Boost C++ Libraries. Performing configuration checks - 32-bit : no - 64-bit : yes - x86 : yes - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam - iconv (libc) : yes - icu : no - icu (lib64) : no - gcc visibility : no - long double support : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add ""using mpi ;"" to user-config.jam. note: to suppress this message, pass ""--without-mpi"" to bjam. note: otherwise, you can safely ignore this message. }}}" Mark Dixon Boost 1.53.0 8343 numeric_conversion: doc: improper rendering of an example numeric Boost 1.53.0 To Be Determined Bugs Douglas Gregor new 2013-03-27T15:42:47Z 2013-03-27T15:51:44Z "Read the example here (the Example section at the end of this page), and see that the numbered list at the end of obviously an error. http://www.boost.org/doc/libs/1_53_0/libs/numeric/conversion/doc/html/boost_numericconversion/improved_numeric_cast__.html See attached patch. I did not try to regen the html output." Akim Demaille Boost 1.53.0 8345 0 bytes after a block of size 8 alloc'd filesystem Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-03-27T16:38:11Z 2013-03-27T16:48:19Z "I was just profiling my appication build with 1.53.0 using valgrind 3.8.1 and have this errors This was build on Ubuntu 12.10 server x64 Here is the source code std::string storePathStr; // Set from arg list boost::filesystem::path storePath; if( storePathStr.empty() ) storePath /= ""./store/""; // (boost::filesystem::current_path()); else { if( storePathStr[storePathStr.size()-1] != PATH_SEPERATOR ) storePathStr.append(1, PATH_SEPERATOR); storePath = boost::filesystem::path(storePathStr); } if( storePath.has_extension() ) THROW_APP_EXCEPTION(""Invalid Store Path: "" + storePath.string()); Here is stack operator new[](unsigned long) std::moneypunct<wchar_t, false>::_M_initialize_moneypunct(__locale_struct*, char const*) std::locale::_Impl::_Impl(char const*, unsigned long) std::locale::locale(char const*) boost::filesystem::path::codecvt() boost::filesystem::path::begin() boost::filesystem::path::compare(boost::filesystem::path const&) const boost::filesystem::path::extension() boost::filesystem::path::has_extension() " rjgebis@… Boost 1.53.0 8353 Fix a warning in throw_exception.hpp header which causes build breakage exception Boost 1.53.0 Boost 1.54.0 Bugs Emil Dotchevski new 2013-03-30T00:46:41Z 2013-04-04T03:07:26Z The throw_exception() function within the throw_exception.hpp header produces a warning which in turn causes projects building with the -Werror flag to fail to build. The attached patch fixes the code to no longer produce a warning and fix the build. brad@… Boost 1.53.0 8355 spsc_queue - Incorrect doc for push/pop array operations lockfree Boost 1.53.0 To Be Determined Bugs timblechmann new 2013-03-31T09:26:12Z 2013-03-31T09:41:38Z "The operations {{{ template size_type push(T const (&t)[size]); template size_type pop(T (&ret)[size]); }}} are documented as {{{ template size_type push(T const (&) t); template size_type pop(T (&) t); }}} I don't know if this is a doxygen problem, but the doc should be updated to show the real prototype. Adding something like the following would at least warm the user. {{{ * \note Doxygen has some issues generating this prototype. The real prototype is: * \code * template * size_type push(T const (&t)[size]); * \endcode }}} and {{{ * \note Doxygen has some issues generating this prototype. The real prototype is: * \code * template * size_type pop(T (&ret)[size]); * \endcode }}} " viboes Boost 1.53.0 8358 queue::push incoherent documentation lockfree Boost 1.53.0 To Be Determined Bugs timblechmann new 2013-03-31T10:14:27Z 2013-04-01T16:20:01Z "The documentation of queue::push states in the postcondition that the object is pushed if the queue if internal node can be allocated, but this in contradiction with Note that states that a new node could be allocated from the OS. I suggest to add a Effects clause to all the documentation to states clearly the effects of each function, as it done for the C++ standard and a lot of Boost libraries. {{{ bool push(T const & t); Pushes object t to the queue. Note Thread-safe. If internal memory pool is exhausted and the memory pool is not fixed-sized, a new node will be allocated from the OS. This may not be lock-free. Postconditions: object will be pushed to the queue, if internal node can be allocated Returns: true, if the push operation is successful. }}} " viboes Boost 1.53.0 8360 Multiplication operator should allow non-commutative version operators Boost 1.53.0 To Be Determined Bugs Daniel Frey new 2013-04-01T15:47:10Z 2013-04-03T11:07:56Z "The multipliable2 template in `boost/operators.hpp` is defined with the `BOOST_BINARY_OPERATOR_COMMUTATIVE` macro. This macro defines multiplication of types T and U in both orders in terms of `T *= U`. This assumes that multiplication is commutative, which is not generally true. For example when T is a nxn matrix type with double entries and U a nxn matrix with integer entries, then `T *= U` makes sense, but `operators.hpp` would define `U * T` using `T *= U`. Since matrix multiplication is not commutative, this would give wrong results. Suggested solution: make `multipliable2` use the NONCOMMUTATIVE macro, or add another `multipliable2_nc` template." Jaap Eldering Boost 1.53.0 8387 tz_database::load_from_file has wrong function type in manual date_time Boost 1.53.0 To Be Determined Bugs az_sw_dude new 2013-04-04T09:39:22Z 2013-04-05T11:10:48Z "boost::local_time::tz_database::load_from_file is a void, while the manual states this being a bool. http://www.boost.org/doc/libs/1_53_0/doc/html/date_time/local_time.html#tz_database_constr" frank@… Boost 1.53.0 8388 windows_file_codecvt should be allocated with _NEW_CRT filesystem Boost 1.53.0 To Be Determined Bugs Beman Dawes assigned 2013-04-04T10:08:14Z 2014-08-02T16:16:04Z Due to a bug in VC libraries, when allocating windows_file_codecvt it should be done with _NEW_CRT instead of new. Otherwise if operator new is overriden in the userland application it would be a crash since windows_file_codecvt is allocated with the user provided operator new and deallocated with delete from the C runtime. pedro.larroy@… Boost 1.53.0 8390 type conversion warning in VC11 iostreams Boost 1.53.0 To Be Determined Bugs Jonathan Turkanis new 2013-04-04T11:31:04Z 2013-04-04T11:31:04Z "+++ b/3rd-party/boost/boost/iostreams/copy.hpp Thu Apr 04 12:53:57 2013 +0200 @@ -125,7 +125,14 @@ mpl::false_, mpl::false_ ) { typedef typename char_type_of::type char_type; +#ifdef BOOST_WINDOWS_API +#pragma warning(push) +#pragma warning(disable : 4244) +#endif detail::basic_buffer buf(buffer_size); +#ifdef BOOST_WINDOWS_API +#pragma warning(pop) +#endif " pedro.larroy@… Boost 1.53.0 8394 "py_environment.cpp ""list"" is ambiguous" python USE GITHUB Boost 1.53.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-04-04T15:18:28Z 2013-04-06T13:05:55Z "I'm seeing the following using PGI 12.2 on Cray Linux 4 (SuSE 11 derivative): {{{ ""CC"" -INLINE:none --gnu -Kieee -fpic -fPIC -gopt -Minform=warn -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -D__need_IOV_MAX -I""."" -I""/apps_hpc/epd/default/include/python2.7"" -c -o ""bin.v2/libs/mpi/build/pgi/debug/boost.locale.icu-off/python/py_environment.o"" ""libs/mpi/src/python/py_environment.cpp"" ""/apps_hpc/epd/default/include/python2.7/pyfpe.h"", line 8: warning: white space between backslash and newline in line splice ignored / Copyright (c) 1996. \ ^ ""libs/mpi/src/python/py_environment.cpp"", line 34: error: ""list"" is ambiguous bool mpi_init(list python_argv, bool abort_on_exception) ^ ""libs/mpi/src/python/py_environment.cpp"", line 82: error: ""list"" is ambiguous mpi_init(extract(sys.attr(""argv"")), true); ^ 2 errors detected in the compilation of ""libs/mpi/src/python/py_environment.cpp"". }}} Not concerned about the warning from my header (didn't want to edit it out though), but it looks to me like maybe one of the other list classes has found it's way into the namespace? These particuliar builds were bootstrapped and run with {{{ ./bootstrap.sh --without-icu --with-libraries=mpi,graph_parallel,python --with-python=##EDITED## --with-python-root=##EDITED## --with-python-version=2.7 --with-toolset=pgi ./b2 -d0 -d+2 -j32 --debug-configuration --disable-icu boost.locale.icu=off -sNO_BZIP2=1 --build-type=complete --layout=tagged threading=single variant=debug toolset=pgi install }}} " alan@… Boost 1.53.0 8395 Valgrind error in lockfree::queue lockfree Boost 1.53.0 To Be Determined Bugs timblechmann new 2013-04-04T17:19:22Z 2017-04-16T05:31:19Z "The following code {{{ #include int main() { int i = 0; boost::lockfree::queue q(128); q.push(&i); q.push(&i); return 0; } }}} compiled with {{{ g++ -o test test.cpp -I/opt/boost/include }}} produces the following valgrind output {{{ ==32040== Memcheck, a memory error detector ==32040== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al. ==32040== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info ==32040== Command: ./test ==32040== ==32040== Conditional jump or move depends on uninitialised value(s) ==32040== at 0x401E77: boost::atomics::detail::base_atomic::node>, void, 8u, false>::compare_exchange_strong(boost::lockfree::detail::tagged_ptr::node>&, boost::lockfree::detail::tagged_ptr::node> const&, boost::memory_order, boost::memory_order) volatile (in /tmp/test) ==32040== by 0x401DD9: boost::atomics::detail::base_atomic::node>, void, 8u, false>::compare_exchange_weak(boost::lockfree::detail::tagged_ptr::node>&, boost::lockfree::detail::tagged_ptr::node> const&, boost::memory_order, boost::memory_order) volatile (in /tmp/test) ==32040== by 0x4019E0: boost::atomics::detail::base_atomic::node>, void, 8u, false>::compare_exchange_weak(boost::lockfree::detail::tagged_ptr::node>&, boost::lockfree::detail::tagged_ptr::node>, boost::memory_order) volatile (in /tmp/test) ==32040== by 0x40121C: bool boost::lockfree::queue::do_push(int* const&) (in /tmp/test) ==32040== by 0x400CF6: boost::lockfree::queue::push(int* const&) (in /tmp/test) ==32040== by 0x40097E: main (in /tmp/test) ==32040== ==32040== Conditional jump or move depends on uninitialised value(s) ==32040== at 0x40121F: bool boost::lockfree::queue::do_push(int* const&) (in /tmp/test) ==32040== by 0x400CF6: boost::lockfree::queue::push(int* const&) (in /tmp/test) ==32040== by 0x40097E: main (in /tmp/test) ==32040== ==32040== ==32040== HEAP SUMMARY: ==32040== in use at exit: 0 bytes in 0 blocks ==32040== total heap usage: 129 allocs, 129 frees, 8,256 bytes allocated ==32040== ==32040== All heap blocks were freed -- no leaks are possible ==32040== ==32040== For counts of detected and suppressed errors, rerun with: -v ==32040== Use --track-origins=yes to see where uninitialised values come from ==32040== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 2 from 2) }}} This might be an issue with the atomic library, but I have not been able to track it further. OS is Fedora F18 (3.8.3-203.fc18.x86_64) G++ is g++ (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) Valgrind is valgrind-3.8.1 " adam@… Boost 1.53.0 8396 Timer history does not say in what version the new APIs became available timer Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-04-04T19:17:18Z 2013-04-07T18:28:29Z "From what I can tell, Boost.Timers changed dramatically going from 1.47 to 1.48 judging from the existence of http://www.boost.org/doc/libs/1_53_0/libs/timer/doc/index.html http://www.boost.org/doc/libs/1_52_0/libs/timer/doc/index.html ... http://www.boost.org/doc/libs/1_48_0/libs/timer/doc/index.html but the nonexistence of http://www.boost.org/doc/libs/1_47_0/libs/timer/doc/index.html. I say this because, for example, both of http://www.boost.org/doc/libs/1_48_0/doc/html/boost/unordered_set.html http://www.boost.org/doc/libs/1_47_0/doc/html/boost/unordered_set.html exist. However, the 1.48 news (http://www.boost.org/users/history/version_1_48_0.html) is totally silent on any changes. The Boost.Timers history is totally silent about when the library landed: http://www.boost.org/doc/libs/1_48_0/libs/timer/doc/index.html Please update the history to indicate that the new APIs became available in Boost 1.48." Rhys Ulerich Boost 1.53.0 8419 boost::geometry::intersection still broken with integer coordinates geometry Boost 1.53.0 To Be Determined Bugs Barend Gehrels new 2013-04-08T17:41:02Z 2013-04-08T17:49:04Z "When loading these geometries as integer coordinates, their intersection is equal to the input multilinestring, which is wrong because the line should be clipped to the polygon boundaries instead of being left untouched. POLYGON((500000 853554,146445 500000,500000 146445,853554 500000)) MULTILINESTRING((163696 853553,163696 146446)) If I scale these input coordinates down by 1/1000, the result is correct. Also, no issues when loading the same input as double coordinates." aar@… Boost 1.53.0 8439 Formatting for and-predicate and not-predicate spirit Boost 1.53.0 To Be Determined Bugs Hartmut Kaiser new 2013-04-15T13:53:28Z 2013-04-15T14:20:22Z "In the current (1.53) [http://www.boost.org/doc/libs/1_53_0/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html tutorial] as well as [http://www.boost.org/doc/libs/1_53_0/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html reference] chapters, there is a mixture of wording and formatting used for the **and** and **not** predicates. Some of them are hard to distinguish from regular and and not. They could be formatted or suffixed with **-predicate** to make them out from the surrounding text." Mateusz Loskot Boost 1.53.0 8461 Name demangling in docstrings broken using Intel Compilers on Linux python USE GITHUB Boost 1.53.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-04-19T08:45:46Z 2013-04-19T08:45:46Z "Hi, I'm using my system's boost_python library (compiled with GCC) whilst developing an extension module. I thought I'd try compiling it with the Intel Compilers, but when I do, docstring signatures show mangled names. e.g. {{{ >>> import test_make_list >>> print test_make_list.IntList.__getitem__.__doc__ __getitem__( (object)arg1, (object)arg2) -> object : C++ signature : N5boost6python3api6objectE __getitem__(N5boost6python14back_referenceIRSt4listIiSaIiEEEE,P7_object) }}} It turns out I can fix this by adding ""BOOST_PYTHON_HAVE_GCC_CP_DEMANGLE"" to the list of preprocessor definitions, but wondered if a fix could be introduced directly into the headers. Not sure how I can test this without recompiling the entirety of boost, but I thought the following macro clause could be added at line 24 of [http://www.boost.org/doc/libs/1_53_0/boost/python/type_id.hpp ], to resolve this: {{{ || (defined(__linux) && defined(__ICC)) }}}" beamesleach@… Boost 1.53.0 8485 Compile error, same as #5431, but Windows Vista (64 bit) smart_ptr Boost 1.53.0 To Be Determined Bugs Peter Dimov new 2013-04-22T18:25:53Z 2014-02-12T19:01:03Z "https://svn.boost.org/trac/boost/ticket/5431 {{{ #ifdef _MSC_VER /* This is Microsoft Visual C compiler specific */ #endif //_MSC_VER }}} Same problem with 1.51.0 and 1.53.0 " Martin.problemboost.Maurer@… Boost 1.53.0 8489 Unnecessary Definition of iterator_adaptor.hpp class Has Dangerous Return of Temporary Object iterator Boost 1.53.0 To Be Determined Bugs jeffrey.hellrung new 2013-04-24T00:37:06Z 2013-06-10T05:37:29Z "Change definition of private iterator_adaptor<...>::dereference to a declaration, avoiding illegal return of local temporary object: error: returning reference to local temporary object [-Werror,-Wreturn-stack-address] { return *m_iterator; } Changing to a declaration is semantically acceptable because the preceding comment and a code search shows that the function was made private to ensure it is not used in this base class. This was revealed using Clang++ 3.0.6. It is a showstopper for people required to use Clang with warnings turned in errors." Jeffrey D. Oldham Boost 1.53.0 8520 tuples set_delimiter and Unicode tuple Boost 1.53.0 To Be Determined Bugs Joel de Guzman new 2013-04-29T12:20:35Z 2013-04-29T12:20:35Z "set_delimiter does not work with unicode characters, e.g.: boost::tuples::set_delimiter(L','); tuple_io.hpp(203): warning C4244: 'argument' : conversion from 'const wchar_t' to 'const char', possible loss of data" gast128@… Boost 1.53.0 8523 Python library warning messages python USE GITHUB Boost 1.53.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-04-30T06:53:08Z 2013-07-08T00:55:10Z "Hi, I built Boost 1.53.0 on Fedora 18 32/64-bit using the following command: ./b2 link=shared runtime-link=shared address-model=32|64 variant=release and received the following messages during the compilation: libs/python/src/object/enum.cpp: In function ‘boost::python::api::object boost::python::objects::{anonymous}::new_enum_type(const char*, const char*)’: libs/python/src/object/enum.cpp:150:44: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/class.cpp: In function ‘PyObject* boost::python::objects::static_data()’: libs/python/src/object/class.cpp:211:46: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/class.cpp: In function ‘boost::python::type_handle boost::python::objects::class_metatype()’: libs/python/src/object/class.cpp:319:49: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/class.cpp: In function ‘boost::python::type_handle boost::python::objects::class_type()’: libs/python/src/object/class.cpp:473:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/function.cpp: In constructor ‘boost::python::objects::function::function(const boost::python::objects::py_function&, const boost::python::detail::keyword*, unsigned int)’: libs/python/src/object/function.cpp:108:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/function.cpp:110:39: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/life_support.cpp: In function ‘PyObject* boost::python::objects::make_nurse_and_patient(PyObject*, PyObject*)’: libs/python/src/object/life_support.cpp:94:43: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] libs/python/src/object/life_support.cpp:96:43: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] " lcarreon@… Boost 1.53.0 8535 problem with paths that have whitespace in boost::program_options program_options Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2013-05-01T16:45:25Z 2018-07-13T04:22:37Z "This seems to be a known bug since at least 2008. Full description and suggested solution is mentioned in the external link below: [boost.2283326.n4.nabble.com/program-options-Problem-with-paths-that-have-spaces-td2576490.html] In short: when a boost::filesystem::path is used directly to retrieve a path parameter, if the path has a whitespace -- regardless of whether / or \ is used, or the whitespace is escaped, or the path is double-quoted -- a parsing error occurs. The current workaround is to use string and then convert that to boost::filesystem::path using the = operator of the path class, however this looks more of a ""bug"" in program_options rather than new feature in lexical_cast module since in program_options lexical casting of string to path is obviously failing and should not have been considered." bdahi@… Boost 1.53.0 8564 Variable hiding errors within nested let blocks in Phoenix phoenix Boost 1.53.0 To Be Determined Bugs Thomas Heller new 2013-05-11T23:41:08Z 2015-02-01T21:50:40Z "I encounter errors when using nested let blocks in Phoenix whenever an ""inner"" local variable hides an ""outer"" local variable. The ""Visibility"" example from the documentation at http://www.boost.org/doc/libs/1_53_0/libs/phoenix/doc/html/phoenix/modules/scope/let.html also fails. Here is that ""Visibility"" example as a standalone module which fails: {{{ #include #include namespace phoenix = boost::phoenix; using namespace phoenix::local_names; int main(int argc, char *argv[]) { phoenix::let(_x = 1, _y = "", World"") [ phoenix::let(_x = ""Hello"") // hides the outer _x [ std::cout << _x << _y // prints ""Hello, World"" ] ](); return 0; } }}} The errors I receive from GCC 4.7.2, GCC 4.8 snapshot, and Clang 3.2, with any of Boost 1.49, 1.53, or trunk, begin as follows: GCC: ""error: function returning an array"" Clang: ""error: function cannot return array type 'result_type' (aka 'char [6]')"" Another failing example provided in Eric Niebler's Stack Overflow answer [http://stackoverflow.com/questions/16408770/variable-hiding-within-nested-let-blocks-in-boost-phoenix here] is: {{{ int y = 0; int x = (phoenix::let(_a = 1, _b = 2)[phoenix::let(_b = 3)[ _a ]])(y); }}} ...which contrasts with the following example; which does compile: {{{ int y = 0; int x = (phoenix::let(_a = 1, _b = 2)[phoenix::let(_b = _1)[ _a ]])(y); }}} " miremare@… Boost 1.53.0 8572 iosteams indirect_streambuf::init_put_area should seek if data has been read from the get buffer iostreams Boost 1.53.0 To Be Determined Bugs Jonathan Turkanis new 2013-05-14T15:54:33Z 2013-05-14T15:54:33Z "The following code with std::fstream prints 0x1801 but with boost::iostream prints 0x2000: {{{ boost::iostreams::stream< boost::iostreams::file > ios( boost::iostreams::file( ""test.dat"", std::ios_base::binary | std::ios_base::in | std::ios_base::out | std::ios_base::trunc ), 0x800 ); //std::fstream ios( ""test.dat"", std::ios_base::binary | std::ios_base::in | std::ios_base::out | std::ios_base::trunc ); char buffer[ 0x2000 ]; ios.write( buffer, 0x2000 ); ios.seekg( -0x1000, std::ios_base::cur ); ios.get(); ios.write( buffer, 0x800 ); std::cout << std::hex << ios.tellp() << std::endl; std::cout << std::hex << ios.tellg() << std::endl; }}} I believe the problem lies in indirect_streambuf::init_put_area. The current implementation is: {{{ if (shared_buffer() && gptr() != 0) setg(0, 0, 0); if (output_buffered()) setp(out().begin(), out().end()); else setp(0, 0); }}} I think it should be: {{{ if (shared_buffer() && gptr() != 0) { obj().seek(gptr()-egptr(), BOOST_IOS::cur, BOOST_IOS::in, next_); setg(0, 0, 0); } if (output_buffered()) setp(out().begin(), out().end()); else setp(0, 0); }}} " Alan Birtles Boost 1.53.0 8588 program_options eats parameter instead of reporting previous one missing an argument program_options Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2013-05-18T22:03:05Z 2015-11-12T10:29:21Z "If a parameter is specified with a mandatory argument, but the argument is omitted, the following parameter is used as the argument instead. For example: {{{ ./test --dump-firmware Invalid command line syntax: the required argument for option '--firmware' is missing. Use --help for help. ./test --dump-firmware --help dumping firmware to file: --help }}} Here, --dump-firmware requires an argument, and ""--help"" is passed in as the argument. Instead, ""--help"" should be treated as a parameter (either valid or not) and --dump-firmware should report a missing parameter instead. " Adam Nielsen Boost 1.53.0 8600 wait_for_any hangs, if called with multiple copies of shared_future referencing same task thread Boost 1.53.0 To Be Determined Bugs viboes assigned 2013-05-21T11:50:16Z 2013-06-04T06:13:38Z "The following small test program shows the problem: {{{ #include #include int calculate_the_answer_to_life_the_universe_and_everything() { return 42; } int main(int argc, char* argv[]) { boost::packaged_task pt(calculate_the_answer_to_life_the_universe_and_everything); boost::shared_future fi1 = boost::shared_future(pt.get_future()); boost::shared_future fi2 = fi1; boost::thread task(boost::move(pt)); // launch task on a thread boost::wait_for_any(fi1, fi2); std::cout << ""Wait for any returned\n""; return (0); } }}} This program hangs infinitely in the call to boost::wait_for_any. From the docs I would expect this to work, because it's allowed to copy shared_futures. If this is not allowed, a possibility would be needed, to find out, if two shared_futures point to the same task or not. Currently wait_for_any is unusable, if there are chances, that multiple shared_futures point to the same result." Martin Apel Boost 1.53.0 8601 GCC 4.7.3 prints warning [-Wmaybe-uninitialized] for multi_array.hpp multi_array Boost 1.53.0 To Be Determined Bugs Ronald Garcia new 2013-05-21T12:39:43Z 2013-05-25T13:38:20Z "When compiling the attached test case program using Boost 1.53.0 and GCC 4.7.3: {{{ g++ -Wall -O2 -DBOOST_DISABLE_ASSERTS -I/path/to/include/dir test_prog.cpp }}} where test_prog.cpp is {{{ #include ""boost/multi_array.hpp"" int main() { boost::multi_array A; A.resize(boost::extents[2]); A[0] = 0; A[1] = 0; return(0); } }}} I get the following warning: {{{ In file included from test_prog.cpp:1:0: /mn/anatu/cma-u3/tmac/usr/include/boost/multi_array.hpp: In member function ‘boost::multi_array& boost::multi_array::resize(const boost::detail::multi_array::extent_gen&) [with T = int; long unsigned int NumDims = 1ul; Allocator = std::allocator; boost::multi_array = boost::multi_array]’: /mn/anatu/cma-u3/tmac/usr/include/boost/multi_array.hpp:401:16: warning: ‘new_strides.boost::array::elems[0ul]’ may be used uninitialized in this function [-Wmaybe-uninitialized] }}} " Torquil Sørensen Boost 1.53.0 8628 spsc_queue::pop(OutputIterator it) improperly works with random-access iterators if the read pointer is bigger than the write pointer (stored data consists of 2 blocks) lockfree Boost 1.53.0 To Be Determined Bugs timblechmann new 2013-05-29T00:40:33Z 2013-05-29T01:23:26Z "spsc_queue::pop(OutputIterator it) method improperly works with random-access iterators if the queue's read pointer is bigger than the queue's write pointer (the queue's stored data consists of 2 blocks) The following code will fill dst array improperly if the queue's read pointer is bigger than the queue's write pointer: unsigned char* dst=new unsigned char[100]; count=q.pop(dst); The bug caused by the code in spsc_queue.hpp:224: std::copy(internal_buffer+read_index, internal_buffer+max_size, it); std::copy(internal_buffer, internal_buffer+count1, it); It will copy the second fragment starting from the same point it copied the first ftagment. The problem can be fixed as: it=std::copy(internal_buffer+read_index, internal_buffer+max_size, it); std::copy(internal_buffer, internal_buffer+count1, it); " Constantin Fishkin Boost 1.53.0 8634 boost/filesystem/path.hpp is not self-sufficient filesystem Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-05-30T13:39:29Z 2016-03-11T08:49:32Z "The following code is compiled under VC2012: {{{ #include boost::filesystem::path p(""file.txt""); size_t hash = boost::filesystem::hash_value(p); }}} but gives link error: {{{ error LNK2019: unresolved external symbol ""void __cdecl boost::hash_combine(unsigned int &,wchar_t const &)"" (??$hash_combine@_W@boost@@YAXAAIAB_W@Z) referenced in function ""unsigned int __cdecl boost::filesystem::hash_value(class boost::filesystem::path const &)"" (?hash_value@filesystem@boost@@YAIABVpath@12@@Z) }}} I fixed it by replacing {{{ #include }}} with {{{ #include }}}" Valentin Shtronda Boost 1.53.0 8643 2to3.py Call within python.jam build Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2013-06-03T14:29:02Z 2013-06-03T18:01:09Z "This is all on windows 2008 R2 Server, using Python3.3 and Boost 1.53.0 Within the file python.jam in ...\tools\build\v2\tools\python.jam I had to change the code in the function ""actions 2to3"" from actions 2to3 { 2to3 -wn ""$(<)"" 2to3 -dwn ""$(<)"" } to actions 2to3 { python.exe C:\Python33\Tools\Scripts\2to3.py -wn ""$(<)"" python.exe C:\Python33\Tools\Scripts\2to3.py -dwn ""$(<)"" } Apparently 2to3.py is a python file, and to call it from the windows shell as it seems to do in python.jam, you must run it with the python interpreter, as above." trevor.haba@… Boost 1.53.0 8673 static libraries compiled without -fPIC using gcc build Boost 1.53.0 To Be Determined Bugs Vladimir Prus new 2013-06-08T15:20:00Z 2014-10-09T06:07:08Z "shared libraries use the static libraries of boost,errors occur: recompile with -fPIC. automake adds -fPIC always. relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC" eyjian@… Boost 1.53.0 8675 numpy integers not accepted by Boost.Python python USE GITHUB Boost 1.53.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-06-08T19:14:17Z 2013-06-08T19:14:17Z "When I pass a numpy integer (or really any object that's not exactly a PyIntObject) to a BPL-wrapped function, I get errors like the following: {{{ ArgumentError: Python argument types in CLAllocator.__call__(CLAllocator, numpy.int64) did not match C++ signature: __call__((anonymous namespace)::cl_allocator {lvalue}, unsigned long) }}} It would be great if, instead of checking for exact types, Boost.Python could use obj.__index__() or obj.__int__() to just get the integer value." Andreas Kloeckner Boost 1.53.0 8680 seekable_device missing in boost/iostreams/concepts.hpp iostreams Boost 1.53.0 To Be Determined Bugs Jonathan Turkanis new 2013-06-09T12:58:22Z 2017-11-08T12:34:57Z "The documentation for [http://www.boost.org/doc/libs/1_53_0/libs/iostreams/doc/tutorial/container_device.html Boost.iosteams:Tutorial:Container_Device] refers to seekable_device as existing in [http://www.boost.org/doc/libs/1_53_0/boost/iostreams/concepts.hpp boost/iostreams/concepts.hpp]. However it does not exist. Either the documentation should be update or something along the lines of the following should be added to concepts.hpp.[[BR]] {{{ typedef device seekable_device; typedef wdevice wseekable_device; }}} Not sure if that should be wseekable_device or seekable_wdevice. The latter seems to better match the filter typedef's. Alternatively the documentation could be updated to refer to device[seekable]." Eric Molitor Boost 1.53.0 8694 gcc -Wcast-qual warning in boost/function/function_template.hpp function Boost 1.53.0 To Be Determined Bugs Douglas Gregor new 2013-06-13T17:18:05Z 2014-01-30T18:03:18Z "When using boost function library with -Wcast-qual and -Werror flags enabled the following error comes up boost/function/function_template.hpp:628:35 error: cast from type 'const ...*' to type 'void*' casts away qualifiers [-Werror=cast-qual] functor.obj_ref.obj_ptr = (void *)(f.get_pointer()); ..... This warning happens when f.get_pointer() is a const pointer (e.g. it is originating from boost::cref). Which leads to this C-style cast that casts away of constness. I think this can be fixed by replacing C-style cast by const_cast(static_cast(f.get_pointer())) or by adding GCC pragmas to disable -Wcast-qual warning in this header file." Ruben Adamyan Boost 1.53.0 8701 wrong empty polygon-linestring intersection with overlapping edges geometry Boost 1.53.0 To Be Determined Bugs Barend Gehrels assigned 2013-06-16T09:21:11Z 2013-08-27T21:04:08Z "The returned intersection between these geometries is empty, although they overlap completely and I would expect the full linestring to be returned: POLYGON((137372 104999998,137372 97499999,67175839 97499999,67175839 104999998)) LINESTRING(399872 104971332,399872 97528663,2899872 97528663,2899872 104971332,5399872 104971332,5399872 97528663,7899872 97528663,7899872 104971332,10399872 104971332,10399872 97528663,12899872 97528663,12899872 104971332,15399872 104971332,15399872 97528663,17899872 97528663,17899872 104971332,20399872 104971332,20399872 97528663,22899872 97528663,22899872 104971332,25399872 104971332,25399872 97528663,27899872 97528663,27899872 104971332,30399872 104971332,30399872 97528663,32899872 97528663,32899872 104971332,35399872 104971332,35399872 97528663,37899872 97528663,37899872 104971332,40399872 104971332,40399872 97528663,42899872 97528663,42899872 104971332,45399872 104971332,45399872 97528663,47899872 97528663,47899872 104971332,50399872 104971332,50399872 97528663,52899872 97528663,52899872 104971332,55399872 104971332,55399872 97528663,57899872 97528663,57899872 104971332,60399872 104971332,60399872 97528663,62899872 97528663,62899872 104971332,65399872 104971332,65399872 97528663,67175839 97528663) If I move one of them slightly, I get a correct intersection instead of an empty set. I'm using double for point coordinates. This issue might be related to #8310 and #8183." aar@… Boost 1.53.0 8705 BOOST_PP_ENUM_SHIFTED doesn't work with Intel ICC preprocessor Boost 1.53.0 To Be Determined Bugs No-Maintainer new 2013-06-17T20:04:30Z 2013-06-17T20:04:30Z "Consider this example: {{{ #include #define F(z, n, p) n #define INNER_NORMAL(z, n, p) f( BOOST_PP_ENUM(n, F, p) ) ; #define INNER_SHIFTED(z, n, p) f( BOOST_PP_ENUM_SHIFTED(n, F, p) ) ; shifted: BOOST_PP_REPEAT(4, INNER_SHIFTED, ~) expected: INNER_SHIFTED(~, 0, ~) INNER_SHIFTED(~, 1, ~) INNER_SHIFTED(~, 2, ~) INNER_SHIFTED(~, 3, ~) normal: BOOST_PP_REPEAT(4, INNER_NORMAL, ~) }}} With `clang++ -P -E` and `g++ -P -E` it expands correctly: {{{ shifted: f( ) ; f( ) ; f( 1 ) ; f( 1 , 2 ) ; expected: f( ) ; f( ) ; f( 1 ) ; f( 1 , 2 ) ; normal: f( ) ; f( 0 ) ; f( 0 , 1 ) ; f( 0 , 1 , 2 ) ; }}} But `icpc -P -E` gets stuck: {{{ shifted: f( BOOST_PP_ENUM_SHIFTED_1_2(0, F, ~) ); f( BOOST_PP_ENUM_SHIFTED_1_2(1, F, ~) ); f( BOOST_PP_ENUM_SHIFTED_1_2(2, F, ~) ); f( BOOST_PP_ENUM_SHIFTED_1_2(3, F, ~) ); expected: f( ); f( ); f( 1 ); f( 1, 2 ); normal: f( ); f( 0 ); f( 0, 1 ); f( 0, 1, 2 ); }}} I'm using *Intel(R) C++ Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.1.1.163 Build 20130313*, not sure if it's a bug in ICC or in Boost.Preprocessor; " pascal@… Boost 1.53.0 8712 [function] Comparison with nullptr differs from std::function<> function Boost 1.53.0 To Be Determined Bugs Douglas Gregor new 2013-06-19T11:04:18Z 2017-01-27T11:01:20Z "Whether or not boost::function<> ''should'' support comparison with (C++11) nullptr is another issue, but at the moment it is inconsistent with std::function<>. E.g. {{{ boost::function bf; bool c1 = (bf == nullptr); // currently false std::function sf; bool c2 = (sf == nullptr); // true assert(c1 == c2); }}} Tested with g++ 4.6.3 and Visual Studio 2012. " boost@… Boost 1.53.0 8737 Notepad++ and MinGW boost/asio ERROR asio Boost 1.53.0 To Be Determined Bugs chris_kohlhoff new 2013-06-27T03:13:26Z 2013-06-27T03:13:26Z "When compiling the first tutorial using notepad++ as a text editor and MinGW compiler i get this long scary list of errors In file included from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/ boost/asio/basic_datagram_socket.hpp:18:0, from c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/ boost/asio.hpp:20, from asioOne.cpp:2: c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/boost/asio/detail/conf ig.hpp:207:5: warning: #warning Please define _WIN32_WINNT or _WIN32_WINDOWS app ropriately. [-Wcpp] c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/boost/asio/detail/conf ig.hpp:208:5: warning: #warning For example, add -D_WIN32_WINNT=0x0501 to the co mpiler command line. [-Wcpp] c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/boost/asio/detail/conf ig.hpp:209:5: warning: #warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP ta rget). [-Wcpp] C:\Users\COMPUTER\AppData\Local\Temp\ccrLdVld.o:asioOne.cpp:(.text+0x188): undef ined reference to `boost::system::generic_category()' C:\Users\COMPUTER\AppData\Local\Temp\ccrLdVld.o:asioOne.cpp:(.text+0x192): undef ined reference to `boost::system::generic_category()' C:\Users\COMPUTER\AppData\Local\Temp\ccrLdVld.o:asioOne.cpp:(.text+0x19c): undef ined reference to `boost::system::system_category()' c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: C:\Users\C OMPUTER\AppData\Local\Temp\ccrLdVld.o: bad reloc address 0xe in section `.text$_ ZN5boost6system14error_categoryD2Ev[__ZN5boost6system14error_categoryD2Ev]' collect2.exe: error: ld returned 1 exit status " anonymous Boost 1.53.0 8740 Possibly invalid assertion in define_with_defaults() python USE GITHUB Boost 1.53.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-06-27T16:06:13Z 2013-06-27T16:06:37Z "Hi there, this assertion in `boost/python/detail/defaults_def.hpp` seems backwards: {{{ BOOST_STATIC_ASSERT( (stubs_type::max_args) <= mpl::size::value); }}} I.e. I would expect the assertion to be that the actual number of arguments is *smaller* than the max or *larger* than the min. It caused me a compile error like the following on gcc 4.8: {{{ In file included from /usr/include/boost/python/overloads.hpp:11:0, from /usr/include/boost/python.hpp:52, from src/wrapper/common.hpp:24, from src/wrapper/id3.cpp:40: /usr/include/boost/python/detail/defaults_def.hpp: In instantiation of ‘void boost::python::detail::define_with_defaults(const char*, const OverloadsT&, NameSpaceT&, const SigT&) [with OverloadsT = {anonymous}::render_overloads; NameSpaceT = boost::python::class_ >; SigT = boost::mpl::vector2]’: /usr/include/boost/python/class.hpp:598:9: required from ‘void boost::python::class_::def_maybe_overloads(const char*, SigT, const OverloadsT&, const boost::python::detail::overloads_base*) [with OverloadsT = {anonymous}::render_overloads; SigT = TagLib::ByteVector (TagLib::ID3v2::Tag::*)()const; W = TagLib::ID3v2::Tag; X1 = boost::noncopyable_::noncopyable; X2 = boost::python::bases; X3 = boost::python::detail::not_specified]’ /usr/include/boost/python/class.hpp:245:9: required from ‘boost::python::class_::self& boost::python::class_::def(const char*, A1, const A2&) [with A1 = TagLib::ByteVector (TagLib::ID3v2::Tag::*)()const; A2 = {anonymous}::render_overloads; W = TagLib::ID3v2::Tag; X1 = boost::noncopyable_::noncopyable; X2 = boost::python::bases; X3 = boost::python::detail::not_specified; boost::python::class_::self = boost::python::class_ >]’ src/wrapper/id3.cpp:221:8: required from here /usr/include/boost/python/detail/defaults_def.hpp:247:1: error: invalid application of ‘sizeof’ to incomplete type ‘boost::STATIC_ASSERTION_FAILURE’ }}}" Andreas Kloeckner Boost 1.53.0 8767 named_function_params.hpp: Unused variable warnings: (weight_map, tag_namespace) graph Boost 1.53.0 To Be Determined Bugs Jeremiah Willcock new 2013-07-03T00:05:49Z 2016-08-09T09:18:51Z "Similar to bug https://svn.boost.org/trac/boost/ticket/6926, building Boost 1.53 with Xcode 4.6.3 gives many warnings like the following: In file included from ...lib/../../../eos/mesh/face_graph.cpp:1: In file included from ...lib/boost_1_53_0/boost/graph/connected_components.hpp:15: In file included from ...lib/boost_1_53_0/boost/graph/depth_first_search.hpp:21: ...lib/boost_1_53_0/boost/graph/named_function_params.hpp:335:7: warning: unused variable '_weight_map' [-Wunused-variable] BOOST_BGL_DECLARE_NAMED_PARAMS ^ ...lib/boost_1_53_0/boost/graph/named_function_params.hpp:63:5: note: expanded from macro 'BOOST_BGL_DECLARE_NAMED_PARAMS' BOOST_BGL_ONE_PARAM_CREF(weight_map, edge_weight) \ ^ ...lib/boost_1_53_0/boost/graph/named_function_params.hpp:334:45: note: expanded from macro 'BOOST_BGL_ONE_PARAM_CREF' #define BOOST_BGL_ONE_PARAM_CREF(name, key) BOOST_PARAMETER_NAME(name) ^ ...lib/boost_1_53_0/boost/parameter/name.hpp:139:9: note: expanded from macro 'BOOST_PARAMETER_NAME' , BOOST_PARAMETER_SIMPLE_NAME \ ^ note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) :113:1: note: expanded from macro '_' _weight_map ^ ...lib/boost_1_53_0/boost/parameter/name.hpp:110:53: note: expanded from macro 'BOOST_PARAMETER_BASIC_NAME' BOOST_PARAMETER_NAME_OBJECT(tag_namespace::tag, name) ^ ...lib/boost_1_53_0/boost/parameter/name.hpp:86:48: note: expanded from macro 'BOOST_PARAMETER_NAME_OBJECT' ::boost::parameter::keyword const& name \ ^ " rmann@… Boost 1.53.0 8799 named condition notify_all does not wake up waiting process interprocess Boost 1.53.0 To Be Determined Bugs Ion Gaztañaga new 2013-07-08T13:21:20Z 2014-10-24T09:28:58Z "The underlying snippet never catches the notify_all() signal. Operating System used is Linux 3.5.0-17-generic. Can anybody confirm this as a bug or am I doing something wrong? === Code snippet === {{{ #include #include #include #include #include #include #include #include #include using namespace std; using namespace boost::interprocess; void* consumer(void*) { cout << ""Started child"" << endl; named_mutex mtx(create_only, ""somemutex""); named_condition signal_empty (create_only, ""signal_empty""); for(;;) { cout << ""Child tries to lock"" << endl; scoped_lock lock(mtx); cout << ""Child got lock and waits"" << endl; signal_empty.wait(lock); cout << ""Child WOKE up"" << endl; } cout << ""Finished child"" << endl; } void* producer(void*) { cout << ""Started parent"" << endl; sleep(1); named_mutex mtx(open_only, ""somemutex""); named_condition signal_empty (open_only, ""signal_empty""); for(;;) { cout << ""Parent tries to get lock"" << endl; scoped_locklock(mtx); cout << ""Parent got lock and notifies"" << endl; sleep(1); cout << ""Parent notifies child"" << endl; signal_empty.notify_all(); } } int main(int argc, char** argv) { pid_t pid = fork(); if(pid == 0) { consumer(NULL); } else { producer(NULL); } } }}} === Application output === {{{ Started parent Started child Child tries to lock Child got lock and waits Parent tries to get lock Parent got lock and notifies Parent notifies child Parent tries to get lock Parent got lock and notifies ..... }}}" peter.knafl@… Boost 1.53.0 8865 comparison of unsigned expression warning property_tree Boost 1.53.0 To Be Determined Bugs Sebastian Redl new 2013-07-20T17:45:35Z 2013-07-20T17:45:35Z "Building with -Werror and -Wtype-limits gives this warning: {{{ boost/property_tree/detail/ptree_utils.hpp:76:13: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] }}} " alex@… Boost 1.53.0 8926 Windows error messages used for errno codes system Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-07-25T08:10:06Z 2013-09-17T10:04:08Z "Consider the following: {{{ using namespace boost::system; system_error e(errc::resource_unavailable_try_again, system_category()); std::cout << e.what() << std::endl; }}} This should print something along the lines of ""Resource unavailable"", but instead it prints ""An attempt was made to load a program with an incorrect format"". The value of `errc::resource_unavailable_try_again` is 11, or `EAGAIN`. What is printed, however, is the message for the Windows system error code `ERROR_BAD_FORMAT`, which is also 11. I encountered this while using boost::thread. I got the above message when I ran out of memory during thread creation." Lars T. Kyllingstad Boost 1.53.0 8939 boot filesystem error when copy-overwrite-the file to itself filesystem Boost 1.53.0 To Be Determined Bugs Beman Dawes new 2013-07-30T15:35:20Z 2013-07-30T15:52:40Z "I'm running RedHat. I tried to copy, and overwrite if existing file 'a' to itself. namespace fs=boost::filesystem; fs::copyfile('a', 'a', fs::copy_option::overwrite_if_exist); This clear the content of 'a', and giving me an empty file. " hoangtrongminhtuan@… Boost 1.53.0 9116 Binary serialization: bitwise copying should also apply to single POD objects (it now only seems to work on arrays/collections) serialization Boost 1.53.0 To Be Determined Bugs Robert Ramey new 2013-09-14T19:03:26Z 2013-10-01T12:51:12Z "I'm trying to find the best settings for fast binary serialization of big POD objects. My tests indicate that, for a structure tagged as bitwise serializable, I only get better performance on arrays and vectors, not on individual objects. For instance, say I have a structure made up only of POD types: {{{ struct BigStruct { double m1; long long m2; float m3; // ... bool m499; short m500; }; namespace boost { namespace serialization { template void serialize(Archive& ioArchive, BigStruct& ioStruct, const unsigned int iVersion) { ioArchive & ioStruct.m1; ioArchive & ioStruct.m2; ioArchive & ioStruct.m3; // ... ioArchive & ioStruct.m499; ioArchive & ioStruct.m500; } } } #include BOOST_IS_BITWISE_SERIALIZABLE(BigStruct); }}} Then, serializing a single !BigStruct object takes considerably (at least 5 times) longer than serializing an array of 1 !BigStruct object." Louis Zanella Boost 1.53.0 9132 mpl and lexical_cast dependency mpl Boost 1.53.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-09-19T10:18:24Z 2013-09-19T10:41:23Z "Hi, It took mi one day to find out why my msm stopped to compile after upgrading to new boost. I was upgrading from 1.45 (with msm from 1.51) to 1.53. After many tries with different #define's it turned out the problem is elsewhere. This is code that breaks compilation: {{{ #include #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #define BOOST_MPL_LIMIT_VECTOR_SIZE 30 #include int main() { boost::mpl::vector v; } }}} and compilation output: {{{ g++ -Wall -Wextra -pedantic -Wlong-long plik.C -o plik -O2 -I /bldtools/3rd/boost/boost1.53/32bitrhel63/include -Wno-unused plik.C:13:1: warning: ""BOOST_MPL_LIMIT_VECTOR_SIZE"" redefined In file included from /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/mpl/vector.hpp:18, from /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/math/policies/policy.hpp:14, from /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/math/special_functions/math_fwd.hpp:28, from /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/math/special_functions/sign.hpp:17, from /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/lexical_cast.hpp:167, from plik.C:10: /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/mpl/limits/vector.hpp:18:1: warning: this is the location of the previous definition plik.C: In function âint main()â: plik.C:41: error: wrong number of template arguments (21, should be 20) /bldtools/3rd/boost/boost1.53/32bitrhel63/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp:22: error: provided for âtemplate struct boost::mpl::vectorâ plik.C:41: error: invalid type in declaration before â;â token make: *** [plik] Error 1 }}} Removing lexical_cast fixes the problem. Looks like lexical_cast started to use mpl vector with default settings and later #define's don't change the settings. The issue is complicated because it is not enough to move #define's at the beginning of file. I had to modify all my *.hpp files to include msm headers (and #define's) at the beginning of file. And also *.cpp files to include the above *.hpp at the beginning of file :(. Regards, Marcin Pytel" mkp Boost 1.53.0 9204 const_multi_array_ref with const multi_array Boost 1.53.0 To Be Determined Bugs Ronald Garcia new 2013-10-07T04:09:03Z 2013-10-07T04:09:03Z "It's now declared as {{{#!cpp template }}} This makes it SFINAE-fail if you use const type for T, like {{{const_multi_array_ref}}}. This simple change fixes the problem (tested): {{{#!cpp #include ""boost/type_traits/add_const.hpp"" ... template ::type * > }}}" Maxim.Yanchenko@… Boost 1.53.0 9214 (Windows) bjam should choose the msvc version from the current visual studio prompt Building Boost Boost 1.53.0 To Be Determined Bugs new 2013-10-09T07:52:23Z 2016-01-13T00:54:13Z "If you have multiple versions of msvc installed bjam seems to choose itself the version of msvc and do not take the current environment into account. This behaviour is totally misleading, beacuse I open a specific Visual Studio prompt with a reason. Bjam should pick the current msvc version out of the msvc prompt by default. Example: I want to build boost through the cmake ExternalProject mechanism. I have msvc11 and msvc12 installed. Even after I opened a msvc12 prompt, bjam picks msvc11. This will result into linking errors later in the cmake build process because of runtime mismatches." desurium@… Boost 1.53.0 9385 Call current_exception in concurrent manner for the same exception object exception Boost 1.53.0 To Be Determined Bugs Emil Dotchevski new 2013-11-13T14:55:08Z 2013-11-13T14:55:08Z "In attached file you can find minimal test that crashes when uses boost implementation of exception_ptr. It happens when call current_exception in concurrent manner for the same exception object. Why does I expect that it should work? Because documentation does not say opposite (and it works in std implementation). In boost till 1.42([http://www.boost.org/doc/libs/1_43_0/libs/exception/doc/exception_ptr.html]) was said: Therefore, in general it is not safe to call rethrow_exception concurrently to throw the same exception object into multiple threads. And I have called it under mutex. But even in 1.42 was not said that call current_exception in concurrent manner (for the same exception object) not allowed. The problem in class boost::exception_detail::exception {{{#!c++ class boost::exception_detail::exception { ... mutable exception_detail::refcount_ptr data_; }}} when you call current_exception it's cloning current object of exception that create race condition. The documentation not enough clear about thread safety restrictions for current_exception and rethrow_excepoption. Here is back trace {{{ #0 0x000000000225a110 in ?? () #1 0x0000000000410455 in boost::exception_detail::refcount_ptr::add_ref() () #2 0x000000000040dc0a in boost::exception_detail::refcount_ptr::refcount_ptr(boost::exception_detail::refcount_ptr const&) () #3 0x000000000040c1ba in boost::exception::exception(boost::exception const&) () #4 0x0000000000413033 in boost::exception_detail::current_exception_std_exception_wrapper::current_exception_std_exception_wrapper(boost::exception_detail::current_exception_std_exception_wrapper const&) () #5 0x00000000004130bd in boost::exception_detail::clone_impl >::clone_impl(boost::exception_detail::clone_impl > const&) () #6 0x0000000000420563 in boost::exception_detail::clone_impl >::rethrow() const () #7 0x000000000040cca8 in boost::rethrow_exception(boost::exception_ptr const&) () #8 0x0000000000409825 in executer(boost::mutex&, boost::exception_ptr) () #9 0x0000000000421ff2 in void boost::_bi::list2, boost::_bi::value >::operator()(boost::_bi::type, void (*&)(boost::mutex&, boost::exception_ptr), boost::_bi::list0&, int) () #10 0x00000000004211cd in boost::_bi::bind_t, boost::_bi::value > >::operator()() () #11 0x0000000000420122 in boost::detail::thread_data, boost::_bi::value > > >::run() () #12 0x00007fdff7194d29 in thread_proxy () from /home/roman-s/libraries/boost_1_53_0/stage/lib/libboost_thread.so.1.53.0 #13 0x00007fdff6f71f8e in start_thread (arg=0x7fdff5178700) at pthread_create.c:311 #14 0x00007fdff6782a0d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 }}} In my project where we use boost::exception on more difficult case, problem happens all time in refcount_ptr that try delete already deleted object. In this synthetical test problems arrives in a little bit another manner. But it's exactly reproduce our logic. Of course we can avoid this problem, but problem is. Thank you." cupper.jj@… Boost 1.53.0 9624 boost::icl::swap causes ambiguity with std::swap with ADL ICL Boost 1.53.0 To Be Determined Bugs Joachim Faulhaber new 2014-01-31T18:28:35Z 2014-01-31T18:28:35Z "With C++11, the swap() function overload in boost::icl is ambiguous with std::swap due to ADL. I'm using boost 1.53, but this doesn't appear to be addressed in git yet either. It think it's the exact same problem previously addressed in Boost.Variant (https://svn.boost.org/trac/boost/ticket/2839). I've applied the same fix (i.e., using separate template params for two arguments to swap, making it less specialized than std::swap) to my local copy of boost, and it appears to resolve it. I'm using clang 3.4 / libstdc++ from gcc 4.7.2 / boost 1.53, compile line ==> clang -std=c++11 -o test_adl test_adl.cc test file and error message attached. Thanks, --Nathan " Nathan Thomas Boost 1.53.0 9677 make_biconnected_planar failure when working with custom planar embedding graph Boost 1.53.0 To Be Determined Bugs Jeremiah Willcock new 2014-02-17T19:46:00Z 2014-02-17T19:46:00Z "Using make_biconnected_planar function with a planar graph G and its custom embedding results in a graph, which is no longer planar. The problem doesn't occur when embedding G with boyer_myrvold_planarty_test. The custom planar embedding of a graph G with 11 vertices and 18 edges is (each group is a counter clock-wise list of edges adjacent to a vertex): 0 - 1 : 0 0 - 8 : 15 0 - 1 : 0 1 - 2 : 2 4 - 1 : 3 1 - 3 : 1 1 - 2 : 2 2 - 3 : 5 2 - 4 : 4 1 - 3 : 1 3 - 4 : 6 2 - 3 : 5 4 - 1 : 3 2 - 4 : 4 3 - 4 : 6 5 - 6 : 7 5 - 8 : 9 7 - 5 : 8 5 - 6 : 7 6 - 7 : 10 6 - 9 : 12 8 - 6 : 11 7 - 5 : 8 7 - 8 : 13 9 - 7 : 14 6 - 7 : 10 5 - 8 : 9 8 - 6 : 11 8 - 9 : 16 0 - 8 : 15 7 - 8 : 13 6 - 9 : 12 9 - 7 : 14 9 - 10 : 17 8 - 9 : 16 9 - 10 : 17 An example program is attached." Jakub Oćwieja Boost 1.53.0 10055 visit_current_states can't be called for const object msm Boost 1.53.0 To Be Determined Bugs Christophe Henry new 2014-05-16T06:31:52Z 2014-05-16T06:31:52Z "Is there any reason the back::state_machine::visit_current_states() method is not const? I've added const to it and to back::state_machine::visitor_fct_helper::execute() and it didn't break compilation. Regards, Marcin Pytel" mkp Boost 1.53.0 10337 "weak_ptr & shared_ptr causes double ""delete"" -> crash" smart_ptr Boost 1.53.0 To Be Determined Bugs Peter Dimov new 2014-08-10T15:57:00Z 2014-08-10T16:41:19Z "I am not sure why this happens (VS2005 - VS2013) and specifically on windows (code compiles and runs fine on linux)... The following is the boost code that is responsible: void sp_counted_impl_p::release() // nothrow { if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 ) { dispose(); weak_release(); } } void sp_counted_impl_p::weak_release() // nothrow { if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 ) { destroy(); } } Look what MUST happen, when ""use_count = 1"" and ""weak_count = 1"".. It causes a double release which crashes the application. That was a real pain in the ass to track down and unfortunately I have nothing to specifically trigger this issue either. Just look at the code and it should be obvious that this is a race condition." thesaint1987@… Boost 1.53.0 10920 Boost error from XlC11. 01 using BOOST 1.53 in union geometry Boost 1.53.0 To Be Determined Bugs Barend Gehrels new 2015-01-09T06:26:05Z 2015-03-23T17:58:02Z "Hi All, We are trying to compile sample boost code to demonstrate union on Aix64: Testcase: http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/union_.html Following are the details of compiler Xlc Version:Version: 11.01.0000.0011 OS version:6100-06-05-1115 Boost version:1.53 It throws errors: ""/usr/vacpp/include/vector.t"", line 163.36: 1540-0716 (S) The template argument ""std::vector,1,1,std::vector,1,1,std::vector,1,1,std::vector,1,1,std::vector,std::allocator>,std::allocator,1,1,std::vector,std::allocator>,std::allocator,1,1,std::vector,std::allocator> > >"". ""/boost/boost/geometry/geometries/polygon.hpp"", line 69.7: 1540-0700 (I) The previous message was produced while processing ""class boost_1_53_0::geometry::model::polygon,1,1,std::vector,std::vector,std::allocator,std::allocator>"". ""test.cpp"", line 12.5: 1540-0700 (I) The previous message was produced while processing ""main()"". ""/usr/vacpp/include/vector.t"", line 163.36: 1540-0716 (S) The template argument ""std::vector,1,1,std::vector,1,1,std::vector,1,1,std::vector,1,1,std::vector,std::vector,std::allocator,std::allocator>,std::allocator,1,1,std::vector,std::vector,std::allocator,std::allocator>,std::allocator,1,1,std::vector,std::vector,std::allocator,std::allocator> > >"". ""test.cpp"", line 12.5: 1540-0700 (I) The previous message was produced while processing ""main()"". Is this a known bug ? Please help us in case a patch is available. " devika.rs@… Boost 1.53.0 12080 Boost:asio::address incompatible 32 and 64 bit asio Boost 1.53.0 To Be Determined Bugs chris_kohlhoff new 2016-03-20T14:08:39Z 2016-03-20T14:08:39Z "When using g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16) The serialized size of boost::asio::ip::address differs between 32 and 64 bit compilations. When compiled in 32 bit the size of the structure is 28 bytes, and when compiled in 64 bit the size of the structure is 32 bytes. I guess it should be 32 bytes in both cases, to be inter-operable and avoid page alignment issues." max_shifrin@… Boost 1.53.0 12297 epoll_wait hang asio Boost 1.53.0 To Be Determined Bugs chris_kohlhoff new 2016-06-23T10:15:07Z 2016-06-23T10:15:07Z "We use sofarpc(https://github.com/baidu/sofa-pbrpc ) which use boost asio as network lib. boost::asio::io_service io_ser; auto work = new boost::asio::io_service::work(io_ser); after I delete work, io_ser still in run function and never stop. so i print io_ser class member as below (gdb) p *(boost::asio::detail::task_io_service * const) 0x22738e0 $26 = {> = { = { = {}, _vptr.service = 0xa24a90 , key_ = {type_info_ = 0xa245a0 >, id_ = 0x0}, owner_ = @0x228f6d0, next_ = 0x0}, static id = { = { = {}, }, }}, one_thread_ = false, mutex_ = { = {}, mutex_ = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0, __spins = 0, __list = { __prev = 0x0, __next = 0x0}}, __size = '\000' , ""\a"", '\000' , __align = 0}}, task_ = 0x2266e10, task_operation_ = { = {next_ = 0x0, func_ = 0x0, task_result_ = 0}, }, task_interrupted_ = false, outstanding_work_ = {value_ = 3}, op_queue_ = { = {}, front_ = 0x0, back_ = 0x0}, stopped_ = false, shutdown_ = false, first_idle_thread_ = 0x7f182991fce0} and I found one of the stack as belows Thread 6 (Thread 0x7f182a321700 (LWP 30142)): #0 0x00007f1833fb2163 in epoll_wait () from /lib64/libc.so.6 #1 0x000000000061f888 in boost::asio::detail::epoll_reactor::run (this=0x2266e10, block=, ops=...) at /usr/local/include/boost/asio/detail/impl/epoll_reactor.ipp:392 #2 0x0000000000624671 in boost::asio::detail::task_io_service::do_run_one (ec=..., this_thread=..., lock=..., this=0x22738e0) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:396 #3 boost::asio::detail::task_io_service::run (this=0x22738e0, ec=...) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:153 #4 0x000000000062521e in boost::asio::io_service::run (this=0x228f6d0) at /usr/local/include/boost/asio/impl/io_service.ipp:59 #5 sofa::pbrpc::ThreadGroupImpl::thread_run (param=0x22bf100) at src/sofa/pbrpc/thread_group_impl.h:263 #6 0x00007f1834e7a9d1 in start_thread () from /lib64/libpthread.so.0 #7 0x00007f1833fb1b6d in clone () from /lib64/libc.so.6 so i want see if i see time_out parameter of epoll_wait function is -1. so i print epoll_reactor::timer_fd_ (gdb) p timer_fd_ $6 = 515 so why epoll_wait never has a return ?? " baibin <406455861@…> Boost 1.53.0 12298 epool_wait hang asio Boost 1.53.0 To Be Determined Bugs chris_kohlhoff new 2016-06-23T10:22:34Z 2017-02-22T06:58:01Z "We use sofarpc (https://github.com/baidu/sofa-pbrpc ) which uses boost asio as network lib. code like boost::asio::io_service io_ser; auto work = new boost::asio::io_service::work(io_ser); after I delete work, io_ser still in run function and never stop. so i print io_ser class member as below (gdb) p *(boost::asio::detail::task_io_service * const) 0x22738e0 $26 = {> = { = { = {}, _vptr.service = 0xa24a90 , key_ = {type_info_ = 0xa245a0 >, id_ = 0x0}, owner_ = @0x228f6d0, next_ = 0x0}, static id = { = { = {}, }, }}, one_thread_ = false, mutex_ = { = {}, mutex_ = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0, __spins = 0, __list = { __prev = 0x0, __next = 0x0}}, __size = '\000' , ""\a"", '\000' , __align = 0}}, task_ = 0x2266e10, task_operation_ = { = {next_ = 0x0, func_ = 0x0, task_result_ = 0}, }, task_interrupted_ = false, outstanding_work_ = {value_ = 3}, op_queue_ = { = {}, front_ = 0x0, back_ = 0x0}, stopped_ = false, shutdown_ = false, first_idle_thread_ = 0x7f182991fce0} and I found one of the thread stack as belows Thread 6 (Thread 0x7f182a321700 (LWP 30142)): #0 0x00007f1833fb2163 in epoll_wait () from /lib64/libc.so.6 #1 0x000000000061f888 in boost::asio::detail::epoll_reactor::run (this=0x2266e10, block=, ops=...) at /usr/local/include/boost/asio/detail/impl/epoll_reactor.ipp:392 #2 0x0000000000624671 in boost::asio::detail::task_io_service::do_run_one (ec=..., this_thread=..., lock=..., this=0x22738e0) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:396 #3 boost::asio::detail::task_io_service::run (this=0x22738e0, ec=...) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:153 #4 0x000000000062521e in boost::asio::io_service::run (this=0x228f6d0) at /usr/local/include/boost/asio/impl/io_service.ipp:59 #5 sofa::pbrpc::ThreadGroupImpl::thread_run (param=0x22bf100) at src/sofa/pbrpc/thread_group_impl.h:263 #6 0x00007f1834e7a9d1 in start_thread () from /lib64/libpthread.so.0 #7 0x00007f1833fb1b6d in clone () from /lib64/libc.so.6 because of its hanging, i want see if i see time_out parameter of epoll_wait function is -1. so i print epoll_reactor::timer_fd_ (gdb) p timer_fd_ $6 = 515 so we don't use time_out a normal value . so why epoll_wait never has a return ??" baibin <406455861@…> Boost 1.53.0 12614 Boost graph vf2 isomorphism algo runs for ever for this test case graph Boost 1.53.0 To Be Determined Bugs Jeremiah Willcock new 2016-11-21T08:20:56Z 2016-11-23T16:13:36Z "Boost graph vf2 isomorphism algo runs for ever for this test case Steps to reproduce: 1. Unzip the attached file, you should see three files 2. Add the cpp file to your build system 3. Compile and execute. ---- " Praveen Vs Boost 1.53.0 13324 not able to link the path to some files of boost library like boost::interprocess::detail has not been declared interprocess Boost 1.53.0 To Be Determined Bugs Ion Gaztañaga new 2017-12-04T22:45:50Z 2017-12-04T22:45:50Z " Hi, I keep getting Error boost::interprocess::detail has not been declared in cent7 on Boost 1.53, code works in 1.41 version of boost - cent6. Have boost-devel installed already to avoid include and linker flags and other dependencies. " kartikay1110@… Boost 1.53.0 7879 Optimize equality comparison multiprecision Boost 1.53.0 To Be Determined Feature Requests John Maddock new 2013-01-10T23:22:58Z 2013-10-11T13:07:14Z Comparing two numbers for equality should be trivial. However, current implementation uses one or two less-then operators. For rational numbers this is very inefficient because less-then operator is both complex and slow. Stepan Podoskin Boost 1.53.0 7968 swap: Add noexcept to conform with C++11 on compilers supporting it. swap Boost 1.53.0 To Be Determined Feature Requests joseph.gauterin new 2013-02-03T07:10:58Z 2013-02-06T17:30:24Z " {{{ template void swap(T& a, T& b) noexcept(see below ); 1 Remark: The expression inside noexcept is equivalent to: is_nothrow_move_constructible::value && is_nothrow_move_assignable::value template void swap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a, *b))); }}} " viboes Boost 1.53.0 8064 Comment handling in property_tree Boost 1.53.0 To Be Determined Feature Requests Sebastian Redl new 2013-02-14T13:33:27Z 2013-02-14T13:50:43Z "Hello! I'd like to propose a patch to the ini_parser.hpp which allowes to handle inline comments like: key=0.55 ;this comment describing ""key"" would result in an exception when using read_ini() Patch is attached to this ticket." stefan.jenisch@… Boost 1.53.0 8094 hierarchical_mutex for lock hierarchies (to avoid deadlocks) thread Boost 1.53.0 To Be Determined Feature Requests viboes assigned 2013-02-17T21:24:36Z 2014-10-26T20:41:49Z "It would be great if boost::thread could be extended with a ""hierarchical"" mutex to facilitate lock hierarchies. Lock hierarchies is a construct that associates mutexes with software layer numbers, and enforces the application to only lock ""downwards"" in the software hierarchy [1]. This effectively translates potential deadlocks into deterministic run-time failures that be detected during testing. An example draft implementation is attached. The attachment also includes a BOOST_THREAD_LOCAL work-around for missing ""thread_local"" support that should probably be moved to more neutral ground. [1] http://www.drdobbs.com/parallel/use-lock-hierarchies-to-avoid-deadlock/204801163" Fredrik Orderud Boost 1.53.0 8324 Add treap to Boost.Container container Boost 1.53.0 To Be Determined Feature Requests Ion Gaztañaga new 2013-03-22T12:42:34Z 2015-05-06T12:38:40Z "I think it would be helpful to create a boost::container::treap, i.e. a non-intrusive treap container, implemented using the intrusive version. That could make this useful data structure available to users who wouldn't otherwise need to learn how to use Boost.Intrusive." Phil Endecott Boost 1.53.0 8356 Add move semantic push operations to lockfree data structures lockfree Boost 1.53.0 To Be Determined Feature Requests timblechmann new 2013-03-31T09:35:08Z 2015-11-15T15:01:28Z "Some of the operation in the lockfree data structures could benefit from move semantics when the value_type is movable. {{{ bool push(T &&); }}} The library should use Boost.Move in order to provide these operations on c++ compilers don't providing move semantics. " viboes Boost 1.53.0 8357 Add noexcept to lockfree operations lockfree Boost 1.53.0 To Be Determined Feature Requests timblechmann new 2013-03-31T09:43:43Z 2013-03-31T09:43:43Z "C++11 allows to specify when an operation is noexcept improving the performances of the binary code. As the lock-free operations don't throw any exception, it would be great if the BOOST_NOEXCEPT is used for all of them. While this could be seen as an optimization for lockfree operations, if not added this is a problem for users wanting to declare their functions using lockfree as noexcept." viboes Boost 1.53.0 8382 Add a C++11 conforming make_exception_ptr exception Boost 1.53.0 To Be Determined Feature Requests Emil Dotchevski new 2013-04-04T03:07:54Z 2013-04-04T03:10:25Z " {{{ template exception_ptr make_exception_ptr(E e) BOOST_NOEXCEPT; }}} " viboes Boost 1.53.0 8383 Add noexcept to current_exception() function exception Boost 1.53.0 To Be Determined Feature Requests Emil Dotchevski new 2013-04-04T03:09:40Z 2013-04-04T03:09:40Z " {{{ exception_ptr current_exception() BOOST_NOEXCEPT; }}} " viboes Boost 1.53.0 8430 Positional arguments help output program_options Boost 1.53.0 To Be Determined Feature Requests Vladimir Prus new 2013-04-11T18:42:58Z 2013-04-11T18:42:58Z "Currently, there is no way to output positional argument descriptions. This is however often useful as special values of these options may have special results. I originally asked the question on [http://stackoverflow.com/questions/15863056/how-to-display-commandline-operand-description-in-help-output Stackoverflow]. Summarizing the question linked above, I'd like for this kind of output to be readily available: {{{ cmp: compare two files Usage: cmp [ -l | -s ] file1 file2 Options: --help Show this help output. -l (Lowercase ell.) Write the byte number (decimal) and the differing bytes (octal) for each difference. -s Write nothing for differing files; return exit status only. Operands: file1 A pathname of the first file to be compared. If file1 is '-', the standard input shall be used. file2 A pathname of the second file to be compared. If file2 is '-', the standard input shall be used. }}} where file1 and file2 are pure positional arguments that have behavior warranting a full description. I propose a simple and backwards-compatible change to the way positional_argument_description works: {{{ po::positional_options_description operands(""operands""); operands.add(""file1"", 1, ""A pathname of the first file to be compared. If file1 is '-', the standard input shall be used."") operands.add(""file2"", 1, ""A pathname of the second file to be compared. If file2 is '-', the standard input shall be used.""); }}} 1. Add an optional string argument to the constructor and store it like for normal program_descriptions 2. Add a third optional argument containing the description string of the positional argument 3. Provide an operator<< overload that would allow for formatted output like the above. " vanboxem.ruben@… Boost 1.53.0 8433 Algorithm for finding all the elementary circuits in a directed (multi)graph graph Boost 1.53.0 To Be Determined Feature Requests Jeremiah Willcock reopened 2013-04-12T14:03:17Z 2015-11-13T17:09:15Z "I have implemented the algorithm described in (1) for finding all the elementary circuits of a directed (multi)graph. I implemented it in a generic fashion, planning to propose it for inclusion in Boost. Boost.Graph currently contains the `tiernan_all_cycles` algorithm for finding all the cycles in a graph. However, it is undocumented and it has a time bound (for which no precise analysis is provided) that makes it unsuitable even for moderately sized graphs. In fact, I implemented `hawick_circuits` because `tiernan_all_cycles` did not cut it for my application. My implementation is available at (2). It is licensed under the Boost license and was tested using the test suite at (3). More information on the test suite can be found at (4). Comments on improvements would be appreciated. (1) http://www.massey.ac.nz/~kahawick/cstn/013/cstn-013.pdf (2) https://github.com/ldionne/hawick_circuits (3) https://github.com/josch/cycle_test (4) http://blog.mister-muffin.de/2012/07/04/enumerating-elementary-circuits-of-a-directed_graph/ " Louis Dionne Boost 1.53.0 8436 POSIX cksum CRC crc Boost 1.53.0 To Be Determined Feature Requests Daryle Walker new 2013-04-13T20:47:55Z 2013-04-13T20:47:55Z "It is impossible to use the current interface of Boost.crc to calculate the POSIX cksum crc. This is unfortunate, and perhaps a worthy addition without too much work. http://stackoverflow.com/questions/15852845/posix-cksum-and-boost-crc" vanboxem.ruben@… Boost 1.53.0 8441 Custom allocation and copying of distance values in dijkstra graph Boost 1.53.0 To Be Determined Feature Requests Jeremiah Willcock new 2013-04-15T19:56:16Z 2013-04-15T19:56:16Z "While the compare, combine, zero, and inf concepts allow for some nice customizable distance types in dijkstra_shortest_paths(), there is still no option to allow for custom allocation and copying of each distance value. For instance, if I'm forced to use an object to allocate new distance values like DistAllocator::allocDist(), it's very difficult to wrap this functionality in a way that only uses default constructors and copy constructors as is currently the case in dijkstra_shortest_paths(). This typically requires creating an auxiliary class with the DistAllocator as a static class variable, which is restrictive if there are multiple DistAllocators." Luis G. Torres Boost 1.53.0 8539 Windows Extended Path Prefix Suggestion filesystem Boost 1.53.0 To Be Determined Feature Requests Beman Dawes new 2013-05-02T03:45:48Z 2013-05-03T20:05:29Z "With the Windows extended path prefix: {{{ \\?\ }}} It might make sense if the path class pre-allocates 4 extra characters for paths and stores the actual path at position m_pathname[4] in the string. When a path exceeds MAX_PATH, the path functions could write the extended path prefix at m_pathname[0] and pass that along to the Windows API. It may make sense to return this as something like extended_path() as well. The only problems in dealing with extended paths are that there can be no relative path (. and ..) segments and no forward slashes. I realize this may require alot of logic changes in the code (shifting read/write locations); however it could cut down on additional Windows-specific wrappers around the path class." ascend4nt@… Boost 1.53.0 8597 Add single precision float support for spirit and/or utree spirit Boost 1.53.0 To Be Determined Feature Requests Joel de Guzman new 2013-05-20T16:44:33Z 2013-05-20T17:18:07Z Currently there is only double precision floating point support that I know of. However, we are cross compiling to ArchLinux ARM, and would like to stay in the realm of 32-bit single precision if at all possible, and void ARM hard or soft floating point issues if at all possible. Michael Powell Boost 1.53.0 8646 vector_indirect: broader support for vector of indices uBLAS Boost 1.53.0 To Be Determined Feature Requests Gunter new 2013-06-04T07:03:28Z 2013-06-04T07:03:28Z "Hello all, It would be really useful to be able to construct vector_indirect objects using more types of vector of indices, other than indirect_array. Contrary to the documentation, trying to use a std::vector or a boost::numeric::ublas::vector results in my compiler (GCC 4.7.2) complaining about a preprocess member missing. Similar ideas would of course apply to matrix_indirect as well. Thanks for your time." linuxfever@… Boost 1.53.0 8666 boost::lockfree::spsc_queue::emplace_push lockfree Boost 1.53.0 To Be Determined Feature Requests timblechmann new 2013-06-06T22:14:59Z 2013-06-08T16:12:03Z "It would be nice to be able to write the following function: {{{ void producer_thread() { while(isRunning) { T& item = q.emplace_write(); // This feature avoids the need to create the item write(item); q.emplace_push(); // This feature avoids the need to copy the item } } }}} Implementing this: A slow consumer may be reading the item after the write index so the change is not as easy as exposing the next item. The change would require a gap of 1 item to always exist to avoid a read/write collision. Jason Aubrey" aubrey@… Boost 1.53.0 8684 Provide a map-like container with key derivable from value container Boost 1.53.0 To Be Determined Feature Requests Ion Gaztañaga new 2013-06-10T20:21:03Z 2013-08-06T23:08:52Z "It would be nice to have a key-value associative container for which the user can provide a functor to derive a key from a value so that no additional memory to store the key is used. This is different from a set in that the key- and value-types don't have to match." 1zeeky@… Boost 1.53.0 8714 Allow move-only handlers asio Boost 1.53.0 To Be Determined Feature Requests chris_kohlhoff new 2013-06-20T10:42:14Z 2014-08-14T12:19:13Z "(See also http://stackoverflow.com/questions/17211263) The requirement that handlers be copy constructible doesn't allow for the following idiom: {{{ void connection::send_response() { // block until previous response is sent std::unique_lock locker(response_mutex_); // prepare response response_ = ""foo""; // send response back to caller. move the unique_lock into the binder // to keep the mutex locked until asio is done sending. asio::async_write(stream_, asio::const_buffers_1(response_.data(), response_.size()), std::bind(&connection::response_sent, shared_from_this(), _1, _2, std::move(locker)) ); } void connection::response_sent(const boost::system::error_code& err, std::size_t len) { if (err) handle_error(err); // the mutex is unlocked when the binder is destroyed } }}} Please remove this restriction, there is no reason for it when using C++11." Marton Boost 1.53.0 8771 Constructor of polymorphic archives serialization Boost 1.53.0 To Be Determined Feature Requests Robert Ramey new 2013-07-03T10:51:35Z 2013-07-03T10:51:35Z "The constructor of polymorphic_iarchive_route assumes that the wrapped archive takes a std::stream argument. While that may be the case for the current archives provided Boost.Serialization, it is not generally the case. I have some archives that takes two iterators (begin/end) instead. Robert has suggested that the constructor should take an already constructed archive instead. That would solve my problem." Bjorn Reese Boost 1.53.0 9318 Improve performance of boost string algorithms when converting case string_algo Boost 1.53.0 To Be Determined Feature Requests Marshall Clow new 2013-10-29T18:35:11Z 2013-10-29T18:35:11Z "We recently switched STL library to libstdc++ and hit a performance snag on code that use boost string algorithms for converting case or comparing case insensitive. I noticed that the algorithms use the standard C++ convenience functions for character classification for each and every character being converted or compared. This is very inefficient as these standard C++ functions in turn call std::use_facet every time they are called. At least in libstdc++, std::use_facet is very expensive as it involves quite a bit of code including a dynamic_cast. To quote Josuttis' The C++ Standard Library: ""It is much faster to obtain the corresponding facet from the locale and to use the functions on this object directly"". Indeed if I wrap boost::to_upper/lower (an other) with functions that cache and reuse the facet within the same call to to_upper/lower, I see a significant run time improvement. In fact my application can cache the facet for the entire duration of the program running, something the string algorithms cannot do since they must support on the fly locale changes, but I wonder if this latter case should be supported also? Thanks for a great library. Soren Soe" boost@… Boost 1.53.0 9789 Consistent comment support for INI files program_options Boost 1.53.0 To Be Determined Feature Requests Vladimir Prus new 2014-03-18T14:06:25Z 2014-03-18T14:14:08Z "See ticket #5379 - semicolon was supported but hash was not in property tree ini parser, hash was added as a result of that ticket. I am presently dealing with program options. In config_file.cpp, only hash is supported. Please can semicolon be added for consistency within boost as well as other applications. For example, PHP only supports semicolon (they have dropped support for hash which I am given to understand was always the lesser used character for commenting INI files). Many applications do not support hash. " edward@… Boost 1.53.0 10047 Using Boost:Interprocess on Android interprocess Boost 1.53.0 To Be Determined Feature Requests Ion Gaztañaga new 2014-05-12T15:46:39Z 2018-03-16T01:47:33Z "It is not a bug, but it might safe some time to others using boost:interprocess library on Android. This library usually uses a temporary directory to store the data that is being shared among processes. The directory path used for this can be found on os_file_functions.hpp-:get_temporary_path. The thing is that if you do not modify this file and add ´/sdcard´ to the possible paths that your process can use, then you cannot share information among android Apps due to the permission restrictions that exist for processes on android storing data outside their sandbox. It will be a good feature to have boost compile with this option on. Or provide a static method to add my own Temporary Path. Note: I am not completely sure if something exists to solve this problem. Regards," anonymous Boost 1.53.0 7896 boost::numeric::ublas::unbounded_array::operator= can call std::copy(0, 0, x) uBLAS Boost 1.53.0 To Be Determined Patches Gunter new 2013-01-15T13:30:06Z 2013-01-15T13:30:06Z This causes an assertion failure with Visual Studio 2008+2010 when _ITERATOR_DEBUG_LEVEL == 2 lukeocamden@… Boost 1.53.0 8035 Warning fixes in parameter parameter Boost 1.53.0 To Be Determined Patches Daniel Wallin new 2013-02-12T09:29:26Z 2013-02-12T09:29:26Z "We have a zero warning policy in our development projects and experience lots of warnings in several boost libraries. With every new boost version we need to apply a set of warning fixes. It would help a lot if you could integrate these warning fixes into future boost releases. Please find attached a patch file against boost 1.53.0 which fixes several warnings in boost::parameter." Franz Detro Boost 1.53.0 8285 These is no statvfs.h in android NDK filesystem Boost 1.53.0 To Be Determined Patches Beman Dawes new 2013-03-12T11:13:49Z 2013-03-12T11:15:39Z Boost.Filesystem fails to compile with Android NDK r8d, due to lack of statvfs.h on this platform. This issue can be sorted out using the attached patch. boost.lists@… Boost 1.53.0 8305 Allow interprocess to work with big files on x32 POSIX systems interprocess Boost 1.53.0 Boost 1.54.0 Patches Ion Gaztañaga new 2013-03-18T15:13:07Z 2015-08-11T09:01:22Z "This patch adds `O_LARGEFILE` to file open mode (if it is supported). Some info about defining `-D_FILE_OFFSET_BITS=64` on x32 POSIX systems shall be added to official documentation and maybe to `mapped_region` doxygen documentation. (patch was tested on x32 Linux on boost 1.53 and adopted for trunk version)" Antony Polukhin Boost 1.53.0 8307 additional archetypes request graph Boost 1.53.0 To Be Determined Patches Jeremiah Willcock new 2013-03-18T20:45:19Z 2013-03-18T20:45:19Z "Currently, incidence_graph_archetype, adjacency_graph_archetype, and vertex_list_graph_archetype are defined in graph_archetypes.hpp. According to the following document, those archetypes correspond to IncidenceGraph, AdjacencyGraph, and VertexListGraph concepts: http://www.boost.org/doc/libs/1_53_0/libs/graph/doc/graph_concepts.html It seems that there are no archetypes correspond to EdgeListGraph, AdjacencyMatrix, VertexAndEdgeListGraph, and BidirectionalGraph concepts. I attached the patch that adds those additional archetypes and their tests. " redboltz@… Boost 1.53.0 9218 Invalid pointer dereference on MSVC debug builds lockfree Boost 1.53.0 To Be Determined Patches timblechmann new 2013-10-10T01:00:44Z 2013-10-10T01:05:25Z "This is rare (so far only observed with race detection simulation), but due to the MSVC DebugCRT initialising ""new"" allocated memory to 0xCC instead of 0x00 the queue will miss a null pointer check in a particular race condition and try to dereference 0xCCCCCCCC. If you're interested I could probably get a log of the exact sequence of operations that leads to this error, but it's pretty wordy." Gavin Lambert Boost 1.53.0 8631 property_three - use user std::locale property_tree Boost 1.53.0 To Be Determined Support Requests Sebastian Redl new 2013-05-30T03:57:45Z 2013-05-30T03:57:45Z "property_tree use locale::global(). :(. Unfortunately ""std::locale::global"" global process property. In multytread programm this problem. Perhaps a small patch will improve the situation: property_tree pt; pt.put_value(12345, locale(""""));" shirshov evgeny <381677383@…> Boost 1.53.0 11439 Duplicate name of actual target: libboost_system.a Building Boost Boost 1.53.0 To Be Determined Support Requests new 2015-06-30T19:15:39Z 2015-09-17T20:34:35Z "Hello, I am trying to compile boost1.53, I can't use a version newer than 1.55 as this is for the Cufflinks RNA tools. I already had this version installed and working previously, but an HDD made me have to reinstall everything. The commands I have used (multiple times) before are: ./bootstrap.sh which gives: Building Boost.Build engine with toolset gcc... tools/build/v2/engine/bin.linuxx86_64/b2 Detecting Python version... 2.7 Detecting Python root... /usr Unicode/ICU support for Boost.Regex?... not found. Generating Boost.Build configuration in project-config.jam... Bootstrapping is done. To build, run: ./b2 To adjust configuration, edit 'project-config.jam'. Further information: - Command line help: ./b2 --help - Getting started guide: http://www.boost.org/more/getting_started/unix-variants.html - Boost.Build documentation: http://www.boost.org/boost-build2/doc/html/index.html Then I run: ./bjam link=static runtime-link=static stage install I get the following Which is now giving me: Performing configuration checks - 32-bit : no - 64-bit : yes - x86 : yes - has_icu builds : yes warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam - iconv (libc) : yes - icu : yes - gcc visibility : yes - long double support : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add ""using mpi ;"" to user-config.jam. note: to suppress this message, pass ""--without-mpi"" to bjam. note: otherwise, you can safely ignore this message. /genome/Apps/boost_1_53_0/tools/build/v2/build/virtual-target.jam:1079: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target: libboost_system.a error: previous virtual target { common%common.copy-libboost_system.a.STATIC_LIB { gcc%gcc.archive-libboost_system.a.STATIC_LIB { gcc%gcc.compile.c++-error_code.o.OBJ { error_code.cpp.CPP } } } } error: created from ./stage-proper error: another virtual target { common%common.copy-libboost_system.a.STATIC_LIB { gcc%gcc.archive-libboost_system.a.STATIC_LIB { gcc%gcc.compile.c++-error_code.o.OBJ { error_code.cpp.CPP } } } } error: created from ./stage-proper error: added properties: shared on error: removed properties: static all /genome/Apps/boost_1_53_0/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@3722 /genome/Apps/boost_1_53_0/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@3722.actualize from module object(file-target)@3722 /genome/Apps/boost_1_53_0/tools/build/v2/build-system.jam:749: in load from module build-system /genome/Apps/boost_1_53_0/tools/build/v2/kernel/modules.jam:283: in import from module modules /genome/Apps/boost_1_53_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module /genome/Apps/boost_1_53_0/boost-build.jam:17: in module scope from module Whereas before it compiled without issue. I need the runtime-links to be static, when I try to make the cufflinks files I get a bunch of errors from hpp files in /usr/local/boost/* folders otherwise." munholl@… Boost 1.53.0 8562 Pool doc lists incorrect header file pool Boost 1.53.0 To Be Determined Tasks Chris Newbold new 2013-05-10T21:06:59Z 2013-05-10T21:06:59Z "The pool documentation (http://www.boost.org/doc/libs/1_53_0/libs/pool/doc/html/boost_pool/pool/conventions.html) specifies that users can include #include This is incorrect; users must in fact include #include in order to get the required functionality." Luis G. Torres Boost 1.54.0 3336 utc offset calculated wrong date_time Boost 1.54.0 Boost 1.57.0 Bugs az_sw_dude new 2009-08-11T16:13:24Z 2014-01-19T11:31:50Z "Boost seems to invert the posix time zone specs or even worse to calculate them completely wrong: [http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html] states: ""If preceded by a '-', the timezone shall be east of the Prime Meridian; otherwise, it shall be west (which may be indicated by an optional preceding '+' )."" Using the following lines in a c++ program: {{{ time_zone_ptr myzone(new posix_time_zone(string(""CET-1CEST,M3.5.0,M10.5.0/3""))); // e.g. Europe/Berlin cout << ""Posix time string: "" << myzone->to_posix_string() << endl; local_date_time mylocaltime(date(2009,8,11), time_duration(17,0,0), myzone, true); cout << ""Wall clock: "" << mylocaltime.local_time() << endl; cout << ""Time in UTC: "" << mylocaltime.utc_time() << endl; }}} gives following output: [[BR]] Posix time string: CET-01CEST+01,M3.5.0/02:00,M10.5.0/03:00 [[BR]] Wall clock: 2009-Aug-11 17:00:00 [[BR]] Time in UTC: 2009-Aug-11 17:00:00 [[BR]] The system I used: Debian GNU/Linux squeeze/sid [[BR]] uname -a[[BR]] Linux fafner 2.6.28.7 #1 SMP Mon Mar 16 17:39:15 CET 2009 i686 GNU/Linux output from date:[[BR]] date -d ""2009-8-11 17:00 CEST ""[[BR]] Di 11. Aug 17:00:00 CEST 2009[[BR]] date -d ""2009-8-11 17:00 CEST "" -u[[BR]] Di 11. Aug 15:00:00 UTC 2009 Libraries (debian): libboost-date-time1.38.0 libboost-date-time1.38-dev libboost-date-time-dev The time zone spec ist taken from /usr/share/zoneinfo/CET on my system." silvan@… Boost 1.54.0 4186 "BOOST date_time:""time_resolution_traits"" undeclared or ambig error on IBM XL on AIX" date_time Boost 1.54.0 Boost 1.54.0 Bugs az_sw_dude new 2010-05-04T17:52:44Z 2013-02-19T17:00:29Z "Tests affected: interprocess/comp_doc_anonymous_mutexA interprocess/comp_doc_anonymous_mutexB interprocess/comp_doc_anonymous_semaphoreA interprocess/comp_doc_anonymous_semaphoreB interprocess/comp_doc_anonymous_upgradable_mutexA interprocess/comp_doc_anonymous_upgradable_mutexB interprocess/comp_doc_anonymous_conditionA interprocess/comp_doc_anonymous_conditionB The compile-time error on with IBM XL (vacpp) on AIX is occuring due to name collision between a macro name (v_type) found on the OS in /usr/include/sys/vnode.h and same named template argument found in the boost header boost/date_time/time_resolution_traits.hpp. Here is a reduced test that demonstrates the problem: t.C ========= // From /usr/include/sys/vnode.h enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VBAD, VFIFO, VMPC }; typedef enum vtype vtype_t; struct gnode { enum vtype gn_type; }; struct vnode { struct gnode *v_gnode; }; #define v_type v_gnode->gn_type template class time_resolution_traits { }; ============== Command: xlC -c t.C Result: ""t.C"", line 15.21: 1540-0063 (S) The text ""->"" is unexpected. Note that this problem is specific to AIX due to this macro used in AIX header. Linux or other operating systems do not appear to exhibit this problem. The solution is to provide a Boost patch file that renames template argument to another name in order to avoid name collision with the system files." ccambly@… Boost 1.54.0 8637 Warnings in boost/parameter/aux_/tagged_argument.hpp parameter Boost 1.54.0 Boost 1.54.0 Bugs Daniel Wallin new 2013-05-31T02:57:24Z 2013-06-03T18:01:43Z The boost/parameter/aux_/tagged_argument.hpp in boost 1.54.0-beta1 rc causes the compiler to emit warnings. This was fixed in r83985 and should be backported to the 1.54 branch. Jim Garrison Boost 1.54.0 8736 Beta1 tarball includes invalid path Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-06-27T01:55:19Z 2013-06-27T01:55:19Z "I tried downloading this a couple of times to verify. There appears to be an invalid path, something like ""/path/to/boost//"" in the archive. If you open it in a Windows system using 7-zip, for instance, you'll find a top-level folder """" followed by Sources, or something like that. The tar.bz2, which is probably preferred if only because it is more compact, does not have the same problem. Nor does the 7z, which is preferred also due to size." mwpowellhtx@… Boost 1.54.0 8762 Boost.Build engine build fails with MinGW toolset Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-07-02T12:35:53Z 2013-10-26T21:02:16Z "MinGW toolset and MSYS shell: {{{ $ cd boost_1_54_0 $ ./bootstrap.sh --with-toolset=mingw Building Boost.Build engine with toolset mingw... Failed to build Boost.Build build engine Consult 'bootstrap.log' for more details }}} bootstrap.log attached " josuegomes@… Boost 1.54.0 8766 is_iterator_category error iterator Boost 1.54.0 To Be Determined Bugs jeffrey.hellrung new 2013-07-02T18:02:39Z 2013-10-15T13:21:28Z "VC12 Preview {{{ 1> Unknown compiler version - please run the configure tests and report the results 1>c:\vc\include\boost\iterator\detail\facade_iterator_category.hpp(166): error C2039: 'assert_not_arg' : is not a member of 'boost::mpl' 1> c:\vc\include\boost\mpl\eval_if.hpp(41) : see reference to class template instantiation 'boost::detail::facade_iterator_category_impl' being compiled 1> with 1> [ 1> CategoryOrTraversal=boost::forward_traversal_tag 1> , ValueParam=std::basic_string,std::allocator> 1> , Reference=const std::basic_string,std::allocator> & 1> ] 1> c:\vc\include\boost\iterator\detail\facade_iterator_category.hpp(193) : see reference to class template instantiation 'boost::mpl::eval_if,boost::mpl::identity,boost::detail::facade_iterator_category_impl>' being compiled 1> with 1> [ 1> CategoryOrTraversal=boost::forward_traversal_tag 1> , ValueParam=std::basic_string,std::allocator> 1> , Reference=const std::basic_string,std::allocator> & 1> ] 1> c:\vc\include\boost\iterator\iterator_facade.hpp(104) : see reference to class template instantiation 'boost::detail::facade_iterator_category' being compiled 1> with 1> [ 1> CategoryOrTraversal=boost::forward_traversal_tag 1> , ValueParam=std::basic_string,std::allocator> 1> , Reference=const std::basic_string,std::allocator> & 1> ] 1> c:\vc\include\boost\iterator\iterator_facade.hpp(620) : see reference to class template instantiation 'boost::detail::iterator_facade_types' being compiled 1> with 1> [ 1> Value=std::basic_string,std::allocator> 1> , CategoryOrTraversal=boost::forward_traversal_tag 1> , Reference=const std::basic_string,std::allocator> & 1> , Difference=ptrdiff_t 1> ] 1> c:\vc\include\boost\token_iterator.hpp(40) : see reference to class template instantiation 'boost::iterator_facade,Type,boost::forward_traversal_tag,const Type &,ptrdiff_t>' being compiled 1> with 1> [ 1> TokenizerFunc=char_separator_type 1> , Iterator=std::_String_const_iterator>> 1> , Type=std::basic_string,std::allocator> 1> ] 1> c:\vc\include\boost\date_time\date_parsing.hpp(132) : see reference to class template instantiation 'boost::token_iterator' being compiled 1> with 1> [ 1> TokenizerFunc=char_separator_type 1> , Iterator=std::_String_const_iterator>> 1> , Type=std::basic_string,std::allocator> 1> ] 1> c:\vc\include\boost\date_time\gregorian\parsers.hpp(30) : see reference to function template instantiation 'date_type boost::date_time::parse_date(const std::string &,int)' being compiled 1> with 1> [ 1> date_type=boost::gregorian::date 1> ] }}}" olafvdspek@… Boost 1.54.0 8784 boost.asio.ssl.stream.set_verify_callback use custom verification callback, always succeed. asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-05T14:26:54Z 2013-09-26T07:25:52Z "boost.asio.ssl.stream.set_verify_callback use custom verification callback, always succeed. and in boost::asio::ssl::rfc2818_verification::operator() function, parameter preverified always 0." Jackarain Boost 1.54.0 8800 result_of.hpp:174: error: invalid use of incomplete type utility Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2013-07-08T22:37:31Z 2013-07-08T22:37:31Z "1. On OSX 10.8.4, invoke ""./b2 toolset=darwin -j 4"" 2. Build fails with: ./boost/utility/result_of.hpp:174: error: invalid use of incomplete type ‘struct boost::log::v2_mt_posix::expressions::aux::unary_function_terminal >::result > ()(boost::phoenix::vector2 > >, 0l> >*, const boost::log::v2_mt_posix::attribute_value_set&>&, const boost::phoenix::default_actions&>)>’ 3. According to ""l_r"" on the #boost IRC channel, he has also reproduced this issue on ""xLinux laptop 3.8.0-25-x86_64 x86_64 GNU/Linux, GCC 4.7.3"" 4. I have set severity to ""Showstopper"" because there is no known workaround and Boost cannot be built." cowwoc@… Boost 1.54.0 8803 Unused parameter issue parameter Boost 1.54.0 To Be Determined Bugs Daniel Wallin new 2013-07-09T11:36:57Z 2013-07-11T20:00:33Z "When I set the compiler to the highest warning level and treat warnings as errors, lines 123 and 129 of the file boost/parameter/aux_/tagged_argument.hpp causes compilation failures. " lcarreon@… Boost 1.54.0 8805 Getting error using Shell rule after upgrading to Ubuntu 12.04 Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-07-10T00:12:33Z 2014-04-01T02:30:39Z "I was happily doing development using bjam under the previous Ubuntu LTS release. I using package manager to upgrade to the 12.04 LTS release. Now my Jamfiles no longer work. example: SHELL ""mkdir -vp $(SOLUTION_ROOT)/log $(SOLUTION_ROOT)/conf"" ; used to work just fine. Now I get an error ""*** argument error * rule SHELL ( command : * ) * called with: ( ) * missing argument command"" I'm guessing that the previous bjam parsed the quote characters differently. I've tried various quoting schemes but can't get it to work. Any ideas/ " ccervo@… Boost 1.54.0 8816 Android: error: fatal error: sys/statvfs.h: No such file or directory filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-07-12T11:13:48Z 2013-07-12T11:13:48Z "Android doesn't have sys/statvfs.h. instead sys/vfs.h should be used. possible fix (libs/filesystem/src/operations.cpp): {{{ # if !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__ANDROID__) # include # define BOOST_STATVFS statvfs # define BOOST_STATVFS_F_FRSIZE vfs.f_frsize # else # ifdef __ANDROID__ # include # endif # ifdef __OpenBSD__ # include # endif # include # define BOOST_STATVFS statfs # define BOOST_STATVFS_F_FRSIZE static_cast(vfs.f_bsize) # endif }}} " mik01@… Boost 1.54.0 8820 Reduce debug symbols size spirit Boost 1.54.0 To Be Determined Bugs Joel de Guzman new 2013-07-14T18:08:47Z 2013-07-15T03:48:41Z "There is [http://thread.gmane.org/gmane.comp.lib.boost.devel/242660 this ] discussion on Boost developers mailing list concerning Boost.Log compiled binary sizes. The problem by a large degree is caused by Boost.Spirit generating lots of debug info in the compiled libraries. I came to this conclusion by analyzing the object file sizes of Boost.Log (I've presented the object sizes in [http://article.gmane.org/gmane.comp.lib.boost.devel/242699 this] post, and you can see that the most part if the libboost_log_setup-vc110-mt-gd-1_55.lib library is occupied by parsers). The parsers in question are implemented in libs/log/src/filter_parser.cpp and formatter_parser.cpp. I'm not sure if there's anything I can do on Boost.Log side to mitigate the problem, other than to just rewrite them without Boost.Spirit. However, this example and my other general experience with Boost.Spirit indicates that Boost.Spirit tends to generate lots of debug info even for parsers of moderate complexity (like the ones in Boost.Log). I would really like something to be done about this. " Andrey Semashev Boost 1.54.0 8822 issues compiling regex on SunOS 5.9 sparc hash Boost 1.54.0 To Be Determined Bugs Daniel James new 2013-07-15T11:19:39Z 2013-10-06T08:02:37Z "./b2 toolset=sun -d+2 address-model=64 threading=multi link=static runtime-link=static variant=debug regex ""CC"" +d -library=stlport4 -g -mt -erroff=%none -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_HAS_ICU=1 -I""."" -I""/usr/include"" -c -o ""bin.v2/libs/regex/build/sun/debug/address-model-64/link-static/runtime-link-static/stdlib-sun-stlport/threading-multi/cregex.o"" ""libs/regex/build/../src/cregex.cpp"" CC: Warning: Option -m64 passed to ld, if ld is invoked, ignored otherwise ""./boost/functional/hash/detail/hash_float.hpp"", line 99: Error: complex expression not allowed in dependent template argument expression. ""./boost/functional/hash/detail/hash_float.hpp"", line 113: Error: complex expression not allowed in dependent template argument expression. ""./boost/functional/hash/detail/hash_float.hpp"", line 126: Error: complex expression not allowed in dependent template argument expression. ""./boost/functional/hash/detail/hash_float.hpp"", line 139: Error: complex expression not allowed in dependent template argument expression. 4 Error(s) detected. Other files are also affected. Regards, Gert" Gert Grossmann Boost 1.54.0 8828 bug in boost_asio/example/cpp03/http/server3/server.cpp asio Boost 1.54.0 Boost 1.55.0 Bugs chris_kohlhoff new 2013-07-16T09:19:38Z 2013-09-07T20:06:32Z "please help check the doc/html/boost_asio/example/cpp03/http/server3/server.cpp I think there is some bug in line 56 and line 69. in line 56, ""&boost::asio::io_service::run"" is ambitious, because the there are two ""run()"" function in class ""io_service"" in line 69, it seems the parameter type is not correct, I can not compile this line. " lisendong@… Boost 1.54.0 8830 "fix spelling of ""polynomial"" in crc library and documentation" crc Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-07-16T14:45:43Z 2013-07-16T14:45:43Z "The word ""polynomial"" is incorrectly spelled ""polynominal"" in quite a number of places in both the code and documentation. This has the unhappy effect of forcing users of the library to misspell a word to use some aspects of the otherwise very useful code. A patch is attached that corrects all occurrences in library, test code and documentation." Ed Beroset Boost 1.54.0 8835 failed to use boost::asio::steady_timer w/ clang 3.3 asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-17T11:24:25Z 2013-07-17T11:35:38Z "boost::asio definitely has incorrect detection of availability for clang 3.3. despite the attached sample code compiled well, any attempt to use boost::asio::steady_timer (w/ defined -DBOOST_ASIO_DISABLE_BOOST_CHRONO (to force it to use std::chrono instead) leads to a bunch of errors... " i.zaufi@… Boost 1.54.0 8836 boost::property_tree and BOM property_tree Boost 1.54.0 To Be Determined Bugs Sebastian Redl new 2013-07-17T11:47:58Z 2013-07-17T11:47:58Z "boost::property_tree::ptree can't handle files with BOM (at least for UTF-8). {{{ #include #include #include #include int main() { try { boost::filesystem::path path(""helper.ini""); boost::property_tree::ptree pt; boost::property_tree::read_ini(path.string(), pt); const std::string foo = pt.get(""foo""); std::cout << foo << '\n'; } catch (const boost::property_tree::ini_parser_error& e) { std::cerr << ""An error occurred while reading config file: "" << e.what() << '\n'; return EXIT_FAILURE; } catch (const boost::property_tree::ptree_bad_data& e) { std::cerr << ""An error occurred while getting options from config file: "" << e.what() << '\n'; return EXIT_FAILURE; } catch (const boost::property_tree::ptree_bad_path& e) { std::cerr << ""An error occurred while getting options from config file: "" << e.what() << '\n'; return EXIT_FAILURE; } catch (...) { std::cerr << ""Unknown error \n""; return EXIT_FAILURE; } } }}} '''helper.ini''' foo=str '''Output''' An error occurred while getting options from config file: No such node (foo)" nikita.trophimov@… Boost 1.54.0 8841 Duplicated rules for mpi.so with MPI support when building both single and multi-threaded flavors mpi Boost 1.54.0 To Be Determined Bugs Matthias Troyer new 2013-07-18T06:19:23Z 2016-06-26T00:06:55Z "When building with all library variants including single and multi-threading as well as static and shared libraries, if ""--with-mpi"" is specified it will complain about duplicated rules for mpi.so. The build log is attached." Xiyue Deng Boost 1.54.0 8853 [tuple] GCC 4.8+ warns unused local typedef... tuple Boost 1.54.0 To Be Determined Bugs Joel de Guzman new 2013-07-18T19:12:38Z 2013-07-18T19:12:38Z "GCC 4.8+ warns unused local typedef... {{{ typedef ‘cons_element’ locally defined but not used [-Wunused-local-typedefs] }}} Proposed fix attached." Chris Stylianou Boost 1.54.0 8856 [date_time] GCC 4.8+ warns unused local typedef... date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-07-18T20:11:35Z 2014-03-12T16:46:08Z "GCC 4.8+ warns unused local typedef... {{{ posix_time_io.hpp:50 typedef ‘std_ptime_facet’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ posix_time_io.hpp:117 typedef ‘std_time_facet’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ posix_time_io.hpp:183 typedef ‘std_ptime_facet’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ local_time_io.hpp:39 typedef ‘std_time_facet’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ local_time_io.hpp:126 typedef ‘std_time_facet’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ date_parsing.hpp:116 typedef ‘year_type’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ date_parsing.hpp:163 typedef ‘year_type’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ string_convert.hpp:24 typedef ‘input_type’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ strings_from_facet.hpp:38 typedef ‘ostream_type’ locally defined but not used [-Wunused-local-typedefs] }}} {{{ strings_from_facet.hpp:89 typedef ‘ostream_type’ locally defined but not used [-Wunused-local-typedefs] }}} Proposed fix attached." Chris Stylianou Boost 1.54.0 8857 Compile error in boost range when trying to use boost string split algorithm Boost 1.54.0 To Be Determined Bugs Marshall Clow new 2013-07-18T22:26:23Z 2013-08-12T17:20:29Z "I am trying to replace some old string split code with the string split algorithm, but am getting compile errors. OS CentOs 6.3, Boost 1.53 and 1.54 gcc 4.8.1 without -std=c++ parameter. I have done an extensive search and tried multiple possible fixes and the error still occurs. Here is the error: In file included from /opt/boost_1_53/boost/range/concepts.hpp:21:0, from XXXX.C:37: /opt/boost_1_53/boost/range/begin.hpp: In instantiation of 'typename boost::range_iterator::type boost::range_detail::range_begin(C&) [with C = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]': /opt/boost_1_53/boost/range/begin.hpp:119:27: required from 'typename boost::range_iterator::type boost::range_adl_barrier::begin(const T&) [with T = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/iterator_range_core.hpp:56:64: required from 'static IteratorT boost::iterator_range_detail::iterator_range_impl::adl_begin(ForwardRange&) [with ForwardRange = const boost::sub_match<__gnu_cxx::__normal_iterator > >; IteratorT = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/iterator_range_core.hpp:198:45: required from 'boost::iterator_range::iterator_range(const Range&, boost::iterator_range_detail::const_range_tag) [with Range = boost::sub_match<__gnu_cxx::__normal_iterator > >; IteratorT = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/iterator_range_core.hpp:564:63: required from 'boost::iterator_range::type> boost::make_iterator_range(const ForwardRange&) [with ForwardRange = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/as_literal.hpp:93:50: required from 'boost::iterator_range::type> boost::range_detail::make_range(T&, long int) [with T = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/as_literal.hpp:109:74: required from 'boost::iterator_range::type> boost::as_literal(const Range&) [with Range = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/algorithm/string/iter_find.hpp:153:115: required from 'SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&, FinderT) [with SequenceSequenceT = std::vector >; RangeT = const boost::sub_match<__gnu_cxx::__normal_iterator > >; FinderT = boost::algorithm::detail::token_finderF >]' /opt/boost_1_53/boost/algorithm/string/split.hpp:149:69: required from 'SequenceSequenceT& boost::algorithm::split(SequenceSequenceT&, RangeT&, PredicateT, boost::algorithm::token_compress_mode_type) [with SequenceSequenceT = std::vector >; RangeT = const boost::sub_match<__gnu_cxx::__normal_iterator > >; PredicateT = boost::algorithm::detail::is_any_ofF]' XXXX.C:1287:60: required from here /opt/boost_1_53/boost/range/begin.hpp:49:24: error: 'const struct boost::sub_match<__gnu_cxx::__normal_iterator > >' has no member named 'begin' return c.begin(); ^ make[2]: Leaving directory `/for_blair/workspace/bluemax3/libcommon/src/common' In file included from /opt/boost_1_53/boost/range/concepts.hpp:22:0, from XXXX.C:37: /opt/boost_1_53/boost/range/end.hpp: In instantiation of 'typename boost::range_iterator::type boost::range_detail::range_end(C&) [with C = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]': /opt/boost_1_53/boost/range/end.hpp:113:25: required from 'typename boost::range_iterator::type boost::range_adl_barrier::end(const T&) [with T = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/iterator_range_core.hpp:62:62: required from 'static IteratorT boost::iterator_range_detail::iterator_range_impl::adl_end(ForwardRange&) [with ForwardRange = const boost::sub_match<__gnu_cxx::__normal_iterator > >; IteratorT = __gnu_cxx::__normal_iterator >]' make[1]: Leaving directory `/for_blair/workspace/bluemax3/libcommon/src' /opt/boost_1_53/boost/range/iterator_range_core.hpp:198:74: required from 'boost::iterator_range::iterator_range(const Range&, boost::iterator_range_detail::const_range_tag) [with Range = boost::sub_match<__gnu_cxx::__normal_iterator > >; IteratorT = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/iterator_range_core.hpp:564:63: required from 'boost::iterator_range::type> boost::make_iterator_range(const ForwardRange&) [with ForwardRange = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/as_literal.hpp:93:50: required from 'boost::iterator_range::type> boost::range_detail::make_range(T&, long int) [with T = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/range/as_literal.hpp:109:74: required from 'boost::iterator_range::type> boost::as_literal(const Range&) [with Range = boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]' /opt/boost_1_53/boost/algorithm/string/iter_find.hpp:153:115: required from 'SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&, FinderT) [with SequenceSequenceT = std::vector >; RangeT = const boost::sub_match<__gnu_cxx::__normal_iterator > >; FinderT = boost::algorithm::detail::token_finderF >]' /opt/boost_1_53/boost/algorithm/string/split.hpp:149:69: required from 'SequenceSequenceT& boost::algorithm::split(SequenceSequenceT&, RangeT&, PredicateT, boost::algorithm::token_compress_mode_type) [with SequenceSequenceT = std::vector >; RangeT = const boost::sub_match<__gnu_cxx::__normal_iterator > >; PredicateT = boost::algorithm::detail::is_any_ofF]' XXXX.C:1287:60: required from here /opt/boost_1_53/boost/range/end.hpp:50:26: error: 'const struct boost::sub_match<__gnu_cxx::__normal_iterator > >' has no member named 'end' return c.end(); ^ In file included from /opt/boost_1_53/boost/range/concepts.hpp:21:0, from XXXX.C:37: /opt/boost_1_53/boost/range/begin.hpp: In function 'typename boost::range_iterator::type boost::range_detail::range_begin(C&) [with C = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]': /opt/boost_1_53/boost/range/begin.hpp:50:5: warning: control reaches end of non-void function [-Wreturn-type] } ^ In file included from /opt/boost_1_53/boost/range/concepts.hpp:22:0, from XXXX.C:37: /opt/boost_1_53/boost/range/end.hpp: In function 'typename boost::range_iterator::type boost::range_detail::range_end(C&) [with C = const boost::sub_match<__gnu_cxx::__normal_iterator > >; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator >]': /opt/boost_1_53/boost/range/end.hpp:51:9: warning: control reaches end of non-void function [-Wreturn-type] } ^" Blair Jennings Boost 1.54.0 8871 [numeric] GCC 4.8+ warns about unused local typedef numeric Boost 1.54.0 To Be Determined Bugs Douglas Gregor new 2013-07-22T15:06:20Z 2013-07-22T15:06:20Z As a side effect of running Boost.Math test suite, I found out that GCC warned about several unused typedefs. None of these appear to serve a purpose, so I propose to remove them. Petr Machata Boost 1.54.0 8884 boost asio in posix_event: lock release before condition signaled asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-23T09:47:28Z 2014-06-30T14:34:51Z "valgrind drd warns about a possible race condition ... (possible patch:) Index: boost/asio/detail/posix_event.hpp =================================================================== --- boost/asio/detail/posix_event.hpp (Revision 85130) +++ boost/asio/detail/posix_event.hpp (Arbeitskopie) @@ -58,8 +58,8 @@ { BOOST_ASIO_ASSERT(lock.locked()); signalled_ = true; + ::pthread_cond_signal(&cond_); // Ignore EINVAL. lock.unlock(); - ::pthread_cond_signal(&cond_); // Ignore EINVAL. } // Reset the event. " carsten.becker@… Boost 1.54.0 8885 "boost asio epoll reactor method ""set_ready_events"" not protected by lock" asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-23T09:59:10Z 2013-07-23T10:30:39Z "Suggested patch: Index: boost/asio/detail/epoll_reactor.hpp =================================================================== --- boost/asio/detail/epoll_reactor.hpp (Revision 85130) +++ boost/asio/detail/epoll_reactor.hpp (Arbeitskopie) @@ -64,7 +64,12 @@ bool shutdown_; BOOST_ASIO_DECL descriptor_state(); - void set_ready_events(uint32_t events) { task_result_ = events; } + + void set_ready_events(uint32_t events) { + mutex::scoped_lock lock(mutex_); + task_result_ = events; + } + BOOST_ASIO_DECL operation* perform_io(uint32_t events); BOOST_ASIO_DECL static void do_complete( io_service_impl* owner, operation* base, " carsten.becker@… Boost 1.54.0 8886 boost::posix_time::time_from_string has no parameter for ymd order date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-07-23T12:20:16Z 2013-07-23T12:20:16Z "Function boost::posix_time::time_from_string(const std::string& s) calls parse_date and parse_delimited_time_duration for two parts of datetime string. Function parse_date(const std::string& s, int order_spec = ymd_order_iso) has parameter for ymd order, but time_from_string hasn't. Therefore impossible to parse dates like ""11.09.2001 08:46:26""." anonymous Boost 1.54.0 8888 [python] GCC 4.8+ warns about unused local typedef python USE GITHUB Boost 1.54.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-07-23T14:31:41Z 2015-04-29T11:34:30Z "During the build of Boost, GCC warns about several unused typedefs in Boost.Python. There are many of these that seem like they should be converted to BOOST_STATIC_ASSERT, like this one for example. {{{ ./boost/python/cast.hpp:73:20: warning: typedef 'must_be_a_complete_type' locally defined but not used [-Wunused-local-typedefs] typedef char must_be_a_complete_type[sizeof(T)]; }}} There's at least one other instance of this problem that I know of. Shall I prepare a patch for this, or is this undesirable for some reason? In the mean time, I'm attaching a patch for another one." Petr Machata Boost 1.54.0 8889 Boost.Build MSVC fix building PDBs build Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2013-07-23T15:03:50Z 2013-07-23T15:03:50Z "Currently emitting debug information to PDBs works with a rather limited set of conditions only. Most importantly, static libs can't be compiled if debug-store=database is requested. The attached patch rectifies this deficiency. The hardest part was to get around problems with precompiled headers. I got it eventually. What's still missing: * port the changes over to msvc.py. Python is completely out of my knowledge domain so I decided to stay away from this file. * No matter what I tried, I found no way to move the generated PDBs from the build directories to the output directory alongside the libraries. " Daniela Engert Boost 1.54.0 8913 boost/asio/detail/posix_static_mutex.hpp: Ignores all failures from pthread_* functions asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T04:25:37Z 2013-07-25T04:25:37Z "boost/asio/detail/posix_static_mutex.hpp ignores nearly all failures from pthread_* functions. Functions include pthread_mutex_lock and pthread_mutex_unlock. A lock failure is usually a bad thing, and I can't come up with scenarios where a silent failure is desired. It will make a bad problem worse by corrupting data or terminating the program. At minimum (as a user), I would expect for Boost to use BOOST_ASSERT in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds. Perhaps it would be a good idea to use boost/thread/pthread/mutex.hpp. It appears to be more mature and have a bit more stability. In addition, it throws lock exceptions where appropriate." Jeffrey Walton Boost 1.54.0 8918 boost/asio/detail/impl/win_iocp_io_service.ipp: Ignores failures from WaitForSingleObject asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T05:33:06Z 2013-07-25T05:33:06Z "boost/asio/detail/impl/win_iocp_io_service.ipp ignores failures from WaitForSingleObject. There's not much point in looping if its just going to fail again. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds." Jeffrey Walton Boost 1.54.0 8919 boost/asio/detail/impl/win_static_mutex.ipp: Ignores failures from WaitForSingleObject asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T05:38:09Z 2013-07-25T05:38:09Z "boost/asio/detail/impl/win_static_mutex.ipp ignores failures from WaitForSingleObject. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds." Jeffrey Walton Boost 1.54.0 8920 boost/asio/detail/impl/win_thread.ipp: Ignores failures from WaitForSingleObject and WaitForMultipleObjects asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T05:40:28Z 2013-07-25T05:40:28Z "boost/asio/detail/impl/win_thread.ipp ignores failures from WaitForSingleObject and WaitForMultipleObjects. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds." Jeffrey Walton Boost 1.54.0 8921 boost/asio/detail/win_event.hpp: Ignores failures from WaitForSingleObject asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T05:42:53Z 2013-07-25T05:42:53Z "boost/asio/detail/win_event.hpp ignores failures from WaitForSingleObject. There's not much point in locking if the wait failed since your not in an expected state. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds." Jeffrey Walton Boost 1.54.0 8922 boost/asio/detail/wince_thread.hpp: Ignores failures from WaitForSingleObject asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-25T05:44:10Z 2013-07-25T05:44:10Z "boost/asio/detail/wince_thread.hpp ignores failures from WaitForSingleObject. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds. " Jeffrey Walton Boost 1.54.0 8923 boost/detail/lightweight_thread.hpp: Ignores failures from WaitForSingleObject smart_ptr Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-07-25T05:46:26Z 2014-09-16T05:46:03Z "boost/detail/lightweight_thread.hpp ignores failures from WaitForSingleObject. There's not much point in closing the handle if the wait failed due to ERROR_INVALID_HANDLE. At minimum (as a user), I would expect Boost to use BOOST_ASSERT with an appropriate exception in debugging and diagnostic builds; and BOOST_VERIFY with an appropriate exception for release or production builds. " Jeffrey Walton Boost 1.54.0 8928 Build failed boost 1.54 on Mac with zlib source (-sZLIB_SOURCE) with clang and c++11 Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-07-25T15:21:28Z 2013-07-25T15:25:17Z "build fail where compile zlib source in build.v2/standalone/zlib. It is because cxxflags are provided even if compile c source code by clang++ -x c. {{{ ""clang++"" -x c -O3 -fPIC -std=c++11 -stdlib=libc++ -O3 -finline-functions -Wno-inline -Wall -DNDEBUG -I""/opt/work/zlib-1.2.8"" -c -o ""bin.v2/standalone/zlib/clang-darwin-4.2.1/release/link-static/threading-multi/adler32.o"" ""/opt/work/zlib-1.2.8/adler32.c"" error: invalid argument '-std=c++11' not allowed with 'C/ObjC' }}} {{{ ./b2 -d2 -sZLIB_SOURCE=/opt/work/zlib-1.2.8 link=shared,static toolset=clang cxxflags=-std=c++11 cxxflags=-stdlib=libc++ cxxflags=-fPIC cxxflags=""-arch x86_64"" linkflags=-stdlib=libc++ linkflags=-headerpad_max_install_names linkflags=""-arch x86_64"" }}} {{{ Mac OS X 10.8.4 % clang --version Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.4.0 Thread model: posix }}}" Tetsuya Hayashi Boost 1.54.0 8934 b2 : failed to write output file build Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2013-07-28T12:06:27Z 2014-03-13T00:50:17Z "Hello, Executing b2.exe within cmd.exe or powershell : and Building boost_1_54_0 with : b2 --debug-building --prefix=%USERPROFILE%\pkg\indie\boost address-model=64 --exec-prefix=%USERPROFILE%\programs\boost --libdir=%USERPROFILE%\pkg\lib --includedir=%USERPROFILE%\pkg\include --build-type=complete --build-dir=..\tmp pch=off debug-symbols=on debug-store=database install 2>&1 >> ..\boostbuild.txt results in an error : failed to write output file '..\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'! My initial thoughts path name is it approaching the MAX_PATH, so I tried redirecting echo to the name file within cmd.exe; it resulted in The system cannot find the path specified. In powershell, echo redirection was successful but the build still failed at the same point. The full path length is 246 : python -c ""print(len(r'C:\Users\Arkhe_2\pkg\src\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'))"" File system is NTFS located on a usb interconnected hard drive. Thanks for the great work. " jeffrey.beu.uz8yz6yl@… Boost 1.54.0 8937 boost::asio::ip::tcp 5000ms stall asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-07-29T17:50:16Z 2013-09-24T18:18:06Z "Under certain circumstances, the boost::asio::ip::tcp module exhibits a, with a bit of patience, reproducible behavior of every now and then stalling for quite exactly 5000ms. On May 02, 2011, a discussion about this was started by Torben Wiggerich on the Boost Mailing List: http://boost.2283326.n4.nabble.com/asio-Randomly-having-problems-reading-from-the-socket-td3490016.html On May 09, 2011, a traffic dump was requested by Cliff Green. I ran into the problem some time later and posted a traffic dump on Apr 02, 2012. No one has replied since. Today, I tested whether the issue still persists with Boost 1.49.0 Boost 1.53.0 Boost 1.54.0 and it still occurs with all of them. For the CPU I used an Intel Core2 Duo P7350 @ 2.0 GHz, because this bug is only reproducible in a reasonable time frame (under 1 hour) on a sufficiently slow computer. Back then I used an Athlon X2 4400+. An i7 will be too fast to show this behavior reliably, or in a reasonable amount of time, or maybe even ever. The operating system used was Windows 7 x64 SP1. The compiler used was Visual Studio 2008 SP1 x86 + all updates from Windows Update. I attached a Repro Case based on the code posted by Torben in the Thread. With this, on the Core2Duo I used, the behavior was repeatedly observable in under an hour of Server + Client running." Florian George Boost 1.54.0 8946 filesystem::directory_iterator returns incorrect listing filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-07-31T09:07:41Z 2013-08-07T08:26:09Z "Both '''directory_iterator''' and '''recursive_directory_iterator''' do not work correctly under linux with g++-4.7.3 : one item, assumed to be the last one, is not listed. Simple code to reproduce the problem : {{{ #include #include #include using namespace std; namespace bfs = boost::filesystem; int main () { system(""mkdir mydir""); system(""touch mydir/file1""); system(""touch mydir/file2""); bfs::directory_iterator bfs_dir_i_end; bfs::directory_iterator bfs_dir_i(""mydir/.""); while (++bfs_dir_i != bfs_dir_i_end) { bfs::file_type type = (*bfs_dir_i).status().type(); bfs::path source = (*bfs_dir_i).path(); cout << source << "" "" << type << endl; } } }}} Build with : {{{ g++-4.7.3 -I/usr/include/crypto++ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 show_bug_directory_iterator.cpp g++-4.7.3 -lboost_filesystem -o show_bug_directory_iterator show_bug_directory_iterator.o }}} Code result : {{{ $ ./show_bug_directory_iterator ""mydir/./file1"" 2 }}} Should be : {{{ $ ./show_bug_directory_iterator ""mydir/./file1"" 2 ""mydir/./file2"" 2 }}} Shell result : {{{ $ ls -lR . .: total 1620 drwxr-xr-x 2 alain alain 4096 31 juil. 10:48 mydir -rwxr-xr-x 1 alain alain 639766 31 juil. 10:48 show_bug_directory_iterator -rw-r--r-- 1 alain alain 497 31 juil. 10:44 show_bug_directory_iterator.cpp -rw-r--r-- 1 alain alain 1006376 31 juil. 10:48 show_bug_directory_iterator.o ./mydir: total 0 -rw-r--r-- 1 alain alain 0 31 juil. 10:48 file1 -rw-r--r-- 1 alain alain 0 31 juil. 10:48 file2 }}} Notes : 1) Not tested under other gcc versions. 2) Tested with same results on Boost 1.52.0 and 1.53.0 3) suspected regression, cf [https://svn.boost.org/trac/boost/ticket/257]" l.alebarde@… Boost 1.54.0 8948 iostreams::filtering_stream::sync does not exist iostreams Boost 1.54.0 To Be Determined Bugs Jonathan Turkanis new 2013-07-31T17:17:00Z 2013-08-03T16:30:39Z "The documentation here: http://www.boost.org/doc/libs/1_54_0/libs/iostreams/doc/classes/filtering_stream.html#sync claims it should exist; however, the attached code shows it only exists for filtering_stream. This missing member function was mentioned in another ticket: https://svn.boost.org/trac/boost/ticket/4590 but that one did not request the documentation be changed." cppljevans Boost 1.54.0 8951 Duplicate name of actual target: libboost_exception-mgw47-d-1_54.a Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-08-01T19:24:43Z 2013-08-01T20:36:55Z "Hi, I'm trying to build the boost library and I always get the error mentioned in the title. First, I tried to build it with the default toolset which was Visual Studio and it worked but I cannot make it work with mingw gcc on Windows. I've followed the instructions on page http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#install-boost-build. Thanks" houdelou@… Boost 1.54.0 8952 numeric::interval::nth_root generates empty interval interval Boost 1.54.0 To Be Determined Bugs Boris Gubenko new 2013-08-01T23:03:08Z 2013-08-01T23:03:08Z "The attached code generates an empty interval when compiling to a 32 bits binary (i.e. passing the ""-m32"" flag to gcc) on a 64 bit machine (running Mac OS X). It works correctly when compiled to a 64 bits binary (i.e. omitting -m32). " marco.v.correia@… Boost 1.54.0 8954 clang static analyser undefined value in boost/libs/filesystem/src/unique_path.cpp filesystem Boost 1.54.0 Boost 1.55.0 Bugs Beman Dawes new 2013-08-01T23:31:21Z 2014-07-28T10:23:18Z "Assigned value is garbage or undefined at line 131. Please https://ci.nedprod.com/job/Boost.AFIO%20Static%20Analysis%20Pre-Check/112/clangScanBuildBugs/? for more detail." Niall Douglas Boost 1.54.0 8962 adjacency_list doesn't work with hash_setS graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2013-08-04T00:44:16Z 2013-10-02T19:15:22Z "When compiling under Clang (3.3 final), the following code results in a compile error due to template lookup failure. It compiles cleanly under G++ 4.8. Replacing hash_setS with setS allows the code to compile. {{{ #include #include int main(int argc, char* argv[]) { typedef boost::adjacency_list undirectedGraphT; undirectedGraphT G; boost::add_edge(1, 2, G); typedef boost::graph_traits ::edge_descriptor Edge; Edge e; bool hasEdge{false}; std::tie(e, hasEdge) = boost::edge(1, 2, G); std::cout << (hasEdge ? ""did "" : ""did not "") << ""find edge\n""; } }}}" Rob Patro Boost 1.54.0 8982 More -Wunused-local-typedef warnings when building Boost 1.54.0 with gcc 4.8.1 xpressive Boost 1.54.0 To Be Determined Bugs Eric Niebler new 2013-08-08T22:30:56Z 2013-08-08T22:30:56Z "These are the unused-local-typedef warnings specific to Boost.Xpressive: ./boost/xpressive/regex_algorithms.hpp:306:57: warning: typedef ‘char_type’ locally defined but not used [-Wunused-local-typedefs] typedef typename iterator_value::type char_type; ./boost/xpressive/detail/dynamic/parser.hpp:331:53: warning: typedef ‘char_type’ locally defined but not used [-Wunused-local-typedefs] typedef typename iterator_value::type char_type; " lcarreon@… Boost 1.54.0 8985 More -Wunused-local-typedef warnings when building Boost 1.54.0 with gcc 4.8.1 python USE GITHUB Boost 1.54.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2013-08-08T23:10:20Z 2013-08-08T23:10:20Z "These are the unused-local-typedef warnings specific to Boost.Python: ./boost/python/cast.hpp:73:20: warning: typedef ‘must_be_a_complete_type’ locally defined but not used [-Wunused-local-typedefs] typedef char must_be_a_complete_type[sizeof(T)]; ./boost/python/object/pickle_support.hpp:110:31: warning: typedef ‘error_type’ locally defined but not used [-Wunused-local-typedefs] Class_>::error_type error_type; ./boost/python/make_function.hpp:58:32: warning: typedef ‘assertion’ locally defined but not used [-Wunused-local-typedefs] >::too_many_keywords assertion; " lcarreon@… Boost 1.54.0 9002 boots::date_time::from_iso_string() accepts invalid time mark date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-08-16T08:03:40Z 2013-08-16T08:03:40Z "Both from_iso_string() and time_from_string() allow time > 23:59:59, e.g. they accept ""2013-08-16 26:01:01"" and do not throw. I find that is very strange and confusing, and that also breaks ISO 8601. I see that after parsing the rest of string to time_duration you do not check it to be in valid range [ 0, 24:00:00 ), may be you should? Thank you" Alexey Pavlyutkin Boost 1.54.0 9004 Minor corrections for boost.program_options documentation program_options Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2013-08-16T11:40:32Z 2013-08-16T11:40:32Z "Reading the library documentation I noted a few issues. http://www.boost.org/doc/libs/1_54_0/doc/html/program_options/overview.html == Section ""Syntactic Information"" == Following the code snippet, the text describes four parameters. However the second option (""compression"") is described as ""the first option"". Fixed text: ""For the second option, the user must specify a value, using a single token."" == Section: Description formatting == Current text: ""compute the indentation for options's description"" Fixed text: ""compute the indentation for option's description"" Current text: ""Each of the paragraph is output"" Fixed text: ""Each of the paragraphs are output"" or ""Each paragraph is output"" Current text: ""Only one tabulator per paragraph is allowed, otherwisee an exception"" Fixed text: ""Only one tabulator per paragraph is allowed, otherwise an exception""" pfee@… Boost 1.54.0 9006 read_xml segfaults if run from boost::asio::spawn property_tree Boost 1.54.0 To Be Determined Bugs Sebastian Redl new 2013-08-16T14:11:29Z 2013-08-16T14:11:29Z "I've noticed that if read_xml is run through a boost::asio::spawn then read_xml encounters a segmentation violation. {{{ #include #include #include #include #include #include #include void read() { std::cout<<""starting read()""< )phi""; std::stringstream ss(std::move(xml)); boost::property_tree::ptree pt; boost::property_tree::read_xml(ss, pt); std::cout<<""ending read()""< Boost 1.54.0 9017 Support for std::numeric_traits rational Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-08-20T10:47:48Z 2013-09-05T00:03:21Z "Although `boost::rational` uses `std::numeric_limits` in its implementation, it does not provide its own (partial) specialization of the standard class template. This means that generic numeric code cannot use `rational` in contexts that use the assistance of `numeric_limits`. This has been brought to my attention by Michael Olea in his message to the Users' list." Daryle Walker Boost 1.54.0 9018 No cross-version constructor rational Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-08-20T11:09:39Z 2013-08-27T10:35:27Z "I was writing a numeric class template, and it has constructor templates for cross-version conversion. When I tested with two `boost::rational` instantiations as the component types, the code calls `static_cast` at the component level, which fails since we never defined that between `rational` instantiations. (There's the `boost::rational_cast` function template, but that doesn't help in generic code.) Let's fix that. We could be fancy and add a non-explicit constructor template for when the component types are implicitly convertible, and an explicit version otherwise, but that would be rude to add C++11 features to a class that's otherwise C++98. Maybe we'll add it someday.... " Daryle Walker Boost 1.54.0 9021 Cannot export boost::iostreams::source implementation on MSVC iostreams Boost 1.54.0 To Be Determined Bugs Jonathan Turkanis new 2013-08-20T20:03:29Z 2013-08-20T20:03:29Z "The following fails on MSVC 10 (VS2010) and MSVC 11 (VS2012) at least: #include class __declspec(dllexport) mystream : public boost::iostreams::source {}; with the error: error C2338: (is_convertible::value) in concepts.hpp line 47. The same think happens with a sink. Are custom sources and sinks not meant to be exported from a library?" mathstuf@… Boost 1.54.0 9033 Resource Leak in boost::filesystem in operation.cpp at resize_file_api() (Windows) filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-08-22T10:48:48Z 2014-08-08T06:48:05Z "The function resize_file_api() in operations.cpp can lead to a resource leak. The responsible part of code is the following: {{{ return handle != INVALID_HANDLE_VALUE && ::SetFilePointerEx(handle, sz, 0, FILE_BEGIN) && ::SetEndOfFile(handle) && ::CloseHandle(handle); }}} If SetFilePointerEx() or SetEndOfFile() fail, the handle will not be closed." anonymous Boost 1.54.0 9034 Timezone (%Q) is ignored in time_input_facet / local_time_input_facet date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-08-22T12:19:17Z 2013-08-22T12:19:17Z "I'm trying to parse an extended ISO 8601 date-time string to ptime or local_time using the following code: {{{ boost::local_time::wlocal_time_input_facet *inputFacet = new boost::local_time::wlocal_time_input_facet(); inputFacet->set_iso_extended_format(); std::wstringstream ss; ss.imbue(std::locale(ss.getloc(), inputFacet)); ss.str(inputString); boost::local_time::local_date_time time(boost::local_time::not_a_date_time); ss >> time; }}} This works for ""2013-08-20T17:14:21Z"" or ""2013-08-20T17:14:21"", however it doesn't work as soon as I add a timezone to it, e.g. ""2013-08-20T19:14:21+02"" or ""2013-08-20T19:14:21+02:00"". As far as I can tell the error is because the timezone (%Q) is completely ignored in time_facet.hpp." Maurice Gilden Boost 1.54.0 9038 [pool] Test cases need to link with boost_system DSO on Linux pool Boost 1.54.0 To Be Determined Bugs Chris Newbold new 2013-08-22T21:19:48Z 2013-08-22T21:19:48Z "Currently running the test suite for Boost.Pool gives me messages like the following: {{{ /home/petr/rpmbuild/BUILD/boost_1_53_0/tests-out/boost/bin.v2/libs/pool/test/test_simple_seg_storage.test/gcc-4.8.1/debug/test_simple_seg_storage.o: In function `__static_initialization_and_destruction_0': /home/petr/rpmbuild/BUILD/boost_1_53_0/libs/pool/test/../../../boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()' /home/petr/rpmbuild/BUILD/boost_1_53_0/libs/pool/test/../../../boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()' /home/petr/rpmbuild/BUILD/boost_1_53_0/libs/pool/test/../../../boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()' }}} I'm not sure whether Boost.Pool uses Boost.System directly, but on Linux, linking with Boost.System DSO is commonly needed also when one uses Boost.Thread header files. I'm attaching a patch that fixes the obvious cases. Unfortunately I don't know enough Jam magic to fix the valgrind invocations as well." Petr Machata Boost 1.54.0 9039 Boost.Bimap documentation misprint bimap Boost 1.54.0 To Be Determined Bugs Matias Capeletto new 2013-08-23T12:38:00Z 2013-08-23T12:38:00Z "http://www.boost.org/doc/libs/1_54_0/libs/bimap/doc/html/boost_bimap/the_tutorial/discovering_the_bimap_framework.html#boost_bimap.the_tutorial.discovering_the_bimap_framework.bimap_mapping_framework I suppose there is a misprint in '''used''' word. Current: You have to '''used''' references to views, and not directly views object. Views cannot be constructed as separate objects from the container they belong to, so the following: Suggested: You have to '''use''' references to views, and not directly views object. Views cannot be constructed as separate objects from the container they belong to, so the following: " sarum9in@… Boost 1.54.0 9043 Boost serialization version does not work on Windows serialization Boost 1.54.0 To Be Determined Bugs Robert Ramey reopened 2013-08-24T14:30:18Z 2014-02-03T22:43:17Z "Have obtained latest version of boost and tried attached demo.cpp. I noticed that the output did not store or restore the driver name. This behaviour is the same as in the supplied example/demofile.txt and example/demo_output.txt which leads me to believe that this is not due to my system configuration. In VS2010 when I hover over BOOST_CLASS_VERSION it gives an error: ERROR: version is not a template but it appears to compile without error or a warning related to this. It appears the macro for defining versions of a class is not working, and so no classes are saving any data except for data associated with version 0, and also no data from any version other than zero will be read back in to any class either. I have compiled from source on ubuntu and my output is correct, both saving and loading driver names." richard.stutt@… Boost 1.54.0 9044 Enable constexpr for applicable operators. operators Boost 1.54.0 To Be Determined Bugs Daniel Frey new 2013-08-25T10:25:39Z 2013-08-25T10:25:39Z Some operators, like the ones for comparison & equality, generally don't require mutating operations for their work. That means those functions can be `constexpr` if they use a literal operand type and the base operators are themselves `constexpr`. Daryle Walker Boost 1.54.0 9051 jam build system refuses to work on windows, won't build on mingw-w64 Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-08-26T18:30:09Z 2014-04-05T05:48:35Z "- batch files don't run for mingw-w64, they are only for MSVC++. - no Makefiles - Jam build system refuses to run on windows, the file extension is unrecognized, and no exe is provided for it to run like was previously the case. - windows 7 64-bit and mingw-w64+MSYS (gcc) is my platform. - I would give you the URL for the compilers, but this bug tracking system rejects them as spam, and there are numerous there, you want personal rubenvb 4.8 stdthread experimental. the x86_64 on the far left is the target processor, and the win32 or win64 on the right is the host (what you are running) " jmichae3@… Boost 1.54.0 9055 spin_condition.notify()hangs if communication peer crashes interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga new 2013-08-27T16:53:51Z 2013-08-27T16:53:51Z "When using interprocess_condition for signalling availability of new data in shared memory the call to notify_one() or notify_all() hangs forever if the communication peer terminates ungracefully. This happens because spin_condition.notify() calls m_enter_mut.lock(). A possible solution that we apply in our project is to provide notify methods with a timeout argument and a boolean return value that call m_enter_mut.timed_wait(abs_time). The return value can then be handled accordingly. " stepan.seycek@… Boost 1.54.0 9056 empty_ptree missing from boost property_tree Boost 1.54.0 To Be Determined Bugs Sebastian Redl new 2013-08-28T02:47:31Z 2013-08-28T02:47:31Z The empty_ptree method is mentioned at http://www.boost.org/doc/libs/1_51_0/doc/html/boost/property_tree/basic_ptree.html and http://www.boost.org/doc/libs/1_46_1/libs/property_tree/examples/empty_ptree_trick.cpp, but it doesn't appear to actually exist in boost. Presumably this should be fixed. atomic.quark@… Boost 1.54.0 9059 Boost.Asio detail/impl/win_static_mutex leaks a CRITICAL_SECTION asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff reopened 2013-08-28T12:24:46Z 2016-07-30T10:16:56Z "A CRITICAL_SECTION is not some POD type. It needs to be freed using DeleteCriticalSection or it will leak resources. This leak has been found using Microsoft's Application Verifier." segev208@… Boost 1.54.0 9067 rational::assign doesn't even have the basic guarantee rational Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-08-30T04:00:51Z 2013-08-30T13:18:38Z "The current implementation of the `assign` member function assigns the new components before normalization checks. Normalization throws if the components are too violating to fix, but the object has already been changed and the old values have been lost. Worse, if the object was created outside of the current stack frame, it will survive the exception in a state still violating its invariant! " Daryle Walker Boost 1.54.0 9075 Devision by zero in boost/date_time/int_adapter.hpp date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-09-02T09:20:08Z 2013-10-15T18:42:48Z "line 347 {{{ #!cpp 339 /*! Provided for cases when automatic conversion from 340 * 'int' to 'int_adapter' causes incorrect results. */ 341 int_adapter operator/(const int rhs) const 342 { 343 if(is_special() && rhs != 0) 344 { 345 return mult_div_specials(rhs); 346 } 347 return int_adapter(value_ / rhs); 348 } }}} rhs is not checked if is_special() returns false." Alexander Drichel Boost 1.54.0 9084 boost::asio::ip::address::is_loopback() on mapped ip4 127.0.0.1 asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-09-06T10:28:46Z 2016-07-22T17:31:29Z "boost::asio::ip::address_vs::is_loopback() returns false on the address '::ffff:127.0.0.1'. Maybe this is the correct behavior, but it was certainly unexpected to me. (the ip4 address '127.0.0.1' maps to '::ffff:127.0.0.1'). " tmoers Boost 1.54.0 9088 I/O Exception state & status savers may cause std::terminate in C++11 io Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-09-07T13:09:13Z 2016-10-27T19:54:38Z "The `boost::io::basic_ios_iostate_saver` and `boost::io::basic_ios_exception_saver` class templates in file ""boost/io/ios_state.hpp"" alter the I/O exception state and trigger-mask, respectively, in their constructors and destructors. When a change in either makes the two statuses have a non-zero result when combined with bitwise-and, an exception is thrown. A potentially throwing destructor is problematic enough, but C++11 adds a new source of trouble. C++11 declares all destructors with no exception specification to be `noexcept` by default, which makes all imported pre-C++11 types with a throwing destructor to call `std::terminate` if they throw. The (immediate) fix would be to add a `noexcept(false)` specification to those destructors when used in C++11 mode. " Daryle Walker Boost 1.54.0 9089 missing locale in strings_from_facet.hpp date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-09-07T17:07:14Z 2014-03-15T16:09:13Z "see my example: {{{ std::locale::global(std::locale("""")); boost::posix_time::ptime t; std::stringstream ss; std::string s = ""Sat, 07-Sep-43 10:40:59 GMT""; ss.str(s); boost::posix_time::time_input_facet* rfc850_date_workarround2 = new boost::posix_time::time_input_facet(""%a, %d-%b-%y %H:%M:%S GMT""); ss.imbue(std::locale(std::locale::classic(), rfc850_date_workarround2)); ss >> t; if (t != boost::posix_time::not_a_date_time) { std::cout << ss.str() << std::endl; } }}} I expected the output: {{{ 2043-Sep-07 10:40:59 }}} but in fact no output... " Jackarain Boost 1.54.0 9097 directory_iterator crash with intel release builds on windows filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-09-10T10:11:46Z 2013-09-10T12:14:55Z "{{{ #include int main() { boost::filesystem::directory_iterator i1(""C:\\""); boost::filesystem::directory_iterator i2(""C:\\Windows""); } }}} Crashes in Intel (12.1 included in Composer XE 2011 SP1) release builds. Construction of i1 works but construction of i2 gives: ''Exception at 0x77a0320e, code: 0xc0000005: read access violation at: 0x0, flags=0x0 (first chance)'' The crash (according to the debugger) happens in operations.cpp:2150. This used to work with Boost 1.48.0 and also isn't a problem with Debug or MSVC10 builds." Nils Gladitz Boost 1.54.0 9102 Various Boost header files define variables with internal linkage, which results in unnecessary code bloat system Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-09-11T09:39:06Z 2013-09-17T21:06:03Z "Some Boost headers define variables with internal linkage. For example, in `boost/system/error_code.hpp`: {{{ static const error_category & posix_category = generic_category(); static const error_category & errno_ecat = generic_category(); static const error_category & native_ecat = system_category(); }}} In `boost/asio/error.hpp`: {{{ static const boost::system::error_category& system_category = boost::asio::error::get_system_category(); static const boost::system::error_category& netdb_category = boost::asio::error::get_netdb_category(); static const boost::system::error_category& addrinfo_category = boost::asio::error::get_addrinfo_category(); static const boost::system::error_category& misc_category = boost::asio::error::get_misc_category(); }}} Because of this, every translation unit that includes these headers results in a separate instance of each of these variables in the resulting executable file. Because these variables have non-constant initializers, not only they are not eliminated during linking, even if not used, but also each instance of such variable results in a call to a initialization function during program startup. I think that merely including a Boost header, without using anything from it, should not result in any extra code remaining in the resulting executable - especially not if each translation unit results in a separate copy of such code." abacabadabacaba@… Boost 1.54.0 9105 boost::tokenizer fails if string contains percent signs tokenizer Boost 1.54.0 To Be Determined Bugs jsiek new 2013-09-12T07:03:45Z 2013-09-12T07:03:45Z "[Visual Studio 2010] Let's use as an example code shown on the bottom of the page http://www.boost.org/doc/libs/1_54_0/libs/tokenizer/escaped_list_separator.htm =====>>>> // simple_example_2.cpp #include #include #include int main(){ using namespace std; using namespace boost; string s = ""Field 1,\""putting quotes around fields, allows commas\"",Field 3""; tokenizer > tok(s); for(tokenizer >::iterator beg=tok.begin(); beg!=tok.end();++beg){ cout << *beg << ""\n""; } } <<<<===== Works fine. Let's insert percent sign somewhere inside string s. As an example s = ""Field 1,\""putting q%uotes around fields, allows commas\"",Field 3""; program fails with: First-chance exception at 0x75c4c41f in test.exe: Microsoft C++ exception: boost::escaped_list_error at memory location 0x007cf060.. It fails even percent sign would be followed by hex code (like %20) " anonymous Boost 1.54.0 9112 [tr1] Failures in test_ref_wrapper_tricky.cpp result_of Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-09-13T16:22:40Z 2013-09-13T17:00:15Z "The mentioned test case gives a number of failures. Those can be tracked down to two problems (at least the test case perceives them as problems). Google gives hits dating this back to 1.37, I have confirmed it with 1.41 and 1.54. I'm not sure why this hasn't been addressed--have I inadvertently opened a can of worms? First, reference_wrapper that wraps function-like objects doesn't derive off std::unary_function, resp. std::binary function. That's relatively easy to fix by introducing a reference_wrapper_base class template, that reference_wrapper inherits off. That template optionally derives off unary_ or binary_function as appropriate. Second, calling reference wrapper as function doesn't work for member functions. This can be solved by introducing operator() in the above mentioned base class. I'll attach a patch that implements the above, except for specializations for reference_wrapper<{binary,unary}_function>. Please let me know whether a patch to this effect would be applicable and advise on areas that need more work." Petr Machata Boost 1.54.0 9114 Documentation examples not working spirit Boost 1.54.0 To Be Determined Bugs Joel de Guzman new 2013-09-14T12:18:48Z 2013-09-15T16:14:13Z "Example of ''qi::phrase_parse'' (from this [http://www.boost.org/doc/libs/1_54_0/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html page]): {{{ // the following parses ""1.0 2.0"" into a pair of double std::string input(""1.0 2.0""); std::string::iterator strbegin = input.begin(); std::pair p; qi::phrase_parse(strbegin, input.end(), qi::double_ >> qi::double_, // parser grammar qi::space, // delimiter grammar p); }}} and example of ''qi::parse'' (from this [http://www.boost.org/doc/libs/1_54_0/libs/spirit/doc/html/spirit/abstracts/attributes/more_compound_attributes.html page]): {{{ // the following parses ""(1.0, 2.0)"" into a pair of double std::string input(""(1.0, 2.0)""); std::string::iterator strbegin = input.begin(); std::pair p; qi::parse(strbegin, input.end(), '(' >> qi::double_ >> "", "" >> qi::double_ >> ')', // parser grammar p); }}} both produce compile error: {{{ no matching function for call to 'std::pair::pair(const double&)' }}} Compiled with gcc 4.7.3" ruslan_baratov@… Boost 1.54.0 9118 Seg fault on thread join when llvm and libc++ are used thread Boost 1.54.0 To Be Determined Bugs viboes reopened 2013-09-15T19:47:04Z 2014-10-11T02:58:27Z "This issue appears to be specific to llvm libc++ standard library the program compiled with the following options will have a seg fault on thread join. {{{ clang -x c++ -arch x86_64 -std=gnu++11 -stdlib=libc++ -I/opt/local/include -c main.cpp -o main.o clang++ -arch x86_64 -L/opt/local/lib main.o -stdlib=libc++ -lboost_system-mt -lboost_thread-mt -o mutex_test }}} the program compiled with {{{ clang -x c++ -arch x86_64 -I/opt/local/include -c main.cpp -o main.o clang++ -arch x86_64 -L/opt/local/lib main.o -lboost_system-mt -lboost_thread-mt -o mutex_test }}} {{{ System Version : OS X Mountain Lion 10.8.4 Compiler : $ clang --version Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.4.0 Thread model: posix Boost: built/installed with mac ports }}} " tconant@… Boost 1.54.0 9119 memory errors and eventual segfault when using Log filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-09-16T13:55:56Z 2013-10-03T22:13:32Z "Hello, I'm using the the Log component of Boost 1.54 compiled from source and I get many memory errors and segfault while invoking the function logging::add_file_log. To make sure it was not my code, I went to the Boost installation and ran valgrind on some of the Log examples that invoke that function and it happens also there. The minimalistic example tutorial_file.cpp reveals the issue (though there may be more issues with Log). I get many memory errors in Mac OS X and Ubuntu, in Mac OS X it doesn't crash the application but I get a segfault in Ubuntu. I'm attaching the valgrind output on Ubuntu 12.04 with kernel version ""Linux HPC 3.5.0-40-generic #62~precise1-Ubuntu SMP Fri Aug 23 17:38:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux"". Best regards, Giovanni" Giovanni Azua Boost 1.54.0 9120 system_error_category::message() produces non-english error messages in ANSI encoding system Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-09-16T14:32:22Z 2013-09-16T14:32:22Z "In the system_error_category::message(), the FormatMessageA(...,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),...) is used to create error messages. Unfortunately, this code can produce non-english error messages in the ANSI encoding. According to the http://www.boost.org/community/error_handling.html, ""internationalization is beyond the scope of the exception class author"". So, I think that it would be better to use MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT) here." s.cheban@… Boost 1.54.0 9121 """Getting Started"": Atomic missing from libs requiring to be built" Getting Started Guide Boost 1.54.0 To Be Determined Bugs Dave Abrahams new 2013-09-16T18:24:40Z 2013-09-16T18:24:40Z The Atomic library is missing from the list of libs needing to be built. jeffrey.flinn@… Boost 1.54.0 9128 Vector deallocation with pool_allocator enters a dead loop pool Boost 1.54.0 To Be Determined Bugs Chris Newbold new 2013-09-18T12:21:14Z 2013-09-18T12:21:14Z "Here is the complete test code to reproduce the bug: {{{#!c++ #include #include #include #include const size_t LARGE=200000, LEN=30; template < typename VEC > void time_it( const char* tag ) { VEC vec(LARGE); std::clock_t start = std::clock() ; for ( int i = 0 ; i < LARGE ; ++i ) vec[i].resize (LEN) ; std::cout << tag << "": "" << ( std::clock() - start ) / double(CLOCKS_PER_SEC) << "" secs.\n"" ; } #define TIME_IT( a ) time_it( #a ) ; int main() { typedef size_t T; typedef std::vector > std_vec ; typedef boost::pool_allocator boost_allocator; typedef std::vector > boost_vec; TIME_IT( std_vec ) ; TIME_IT( boost_vec ) ; return 0; } }}} It hangs while cleaning up at the end of the time_it function. I've seen with ddd that it hangs in boost/pool/simple_segregated_storage.hpp in the following block: {{{#!c++ while (true) { // if we're about to hit the end, or if we've found where ""ptr"" goes. if (nextof(iter) == 0 || std::greater()(nextof(iter), ptr)) return iter; iter = nextof(iter); } }}} If instead of pool_allocator I use fast_pool_allocator then this does not happen and it's equally slow. In this example pool_allocator takes about 4-5 times longer to allocate than the default one - I don't know why. I compiled it with g++-4.7 -O3 -g testPool5.cc under Ubuntu. I tried Boost versions 1.54.0 and 1.49.0. " Dragan Vidovic Boost 1.54.0 9131 Memcheck reports invalid read in exit() on boost 1.54 on Ubuntu 12.04 filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-09-19T08:38:53Z 2014-02-28T16:47:54Z "{{{ ==10361== Memcheck, a memory error detector ==10361== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==10361== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==10361== Command: target/test/integration_test ==10361== ==10361== Invalid read of size 8 ==10361== at 0x5AE7E18: wcscmp (wcscmp.S:479) ==10361== by 0x55A0113: std::moneypunct::~moneypunct() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x55A0198: std::moneypunct::~moneypunct() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5594A79: std::locale::_Impl::~_Impl() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5594C4C: std::locale::~locale() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5A81D1C: __cxa_finalize (cxa_finalize.c:56) ==10361== by 0x6733E55: ??? (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x6744A20: ??? (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x5A81900: __run_exit_handlers (exit.c:78) ==10361== by 0x5A81984: exit (exit.c:100) ==10361== by 0x5A67773: (below main) (libc-start.c:258) ==10361== Address 0x6b5fe98 is 0 bytes after a block of size 8 alloc'd ==10361== at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==10361== by 0x559FDED: std::moneypunct::_M_initialize_moneypunct(__locale_struct*, char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x559711E: std::locale::_Impl::_Impl(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x559765E: std::locale::locale(char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x6741733: boost::filesystem::path::codecvt() (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x50BF59E: boost::log::v2_mt_posix::sinks::text_file_backend::set_file_name_pattern_internal(boost::filesystem::path const&) (in /usr/lib/libboost_log.so.1.54.0) ==10361== by 0x50C103D: boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long, boost::log::v2_mt_posix::aux::light_function const&, bool) (in /usr/lib/libboost_log.so.1.54.0) ==10361== by 0x413815: void boost::log::v2_mt_posix::sinks::text_file_backend::construct >(boost::parameter::aux::tagged_argument const&) (text_file_backend.hpp:511) ==10361== by 0x412F5E: boost::log::v2_mt_posix::sinks::text_file_backend::text_file_backend >(boost::parameter::aux::tagged_argument const&) (text_file_backend.hpp:386) ==10361== by 0x41280A: boost::detail::sp_if_not_array::type boost::make_shared const, >(boost::parameter::aux::tagged_argument const&&, ) (make_shared_object.hpp:218) ==10361== by 0x41066E: main (integration_test.cpp:17) ==10361== ==10361== Invalid read of size 8 ==10361== at 0x5AE7E18: wcscmp (wcscmp.S:479) ==10361== by 0x55A0003: std::moneypunct::~moneypunct() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x55A0088: std::moneypunct::~moneypunct() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5594A79: std::locale::_Impl::~_Impl() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5594C4C: std::locale::~locale() (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x5A81D1C: __cxa_finalize (cxa_finalize.c:56) ==10361== by 0x6733E55: ??? (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x6744A20: ??? (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x5A81900: __run_exit_handlers (exit.c:78) ==10361== by 0x5A81984: exit (exit.c:100) ==10361== by 0x5A67773: (below main) (libc-start.c:258) ==10361== Address 0x6b600c8 is 0 bytes after a block of size 8 alloc'd ==10361== at 0x4C2AC27: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==10361== by 0x559F7FD: std::moneypunct::_M_initialize_moneypunct(__locale_struct*, char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x559716B: std::locale::_Impl::_Impl(char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x559765E: std::locale::locale(char const*) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16) ==10361== by 0x6741733: boost::filesystem::path::codecvt() (in /usr/lib/libboost_filesystem.so.1.54.0) ==10361== by 0x50BF59E: boost::log::v2_mt_posix::sinks::text_file_backend::set_file_name_pattern_internal(boost::filesystem::path const&) (in /usr/lib/libboost_log.so.1.54.0) ==10361== by 0x50C103D: boost::log::v2_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, std::_Ios_Openmode, unsigned long, boost::log::v2_mt_posix::aux::light_function const&, bool) (in /usr/lib/libboost_log.so.1.54.0) ==10361== by 0x413815: void boost::log::v2_mt_posix::sinks::text_file_backend::construct >(boost::parameter::aux::tagged_argument const&) (text_file_backend.hpp:511) ==10361== by 0x412F5E: boost::log::v2_mt_posix::sinks::text_file_backend::text_file_backend >(boost::parameter::aux::tagged_argument const&) (text_file_backend.hpp:386) ==10361== by 0x41280A: boost::detail::sp_if_not_array::type boost::make_shared const, >(boost::parameter::aux::tagged_argument const&&, ) (make_shared_object.hpp:218) ==10361== by 0x41066E: main (integration_test.cpp:17) }}} " asturman@… Boost 1.54.0 9148 6 Errors mpl Boost 1.54.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-09-22T10:44:07Z 2013-09-26T18:11:37Z " {{{ Error 1 error C2143: syntax error : missing ';' before '<' c:\program files\boost_1_54_0\boost\mpl\assert.hpp 149 1 Frelania Server C++ Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\boost_1_54_0\boost\mpl\assert.hpp 149 1 Frelania Server C++ Error 3 error C2238: unexpected token(s) preceding ';' c:\program files\boost_1_54_0\boost\mpl\assert.hpp 152 1 Frelania Server C++ Error 4 error C2143: syntax error : missing ';' before '<' c:\program files\boost_1_54_0\boost\mpl\assert.hpp 159 1 Frelania Server C++ Error 5 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\program files\boost_1_54_0\boost\mpl\assert.hpp 159 1 Frelania Server C++ Error 6 error C2238: unexpected token(s) preceding ';' c:\program files\boost_1_54_0\boost\mpl\assert.hpp 162 1 Frelania Server C++ }}} " anonymous Boost 1.54.0 9159 bootstrap under Linux w/Solaris Studio 12.3 defaults to 64-bit; doesn't run correctly Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-09-24T20:38:33Z 2013-09-26T18:09:42Z "I ran bootstrap under Linux using Solaris Studio 12.3 in a few different ways: {{{ # This defaults to 64-bit; note that # 'tools/build/v2/engine/build.sh' # does not have the means to add any # flags in with any toolset except 'cc' ./bootstrap.sh --with-toolset=sun # The binary produced doesn't work correctly: test 0 -lt $(./bjam --help |& wc -c) || echo ""Failed"" Failed export CC=/opt/oracle/solarisstudio12.3/bin/cc export CFLAGS=-m32 ./bootstrap.sh --with-toolset=cc test 0 -lt ./bjam --help |& wc -c) && echo ""Succeeded"" Succeeded }}} When building with the ```cc``` toolset, the default ```project-config.jam``` file forces ```feature.values``` to contain the 'cc' toolset, which causes problems later on down the line because, or so it seems, ```cc``` is not a valid toolset to use with bjam. The workaround I used for that was to make the replacement ```s/cc/sun/g``` in the .jam file. " Brian Vandenberg Boost 1.54.0 9164 Dereference null return value in make_shared_object.hpp smart_ptr Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-09-26T06:08:53Z 2013-09-26T06:08:53Z "Using some static analyzer tool , Boost reports warning messages Dereference null return value. In codes like: boost::detail::sp_ms_deleter< T > * pd = static_cast *>( pt._internal_get_untyped_deleter() ); pd is dereference in next line : void * pv = pd->address(); If pd is NULL in above call, dereferencing it may cause crash. It can be avoided by using: BOOST_ASSERT(!pd); It is at many places." Gaurav Gupta Boost 1.54.0 9173 Can't file a bug report (broken bug reporter) trac / subversion Boost 1.54.0 To Be Determined Bugs Douglas Gregor new 2013-09-29T04:25:20Z 2016-09-19T19:07:50Z "This is kind of ridiculous. Boost is blocking my bug report because I provided references (and links to those references) in the report??? And the Bug Reporter won't provide the challenge its asking me to solve...." noloader@… Boost 1.54.0 9186 posix_time and time zones date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-10-01T21:07:27Z 2013-10-01T21:07:27Z "Hi, When I use something like: boost::posix_time::time_from_string(""2013-09-29 23:36:54.565+02""); I end up with: terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): bad lexical cast: source type value could not be interpreted as target Aborted However, the following 2 do work: boost::posix_time::time_from_string(""2013-09-29 23:36:54.565123+02""); boost::posix_time::time_from_string(""2013-09-29 23:36:54.565""); It also doesn't seem to be doing anything with the +02. When I use to_tm() regardless of what is behind the +, I always get the 23 in tm_hour. The glibc extension tm_gmtoff is also always set to 0. None of the functions that convert it to strings seem to be able to have a time zone in it. I really don't understand why there isn't any support for time zones. A time without time zone seems to be totally useless to me. PS: The documentation has 3 times tm_isddst in it instead of tm_isdst." kurt@… Boost 1.54.0 9188 named_slot_map.cpp fails to build in Solaris Studio 12.3 signals Boost 1.54.0 To Be Determined Bugs Douglas Gregor new 2013-10-01T22:50:29Z 2013-10-09T17:15:57Z "I'm getting an ""Overloading ambiguity error"" when building libs/signals/src/named_slot_map.cpp on or around lines 105 & 128 on the calls to `groups.erase`. This may be related to an issue [http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-unresolved.html talked about here], but that issue seems to indicate the problem would only exist in C++11. The error goes away with the following minor edits: {{{ -105: groups.erase((const_group_iterator) group); +105: groups.erase(*(const_group_iterator) group); -128: if (empty(g)) groups.erase((const_group_iterator) g++); +128: if (empty(g)) groups.erase(*(const_group_iterator) g++); }}} I'm doing this work on an airgapped network, and the error is rather verbose ... but I'll give a shorted version of the error: {{{ ""libs/signals/src/named_slot_map.cpp"", line 105: Overloading ambiguity between ""std::map::erase( __rw::__rw_tree_iter )"" and ""std::map::erase(const boost::signals::detail::stored_group&)"". ""libs/signals/src/named_slot_map.cpp"", line 128: Overloading ambiguity between ""std::map::erase( __rw::__rw_tree_iter )"" and ""std::map::erase(const boost::signals::detail::stored_group&)"". }}} " Brian Vandenberg Boost 1.54.0 9190 boost::filesystem::extension(...) throws runtime_error if the locale is unknown. filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2013-10-02T06:13:37Z 2013-10-02T06:13:37Z "Running the following program gives an std::runtime_error if the locale is set to something which the system doesn't support. {{{ #include int main() { boost::filesystem::extension(""test.txt""); } }}} {{{ > LC_CTYPE=unknown ./a.out > terminate called after throwing an instance of 'std::runtime_error' > what(): locale::facet::_S_create_c_locale name not valid > Aborted }}} This is reproducible on debian testing and ubuntu 12.04 but I think it's a general issue. 1. Is it the right behavior to throw an exception? 2. If it should throw an exception, it should have been of type filesystem_error." mkm@… Boost 1.54.0 9198 boost\boost\crc.hpp warning due to implicit bool cast crc Boost 1.54.0 To Be Determined Bugs Daryle Walker new 2013-10-04T09:58:55Z 2013-10-05T10:33:53Z "While compiling with Visual Studio 2013 RC, the following warning is issued: boost\boost\crc.hpp(601): warning C4800: 'unsigned int' : forcing value to bool 'true' or 'false' (performance warning) ---- Fix: Change line 601 as follows: bool const quotient = (remainder & high_bit_mask) != 0;" Frank Heimes Boost 1.54.0 9226 On some computer, the Common Appdata is empty in registry, so boost interprocess cannot work. interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga reopened 2013-10-11T07:24:39Z 2015-03-06T16:16:32Z "Our application is used by millions of people. I found that about 0.1 ~ 0.3 % computers will miss the registry item, or set to be empty, so lead to lots of trouble shooting. My suggestion is to use SHGetSpecialFolderPathA instead of get the folder from registry, in HKEY_LOCALMACHINE\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders. The code is like this: inline void get_shared_documents_folder(std::string &s) { s.clear(); char szPath[MAX_PATH]; if(SHGetSpecialFolderPathA(NULL,szPath,CSIDL_COMMON_APPDATA,FALSE)) { s = szPath; } } Thanks Cheng Yang " luckyangcheng@… Boost 1.54.0 9232 Template bloat multiprecision Boost 1.54.0 To Be Determined Bugs John Maddock new 2013-10-11T13:18:12Z 2013-10-12T12:00:29Z "With integers of size N powm() will instantiate divide_unsigned_helper<> for N and N*2, since this is a very large function this leads to classical template bloat. Examining the codegen it appears that both instantiations are nearly identical save for immediate constants -> this would suggest that you could refactor divide_unsigned_helper<> (and probably the rest of the library) so that it separates functionality that actually depends on template parameters from template-parameter independent code into separate functions (in this case divide_unsigned_helper would probably call a helper function that takes the size of the number as a runtime parameter). ps. even when different function template instantiations result in identical code there are _still_ lousy compilers&linkers that will not merge them (Clang we are looking at you: http://llvm.org/bugs/show_bug.cgi?id=11633)..." Domagoj Šarić Boost 1.54.0 9237 Vectorizer friendly code multiprecision Boost 1.54.0 To Be Determined Bugs John Maddock new 2013-10-11T13:36:07Z 2016-02-10T12:28:17Z "* use aligned storage (also statically attributed as such, with compiler specific attributes, not just allocated as aligned) * mind __vectorcall and its ability to pass and return tuples! http://blogs.msdn.com/b/vcblog/archive/2013/07/12/introducing-vector-calling-convention.aspx * use native/builtin arbitrary sized vectors http://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html http://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors" Domagoj Šarić Boost 1.54.0 9239 Implicit type conversion without warning, although Wconversion used units Boost 1.54.0 To Be Determined Bugs Matthias Schabel new 2013-10-11T15:49:45Z 2014-03-11T00:45:23Z "When defining a variable with automatic type recognition, {{{ auto inv_time = 1/si::second; }}} this instruction {{{ inv_time = 0.4/si::second; }}} does not generate a warning (using -Wconversion), while {{{ auto p = 3; p = 1.0/2.0; }}} generates a warning, as it should. Is there any reason for the different behavior in both cases? It should be mentioned that this is not contingent to ""auto"", for {{{ quantity time = 1/(1/si::second); time = 0.4*si::second; }}} compiles without warning, too (and time = 0 s in the end). I thought implicit typecasts with possible loss of precision were forbidden or would at least trigger a warning. " Daniel Rings Boost 1.54.0 9260 Phoenix switch_ statements accessing wrong memory and cause segfault phoenix Boost 1.54.0 To Be Determined Bugs Thomas Heller new 2013-10-18T07:46:19Z 2014-02-01T17:04:01Z "Seth Heeren and I tracked down a problem in phoenix 3's switch_ statements that causes a crash in the attached example. Judging from valgrind outputs, it appears as if the switch_ accesses memory outside it's stack. In the attached case that causes a crash when accessing local variables in the enclosing rule. To reproduce: With this rule: qi::rule, Skipper> enclosing; defined as: enclosing %= condition[_a = _1] >> double_[_val = _a]; it works. If it is defined as: enclosing %= condition[_a = _1] >> double_[_c = _1, _val = _a]; it crashes. When not using local variables there is no crash but still undefined behavior caused by the switch_. Phoenix 2 does not have this problem. " stephan.menzel@… Boost 1.54.0 9261 ssl alert are not being sent during handshake failure asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-10-18T09:24:28Z 2014-07-22T10:30:52Z "According to the SSL protocol alert messages should (and must) be sent under certain circumstances if SSL-handshake fails. When inspecting the network traffic with wireshark during SSL-handshake failure it seems like these messages are being sent. When debugging asio and OpenSSL one can see that OpenSSL do indeed write alert messages (as expected) to the buffers asio has set up, but asio do not write them to the socket. If SSL-handshake fails, OpenSSL writes alert message to asio buffers AND sets error code to SSL_ERROR_SSL. The function perform in the source code file asio/ssl/detail/impl/engine.ipp returns want_nothing if error is SSL_ERROR_SSL, which causes asio not to write data to the socket. This is tested on CentOS 6.4 x86_64." Joakim Goldkuhl Boost 1.54.0 9262 windows_intermodule_singleton breaks when calling a Debug dll from a Release executable interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga reopened 2013-10-18T10:28:48Z 2017-08-16T10:05:19Z "A simplified example of what goes wrong (the reality is more complex, and also very difficult for me to change): On Windows I have an exe and a dll that both use boost.interprocess. The dll interface is C-like, so that the exe and dll can use different runtimes (i.e. Debug and Release runtimes). This works fine as long as I comment out the BOOST_INTERPROCESS_HAS_KERNEL_BOOTTIME define in workaround.hpp. But if I leave that define in the code I will get random access violations deep inside the tmp_folder function (or one of the other functions in tmp_dir_helpers). I believe that this is due to the windows_intermodule_singleton, which is only used when ...HAS_KERNEL_BOOTTIME is defined. This singleton will get created in one runtime and then accessed in another, which does not work since it contains a std::map, which is an STL object that is not possible to pass between runtimes in Visual C++. If it is possible to fix this that would be great, but the other option would be a ""nicer"" way to turn off the singleton without having to patch one of the boost headers." Lars Hagström Boost 1.54.0 9264 boost/date_time/local_time_adjustor.hpp requires more headers date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2013-10-18T14:49:32Z 2013-10-18T14:49:32Z " {{{ #include int main(int argc, char **argv) {} }}} This doesn't compile because the included headers appears to require others headers. I guess the root problem is really with `dst_rules.hpp`. Error (g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3): {{{ In file included from /usr/local/include/boost_1_54_0/boost/date_time/local_time_adjustor.hpp:20:0, from tmp.cpp:1: /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp: In static member function ‘static boost::date_time::us_dst_rules::date_type boost::date_time::us_dst_rules::local_dst_start_day(boost::date_time::us_dst_rules::year_type)’: /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp:317:45: error: ‘gregorian’ has not been declared /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp:321:30: error: ‘gregorian’ has not been declared /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp: In static member function ‘static boost::date_time::us_dst_rules::date_type boost::date_time::us_dst_rules::local_dst_end_day(boost::date_time::us_dst_rules::year_type)’: /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp:330:30: error: ‘gregorian’ has not been declared /usr/local/include/boost_1_54_0/boost/date_time/dst_rules.hpp:334:30: error: ‘gregorian’ has not been declared }}}" sshannin@… Boost 1.54.0 9270 Hello world example in Boost accumulator reference manual does not compile accumulator Boost 1.54.0 To Be Determined Bugs Eric Niebler new 2013-10-19T09:11:27Z 2013-10-19T09:11:27Z "In the code example http://www.boost.org/doc/libs/1_54_0/doc/html/accumulators/user_s_guide.html#accumulators.user_s_guide.hello__world_ {{{ std::cout << ""Moment: "" << accumulators::moment<2>(acc) << std::endl; }}} should be {{{ std::cout << ""Moment: "" << moment<2>(acc) << std::endl; }}} " jeadorf@… Boost 1.54.0 9277 Serial Hardware Handshaking in Windows XP SP3 Broken? asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-10-20T21:08:09Z 2013-10-20T21:08:09Z "9600 8N1 Transmit only, both DSR and CTS asserted by device (printer). Behavior is apparently no different than handshake none. Works fine with windows-specific code which sets the DCB as follows: {{{ dcb.fOutxCtsFlow = true; // Enable CTS monitoring dcb.fOutxDsrFlow = true; // Enable DSR monitoring dcb.fDtrControl = DTR_CONTROL_HANDSHAKE; // Enable DTR handshaking dcb.fOutX = false; // Disable XON/XOFF for transmission dcb.fInX = false; // Disable XON/XOFF for receiving dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; // Enable RTS handshaking }}} Couldn't find where the DCB is set in asio..." bd@… Boost 1.54.0 9290 boost statechart documentation does not mention, that the state machine should be terminated with terminate() statechart Boost 1.54.0 To Be Determined Bugs Andreas Huber new 2013-10-22T13:04:06Z 2013-10-26T15:20:42Z "Just hit by the issue described in an old thread: http://lists.boost.org/boost-users/2007/07/29695.php In short: for assert-free state machine destruction, terminate() method must be called prior actual destruction of the state machine. This aspect is not mentioned in the tutorial, moreover the method is never called in any tutorial example." Viatcheslav.Sysoltsev@… Boost 1.54.0 9292 event_log example crashes. log Boost 1.54.0 To Be Determined Bugs Andrey Semashev new 2013-10-23T00:22:58Z 2013-10-23T00:22:58Z "In supplied event_log_messages.mc: SeverityNames=(Debug=0x0:MY_SEVERITY_DEBUG Info=0x1:MY_SEVERITY_INFO Warning=0x2:MY_SEVERITY_WARNING Error=0x3:MY_SEVERITY_ERROR ) Which translates into: // // Define the severity codes // #define MY_SEVERITY_WARNING 0x2 #define MY_SEVERITY_INFO 0x0 #define MY_SEVERITY_ERROR 0x3 in the generated event_log_messages.h When trying to execute the code: type_mapping[error] = sinks::event_log::make_event_type(MY_SEVERITY_ERROR); in supplied main.cpp the call to make_event_type throws out_of_range, because only levels 0, 1, 2, and 4 are allowed. " mike.ferrel@… Boost 1.54.0 9295 PHOENIX_LIMIT macro clash: property_tree -- log/sink phoenix Boost 1.54.0 To Be Determined Bugs Thomas Heller new 2013-10-23T15:11:28Z 2014-02-03T20:56:49Z "Components: * spirit * phoenix * log * property_tree The following does not compile using gcc 4.8.1 or 4.7.2 (linux) using default warning options: {{{ #include ""boost/property_tree/json_parser.hpp"" #include ""boost/log/sinks.hpp"" }}} The reason is that there are two (different?) definitions picked up, from deep within the include graphs: {{{ boost/phoenix/core/limits.hpp:26 #define PHOENIX_LIMIT BOOST_PHOENIX_LIMIT boost/spirit/home/classic/attribute.hpp:30 #define PHOENIX_LIMIT 6 }}} (Note to others: A workaround for cases where the two are not truly used together is to use a pimpl.)" Johan Lundberg Boost 1.54.0 9297 """boost::iostreams::file_descriptor_sink"" doesn't support translation of line endings on Windows" iostreams Boost 1.54.0 To Be Determined Bugs Jonathan Turkanis new 2013-10-24T09:33:20Z 2013-10-24T09:33:20Z "When a Windows file descriptor is opened in text mode, all newline characters written to this file are translated to CRLF. However, if ''boost::iostreams::file_descriptor_sink'' is used on such a file descriptor to write newlines to a stream, these newline characters are not translated to CRLF. The following sample program demonstrates this: {{{#!c++ #include #include #include #include #include #include int main() { static const std::string str1 = ""This is a line""; static const std::string str2 = ""This is another line""; int fd = _open(""output.txt"", _O_WRONLY | _O_CREAT | _O_TRUNC | _O_TEXT, _S_IREAD | _S_IWRITE); _write(fd, str1.data(), str1.size()); _write(fd, ""\n"", 1); // This writes ""\r\n"" boost::iostreams::file_descriptor_sink sink(fd, boost::iostreams::close_handle); boost::iostreams::stream stream(sink); stream << str2; stream << std::endl; // This only writes ""\n"" return 0; } }}}" m.kosch@… Boost 1.54.0 9306 Linking failure - Building BOOST with gcc-4.8 on Mac OSX Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-10-26T07:13:26Z 2013-11-11T11:20:25Z "Hi, I am trying to compile boost on mac using gcc-4.8 and getting link errors. I have few reasons for this to be built with gcc and not clang which will deviate the actual issue. I have built boost with these steps: 1. Edited user-config.jam in /tools/build/v2 and added the following using gcc : 3.2 : /usr/local/bin/g++-3.2 ; 2. ./bootstrap --prefix=/custom/path 3. ./b2 -d 2 toolset=gcc-4.8 Errors are as below: {{{ ld: unknown option: -h collect2: error: ld returned 1 exit status ...failed gcc.link.dll bin.v2/libs/serialization/build/gcc-4.8/release/threading-multi/libboost_serialization.dylib... ...skipped libboost_wserialization.dylib for lack of libboost_serialization.dylib... gcc.link.dll stage/lib/libboost_signals.dylib ""/usr/local/bin/g++-4.8"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config"" -o ""stage/lib/libboost_signals.dylib"" -Wl,-h -Wl,libboost_signals.dylib -shared ""bin.v2/libs/signals/build/gcc-4.8/release/threading-multi/trackable.o"" ""bin.v2/libs/signals/build/gcc-4.8/release/threading-multi/connection.o"" ""bin.v2/libs/signals/build/gcc-4.8/release/threading-multi/named_slot_map.o"" ""bin.v2/libs/signals/build/gcc-4.8/release/threading-multi/signal_base.o"" ""bin.v2/libs/signals/build/gcc-4.8/release/threading-multi/slot.o"" ld: unknown option: -R collect2: error: ld returned 1 exit status ...failed gcc.link.dll stage/lib/libboost_signals.dylib... gcc.link.dll stage/lib/libboost_prg_exec_monitor.dylib ""/usr/local/bin/g++-4.8"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config"" -o ""stage/lib/libboost_prg_exec_monitor.dylib"" -Wl,-h -Wl,libboost_prg_exec_monitor.dylib -shared ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/execution_monitor.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/debug.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/cpp_main.o"" ld: unknown option: -R collect2: error: ld returned 1 exit status ...failed gcc.link.dll stage/lib/libboost_prg_exec_monitor.dylib... gcc.link.dll stage/lib/libboost_unit_test_framework.dylib ""/usr/local/bin/g++-4.8"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib"" -Wl,-R -Wl,""/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config"" -o ""stage/lib/libboost_unit_test_framework.dylib"" -Wl,-h -Wl,libboost_unit_test_framework.dylib -shared ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/execution_monitor.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/debug.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/compiler_log_formatter.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/exception_safety.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/framework.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/interaction_based.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/logged_expectations.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/plain_report_formatter.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/progress_monitor.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/results_collector.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/results_reporter.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/test_tools.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/unit_test_log.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/unit_test_main.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/unit_test_monitor.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/unit_test_parameters.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/unit_test_suite.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/xml_log_formatter.o"" ""bin.v2/libs/test/build/gcc-4.8/release/threading-multi/xml_report_formatter.o"" ld: unknown option: -R collect2: error: ld returned 1 exit status ...failed gcc.link.dll stage/lib/libboost_unit_test_framework.dylib... ...skipped libboost_timer.dylib for lack of libboost_chrono.dylib... ...skipped libboost_wave.dylib for lack of libboost_thread.dylib... ...failed updating 23 targets... ...skipped 14 targets... }}} " karunreddy30@… Boost 1.54.0 9313 Preserve doxygen syntax highlighting in doxygen2boostbook. Documentation Boost 1.54.0 To Be Determined Bugs Daniel James new 2013-10-28T22:38:24Z 2013-10-28T22:38:24Z "Instead of using the 'language=""c++""' attribute." Daniel James Boost 1.54.0 9315 boost shared_ptr should detect __sync support in clang smart_ptr Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-10-28T23:11:32Z 2014-02-28T20:16:59Z clang (at least as of 3.4) has support for GCC __sync functions. shared_ptr should properly detect that clang has such support (at least on ARM such support is not detected properly). vlovich@… Boost 1.54.0 9322 spinlock_gcc_arm.hpp fails when building iOS arm64 smart_ptr Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-10-30T14:01:57Z 2014-03-01T00:17:20Z I am using boost in my iOS and Android applications and building for arm64 in iOS fails in spinlock_gcc_arm because the the SWP instruction and LDREX are not part of the arm64 instruction set. I do not have enough knowledge about the ARM assembly instructions to implement a proper fix for this myself and was hopeful someone with more expertise could provide a fix for the next release (or a patch for the current, if possible). Joe Radjavitch Boost 1.54.0 9324 boost\include\boost-1_53\boost\asio\detail\impl\signal_set_service.ipp Off by One Error asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-10-30T16:57:24Z 2013-10-30T21:46:36Z "In the function {{{ boost::system::error_code signal_set_service::add( signal_set_service::implementation_type& impl, int signal_number, boost::system::error_code& ec) }}} The guard statement {{{ // Check that the signal number is valid. if (signal_number < 0 || signal_number > max_signal_number) { ec = boost::asio::error::invalid_argument; return ec; } }}} has an Off-by-One error. The guard statement should read {{{ // Check that the signal number is valid. if (signal_number < 0 || signal_number >= max_signal_number) { ec = boost::asio::error::invalid_argument; return ec; } }}} " Oscar Deits Boost 1.54.0 9329 Compilation fixes for Sun CC and its ancient standard library program_options Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2013-10-30T23:23:15Z 2013-10-30T23:23:15Z "This patch avoids the following errors when compiling the library using Sun CC (Sun C++ 5.10 SunOS_i386 2009/06/03): {{{ ""libs/program_options/src/options_description.cpp"", line 422: Error, nomatchoverin: Could not find a match for std::count(char*, char*, char) needed in::format_paragraph(std::ostream &, std::string, unsigned, unsigned). ""libs/program_options/src/options_description.cpp"", line ""libs/program_options/src/options_description.cpp"", line 483: Error, toofewtargs: Too few arguments for template std::reverse_iterator. ""/opt/sunstudio12.1/prod/include/CC/Cstd/rw/iterator"", line 426: Error, nofunctmpl: ""friend"" declaration is incompatible with function template. ""libs/program_options/src/options_description.cpp"", line 483: Where, temwhilespec: While specializing ""std::reverse_iterator"". ""libs/program_options/src/options_description.cpp"", line 483: Where, temspecend: Specialized in non-template code. ""libs/program_options/src/options_description.cpp"", line 484: Error, toofewtargs: Too few arguments for template std::reverse_iterator. 472: Error, nomatchoverin: Could not find a match for std::distance(const char*, const char*const) needed in::format_paragraph(std::ostream &, std::string, unsigned, unsigned). ""libs/program_options/src/value_semantic.cpp"", line 371: Error, nomatchoverin: Could not find a match for std::vector::vector(__rwstd::__rb_tree, std::less, std::allocator>::const_iterator, __rwstd::__rb_tree, std::less, std::allocator>::const_iterator) needed in boost::program_options::ambiguous_option::substitute_placeholders(const std::string &) const. }}} I don't really understand neither of them, unfortunately: looking at the standard library headers both the calls to `count()` and `distance()` should compile. OTOH neither of them is really necessary so I hope this patch can be applied nevertheless. With `reverse_iterator` it's more mysterious but, again, IMHO its use in the original code is not really needed, so I've just replaced it with `rfind()`. The last error is clear: this compiler standard library doesn't provide template ctor of `std::vector` from an iterator pair, so an alternative method of constructing it must be used. This does make the code less concise and elegant, but unfortunately I don't see any other way to make it work in this case. TIA!" vz-boost@… Boost 1.54.0 9331 Boost Log fails to compile on FreeBSD 10.0 Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-11-02T04:07:46Z 2013-11-02T04:07:46Z "During a release compile of boost with clang 3.3 on FreeBSD 10.0, the log library failed to build: ./boost/math/tools/promotion.hpp:141:10: error: implicit instantiation of undefined template 'boost::STATIC_ASSERTION_FAILURE' K-ballo on IRC suggested that I comment out line 29 of boost/math/tools/config.hpp: # define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS This resolved the problem. I am submitting this ticket just in case anyone else runs in to this problem." anonymous Boost 1.54.0 9350 boost does not use prefix for rpath Building Boost Boost 1.54.0 To Be Determined Bugs new 2013-11-06T21:24:09Z 2013-11-06T21:24:09Z "How to reproduce: {{{ MY_PREFIX=/my/boost/target ./bootstrap.sh --prefix=$MY_PREFIX ./b2 -j 14 -d+2 address-model=64 install ldd $MY_PREFIX/lib/libboost_filesystem.so | grep boost libboost_system.so.1.54.0 => NOT FOUND }}} I've observed this issue with Boost 1.52 (using the sun toolset - sun.jam) and with Boost 1.54 (using the gcc toolset - gcc.jam). It seems that boost sets the rpath to the build directory and not to the specified prefix (during link time). Expected results: ldd $MY_PREFIX/lib/libboost_filesystem.so | grep boost libboost_system.so.1.54.0 => $MY_PREFIX/lib/libboost_system.so.1.54.0 (note that I've picked libboost_filesystem as an example - other boost libraries have the same issue, e.g. chrono/log/time/...) Currently I use a dirty workaround to have the rpath set correctly: {{{ --- a/tools/build/v2/tools/gcc.jam +++ b/tools/build/v2/tools/gcc.jam @@ -945,7 +945,7 @@ rule link ( targets * : sources * : properties * ) actions link bind LIBRARIES { - ""$(CONFIG_COMMAND)"" -L""$(LINKPATH)"" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,""$(RPATH_LINK)"" -o ""$(<)"" $(START-GROUP) ""$(>)"" ""$(LIBRARIES)"" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) + ""$(CONFIG_COMMAND)"" -L""$(LINKPATH)"" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(MY_PREFIX)/lib -Wl,-rpath-link$(SPACE)-Wl,""$(RPATH_LINK)"" -o ""$(<)"" $(START-GROUP) ""$(>)"" ""$(LIBRARIES)"" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } @@ -1011,7 +1011,7 @@ rule link.dll ( targets * : sources * : properties * ) # Differs from 'link' above only by -shared. actions link.dll bind LIBRARIES { - ""$(CONFIG_COMMAND)"" -L""$(LINKPATH)"" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) ""$(.IMPLIB-COMMAND)$(<[1])"" -o ""$(<[-1])"" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) ""$(>)"" ""$(LIBRARIES)"" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) + ""$(CONFIG_COMMAND)"" -L""$(LINKPATH)"" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(MY_PREFIX)/lib ""$(.IMPLIB-COMMAND)$(<[1])"" -o ""$(<[-1])"" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) ""$(>)"" ""$(LIBRARIES)"" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } rule setup-threading ( targets * : sources * : properties * ) }}} The workaround for {{{tools/build/v2/tools/sun.jam}}} is similar. " Georg Sauthoff Boost 1.54.0 9364 linux epoll sizeof(epoll_event) == 12 asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-11-11T05:40:08Z 2013-11-11T05:40:08Z "add gcc flag -malign-double and sizeof(epoll_event) == 16 is not valid; pls. Add BOOST_STATIC_ASSERT(sizeof(epoll_event) == 12); ps. Sorry my bad english." anonymous Boost 1.54.0 9427 svg_mapper bugs geometry Boost 1.54.0 To Be Determined Bugs Barend Gehrels new 2013-11-23T10:15:53Z 2013-11-23T12:50:52Z "{{{ #!div style=""font-size: 80%"" Code highlighting: {{{#!C++ #include #include #include #include #include void main() { typedef boost::geometry::model::d2::point_xy point_type; point_type a(10, 10); boost::geometry::model::polygon b; boost::geometry::read_wkt(""POLYGON((0 0,0 7,4 2,2 0,0 0))"", b); std::ofstream svg(""my_map.svg""); boost::geometry::svg_mapper mapper(svg, 100, 100); //mapper.add(a); mapper.add(b); //mapper.map(a, ""fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(153,204,0);stroke-width:2""); mapper.map(b, ""fill-opacity:0.3;fill:rgb(51,51,153);stroke:rgb(51,51,153);stroke-width:2""); } }}} }}} This code can produce 2 kinds of suspicious behavior:[[BR]] 1)If I output only single point(a), it's coordinates are invalid(svg output fragment: ''circle cx=""-2147483648"" cy=""-2147483648""'').[[BR]] 2)If I add polygon to the output(a and b), I get more relevant output, but still invalid(svg output fragment: ''circle cx=""1000"" cy=""0""''). I use msvssp4 with debug-x64 configuration." yuyoyuppe Boost 1.54.0 9439 boost::spawn core dump asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-11-27T03:30:43Z 2014-10-28T12:16:06Z "My program generate an core dump when I create 50000 coroutines.The number of coroutines is too big? gcc version 3.4.5 20051201 (Red Hat 3.4.5-2) My program is: #include #include #include #include #include #include #include #include #include #include #include using boost::asio::ip::tcp; void do_echo(boost::asio::yield_context yield, boost::asio::io_service *io_service) { for (; ;) { try { tcp::socket sock(*io_service); tcp::endpoint ep(boost::asio::ip::address::from_string(""127.0.0.1""), 19011); sock.async_connect(ep, yield); std::cout<< 1 < (""a\0b"") - split(u""a\0b"", u""X"") -> (""a"", ""b"") There's a workaround of wrapping u""X"" in a std::u16string, which works perfectly well." cool.pepyaka@… Boost 1.54.0 9465 Issues with kqueue_reactor, dynamic libraries and -fvisibility=hidden asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2013-12-03T13:22:52Z 2013-12-03T13:22:52Z "I've discovered a problem within a larger project for MacOS which uses multiple dynamic libraries and asio features (deadline_timers and tcp/udp sockets). After investigating the problem I've managed to reproduce it in the following minimal example: {{{ ////////// Timer.hpp ////////// #ifndef TIMER_HPP #define TIMER_HPP #include #include #define VISIBLE __attribute__ ((visibility (""default""))) class VISIBLE Timer { public: Timer(boost::asio::io_service& service); private: void onTimeout(const boost::system::error_code& code); boost::asio::deadline_timer timer; }; #endif // Timer_HPP ////////// Timer.cpp ////////// #include Timer::Timer(boost::asio::io_service& service) : timer(service) { timer.expires_from_now(boost::posix_time::seconds(1)); timer.async_wait(boost::bind(&Timer::onTimeout, this, _1)); } void Timer::onTimeout(const boost::system::error_code& code) { std::cout << ""The callback from the dynamic library was called."" << std::endl; } ////////// main.cpp ////////// #include boost::asio::io_service service; void run() { service.run(); } void onTimeout(const boost::system::error_code& code) { std::cout << ""The callback from main was called."" << std::endl; } int main() { Timer timer(service); boost::asio::deadline_timer deadline_timer(service); deadline_timer.expires_from_now(boost::posix_time::seconds(1)); deadline_timer.async_wait(boost::bind(&onTimeout, _1)); boost::thread t(boost::bind(&run)); t.join(); return 0; } }}} Timer.cpp is compiled into a dynamic library and used by main.cpp which is compiled as an executable. The environment: MacOS 10.8.5, Boost 1.54.0, clang 500.2.79 The parameters which are passed to clang at compilation time are: {{{ clang++ -ggdb -c Timer.cpp -I. -I/opt/local/include -fPIC -fvisibility=hidden }}} {{{ clang++ -ggdb -o libTimer.dylib -dynamiclib Timer.o -L/opt/local/lib -lboost_thread-mt -lboost_system-mt -fvisibility=hidden }}} {{{ clang++ -ggdb main.cpp -o runTest -I. -I/opt/local/include -L. -L/opt/local/lib -lboost_thread-mt -lboost_system-mt -lTimer fvisibility=hidden }}} The visibility is set to hidden at compilation time in order to expose only desired functions (e.g. the Timer class) from my library. The problem that arise is that the callback of the timer from main.cpp is never called. If I remove the visibility flag at compilation time the example works as it should (both timer callbacks are called). When I did further investigations I've observed that 2 kqueue_reactor instances are create when using hidden visibility and only one kqueue_reactor is created when visibility is set to default. When compiling the example on Linux using visibility set to hidden the example works as expected." avbica@… Boost 1.54.0 9470 Example in documentation uses wrong parameter type program_options Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2013-12-04T11:48:00Z 2013-12-04T11:48:00Z "The example of parse_config_file in http://www.boost.org/doc/libs/1_55_0/doc/html/program_options/overview.html#idp163372680 uses a filename as first parameter, but the library expects a std::istream. " bohn@… Boost 1.54.0 9493 labeled_graph may refer to and operate on released memory after removing a vertex by label graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2013-12-13T12:39:26Z 2015-09-23T13:08:15Z "Although `labeled_graph` is not officially part of BGL API some people try to use it. Unfortunately, the current implementation has a serious bug that might lead to a crash. The problem appears when removing a vertex from labeled_graph by its label. My investigation shown that despite of vertex being actually removed, the label is not and it still refers to the removed vertex. The problem is ""easier"" to reproduce when adjacency_list's VertexList is set to a container like boost::listS. The attached test case shows the problem. I also attached the output from a valgrind run on the test case code and a patch that fixes the issue for the ""configuration"" that I use (a more generic fix will probably be needed)." Adam Romanek Boost 1.54.0 9508 1.54 regression: boost/thread/once.hpp includes boost/placeholders.hpp bind Boost 1.54.0 To Be Determined Bugs Peter Dimov new 2013-12-19T02:22:06Z 2014-01-13T22:05:14Z "{{{ #include #include using namespace std::placeholders; static int x = sizeof(_1); }}} The code above compiles in C++11 mode on boost 1.53, but it fails on boost 1.54 like this: {{{ boost_bind_bug.cpp:6:23: error: reference to ‘_1’ is ambiguous static int x = sizeof(_1); ^ In file included from boost_bind_bug.cpp:1:0: /usr/include/c++/4.8.2/functional:1004:34: note: candidates are: const std::_Placeholder<1> std::placeholders::_1 extern const _Placeholder<1> _1; ^ In file included from /usr/include/boost/bind/bind.hpp:1742:0, from /usr/include/boost/bind.hpp:22, from /usr/include/boost/thread/pthread/once_atomic.hpp:19, from /usr/include/boost/thread/once.hpp:20, from boost_bind_bug.cpp:2: /usr/include/boost/bind/placeholders.hpp:55:15: note: boost::arg<1> {anonymous}::_1 boost::arg<1> _1; ^ }}} This magic inclusion of boost/bind/placeholders.hpp is extremely impolite." luto@… Boost 1.54.0 9523 reserve() corrupts data in boost::bimap vector_of_relation bimap Boost 1.54.0 Boost 1.56.0 Bugs Matias Capeletto new 2013-12-24T18:15:22Z 2013-12-24T18:15:22Z "bimap::reserve() has bad behavior: 1. Corrupts the data by inserting item into the empty bimap 2. Reserves incorrect amount of elements capacity Environment: Linux Ubuntu x64 3.2.0-57-generic 87-Ubuntu SMP, gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1 Code: {{{ typedef unsigned Id; const unsigned m_nodes = 1518; typedef boost::bimap, boost::bimaps::unconstrained_set_of, boost::bimaps::vector_of_relation> Nbimap; Nbimap m_nbimap; fprintf(stderr, ""Initial bmsize: %u, capacity: %u\n"", m_nbimap.size(), m_nbimap.capacity()); m_nbimap.reserve(m_nodes); fprintf(stderr, ""Postreserve bmsize: %u, capacity: %u, nsize: %u\n"", m_nbimap.size(), m_nbimap.capacity(), m_nodes); }}} Console output: {{{ Initial bmsize: 0, capacity: 0 Postreserve bmsize: 1, capacity: 15, nsize: 1518 }}} " Artem V L Boost 1.54.0 9562 boost::detail::operator_brackets_proxy::result_type::operator= return type is wrong iterator Boost 1.54.0 To Be Determined Bugs jeffrey.hellrung new 2014-01-11T19:05:22Z 2014-01-14T05:25:06Z "From boost/iterator/detail/operator_brackets_dispatch.hpp: {{{ template struct operator_brackets_proxy { class result_type { Iterator const m_i; explicit result_type(Iterator const & i) : m_i(i) { } friend struct operator_brackets_proxy; void operator=(result_type&); public: operator Reference() const { return *m_i; } operator_brackets_proxy const & operator=( typename Iterator::value_type const & x) const { *m_i = x; return *this; } }; static result_type apply(Iterator const & i) { return result_type(i); } }; }}} The return type of `result_type::operator=` should be `result_type const &`, not `operator_brackets_proxy const &`. This looks like a typo." Eric Niebler Boost 1.54.0 9570 TTI doesn't support inheritance or at least this is not documented anywhere tti Boost 1.54.0 To Be Determined Bugs Edward Diener new 2014-01-13T21:05:51Z 2014-03-04T15:33:48Z "If I didn't know better (not mentioned in TFM) I'd find the behavior of this program very surprising (g++-mp-4.8 -std=c++0x ..., from macports): #include ""boost/tti/has_member_function.hpp"" struct Container { void func() {} }; struct Container2 : public Container { using Container::func; // doesn't help }; //typedef Container container_t; // ok typedef Container2 container_t; // fail BOOST_TTI_HAS_MEMBER_FUNCTION(func) static_assert( has_member_function_func< container_t, void, boost::mpl::vector<> >::value, ""fail"" ); int main(int, char**) { return 0; } " anonymous Boost 1.54.0 9575 is_directory() wrong with NTFS mounted volumes, and temp_directory_path() fails then filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2014-01-15T08:59:08Z 2014-01-15T08:59:08Z "is_directory() returns false with NTFS mounted volumes in Windows. This look like the same problem as #5649, but the consequences are more serious I think. Some people put the temp directory on a mounted volume, and in this case temp_directory_path() fails although windows has a valid temporary directory. I use some commercial software that uses temp_directory_path() which will fail without useful error messages." andreas.malzahn@… Boost 1.54.0 9586 Boost Date/Time should use BOOST_TRY/CATCH instead of try date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2014-01-17T17:32:12Z 2018-01-18T13:58:59Z "Hello, We had to activate the USE_DATE_TIME_PRE_1_33_FACET_IO and modify a few files in try/catches to BOOST_TRY/CATCH in date_time/gregorian/greg_facet.hpp to get our Date/Time dependency compiling in non-exception code. Here's the attached patch. However, Date/Time depends too heavily on try/catch behavior in detriment to projects wanting to use it but without exceptions. Can this be fixed for a next iteration of Boost?" catalinalexandru.zamfir@… Boost 1.54.0 9627 Missing include and BOOST_NO_TYPEID check exception Boost 1.54.0 To Be Determined Bugs Emil Dotchevski new 2014-02-03T07:58:38Z 2014-02-26T21:29:14Z "Hello, In boost 1.54 ""#include ""boost/throw_exception.hpp"""" is missing in dynamic_bitset/dynamic_bitset.hpp, so the macro BOOST_THROW_EXCEPTIO would be defined. Also ""#ifndef BOOST_NO_TYPEID"" check is missing in ptr_container/clone_allocator.hpp and ptr_container/detail/reversible_ptr_container.hpp around the usage of BOOST_ASSERT where it uses typeid()" vency.cvetkov@… Boost 1.54.0 9634 v 1.54 - powerpc64/LE : filesystem : operations_test : core filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2014-02-06T13:13:02Z 2014-02-06T13:13:02Z "Hi, Test /boost1.54-1.54.0/bin.v2/libs/filesystem/test/operations_test_static.test/gcc-4.8/debug/link-static/operations_test generates a core, when testing it with version 1.54 on powerpc64/LE - Ubuntu 14.04 alpha2. Defect has already been opened against Ubuntu, since they do not seem to have lunch Boost tests in this environment: no answer yet. Debugging seems to show that the issue is in: BOOST : libs/filesystem/src/path.cpp std::locale path::imbue(const std::locale& loc) { std::locale temp(path_locale); <<<<<<<<<<<<<<<<<<<<<<< line 918 path_locale = loc; codecvt_facet_ptr = &std::use_facet >(path_locale); return temp; } At line 918, C++ tries to do some initialization. This seems to imply to use field _M_impl of path_locale, which is 0x0. It seems that no initialization of path_locale is done and thus _M_impl stay 0x0. Then, there is a crash in stdlibc++ code. (gdb) where #0 boost::filesystem::path::imbue (loc=...) at ../libs/filesystem/src/path.cpp:918 #1 0x00000000100491b0 in boost::filesystem::path::codecvt () at ../libs/filesystem/src/path.cpp:911 #2 0x000000001004aa3c in boost::filesystem::path::wstring (this=0x3ffffffff5c8) at ../boost/filesystem/path.hpp:386 #3 0x000000001004a540 in boost::filesystem::detail::unique_path (model=..., ec=0x0) at ../libs/filesystem/src/unique_path.cpp:113 #4 0x00000000100238c4 in boost::filesystem::unique_path (p=...) at ../boost/filesystem/operations.hpp:544 #5 0x00000000100200cc in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ../libs/filesystem/test/operations_test.cpp:118 #6 0x00000000100201fc in _GLOBAL__sub_I__Z8cpp_mainiPPc () at ../libs/filesystem/test/operations_test.cpp:2034 #7 0x000000001004d444 in __libc_csu_init () #8 0x00003fffb7c8e1ec in generic_start_main (main=0x1003173c , argc=, argv=0x3ffffffffa68, auxvec=0x3ffffffffb10, init=0x1004d3b0 <__libc_csu_init>, rtld_fini=, stack_end=, fini=) at ../csu/libc-start.c:246 #9 0x00003fffb7c8e458 in __libc_start_main (argc=, argv=, ev=, auxvec=, rtld_fini=, stinfo=, stack_on_entry=) at ../sysdeps/unix/sysv/linux/powerpc/libc-start.c:93 #10 0x0000000000000000 in ?? () (gdb) p loc $25 = (const std::locale &) @0x3ffffffff418: {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0x100790f0, static _S_classic = 0x3fffb7fae0b8 <(anonymous namespace)::c_locale_impl>, static _S_global = 0x3fffb7fae0b8 <(anonymous namespace)::c_locale_impl>, static _S_categories = 0x3fffb7f92cb8 <__gnu_cxx::category_names>, static _S_once = 0} (gdb) p path_locale $26 = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, M_impl = 0x0, static _S_classic = 0x3fffb7fae0b8 <(anonymous namespace)::c_locale_impl>, static _S_global = 0x3fffb7fae0b8 <(anonymous namespace)::c_locale_impl>, static _S_categories = 0x3fffb7f92cb8 <__gnu_cxx::category_names>, static _S_once = 0} So, the question is: why path_locale has not been initialized ? and why this happens in PPC/LE and not elsewhere ? I'm not an expert in C++ and need help. Thanks/Regards Tony" Tony Reix Boost 1.54.0 9642 Possible race condition in boost::interprocess::message_queue creation interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga new 2014-02-07T14:50:29Z 2014-02-07T14:50:29Z "Dear folks, I am trying to debug sporadic access violations that occur inside a boost::interprocess message queue. (access violation reading an address in the shared memory region). Environment: boost 1.54, VC++2010. Occurs in both Debug & Release builds. It always occurs on or about line 854 (in case of reception) in message_queue.hpp: Comments were added by me recvd_size = top_msg.len; // top_msg points to invalid location Or line 756 (in case of sending) BOOST_ASSERT(free_msg_hdr.priority == 0); // free_msg_hdr points to invalid location Please see this S/O link for the entire question, plus sample code that reproduces the problem for me: [http://stackoverflow.com/questions/21628306/boostinterprocess-message-queue-race-condition-on-creation] " namezero@… Boost 1.54.0 9647 BOOST_MPL_ASSERT_RELATION fails to properly handle unsigned types mpl Boost 1.54.0 To Be Determined Bugs Aleksey Gurtovoy new 2014-02-09T21:00:37Z 2015-04-04T21:29:55Z "boost/integer_traits.hpp contains the following {{{ template<> class integer_traits : public std::numeric_limits, public detail::integer_traits_base { }; }}} Problem is that, at least on Clang ULONG_MAX resolves to (through ) to be {{{ #define ULONG_MAX (__LONG_MAX__ *2UL+1UL) }}} But when __LONG_MAX__ resolves to long and the rules of arithmetic promotion result in the expression __LONG_MAX__ *2UL+1UL being a long rather than unsigned long. This causes some funky behavior in cases like: {{{ BOOST_MPL_ASSERT_RELATION( (boost::integer_traits::const_max), >, (boost::integer_traits::const_max) ); }}} which fails to compile with ""Non-type template argument evaluates to 4294967295, which cannot be narrowed to type 'long'" Robert Ramey Boost 1.54.0 9649 boost_interprocess, Win32: apps built with boost <1.54 remove temp files from apps >=1.54 (and vice versa) interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga new 2014-02-10T17:47:06Z 2014-02-10T21:34:48Z "In boost 1.54, the format of the interprocess temporary file name changed (previously something like `20140205173952.047159`, now like `1391618455`). Unfortunately, this means that the ""clean out previous boot session directories"" recognizes the respective other filename as an ""old"" filename, even though it really isn't. Suppose you create an interprocess object with ""Kernel or Filesystem"" or persistence in an app A build against boost 1.54. You store something in it, but close it with the intention of re-opening it later (the desired persistence allows for that). But you happen to start an app B build against pre-1.54 in the meantime ... this cleans out the temp dir, incorrectly discarding the interprocess objects A created earlier. The attached patch changes the temp dir name if the ""new"" format is used." frank.richter@… Boost 1.54.0 9679 documentation about bidirectional iterator concept_check Boost 1.54.0 To Be Determined Bugs jsiek new 2014-02-18T13:34:57Z 2014-03-11T03:56:13Z "http://www.boost.org/doc/libs/1_55_0/doc/html/BidirectionalIterator.html states: Precondition of predecrement: ""i is incrementable (not off-the-end) and some dereferenceable iterator j exists such that i == ++j"" This can be interpreted that end() iterator can not be decremented, which according to other sources you can do. http://stackoverflow.com/a/5322234/104774 references ""ISO/IEC 14882:2003 C++ Standard 23.1.1/12 – Sequences"" " Stefaan Verstraeten Boost 1.54.0 9681 How Do I Remove C:\ProgramData\boost_Interprocess From My Computer interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga new 2014-02-19T04:17:34Z 2014-03-10T22:56:17Z "Hello, I've recently run malware scan and C:\ProgramData\boost_Interprocess keeps popping us as an issue, no matter how many times I try to clean and remove it. When I try to delete it from accessing the C: Drive, it says I do not have permission. It didn't use to be there before and I don't want it there now. Can someone please show me how to delete this from my computer? Thanks" anonymous Boost 1.54.0 9691 Unused parameter 'args' in the definition of the macro BOOST_PARAMETER_FUNCTION parameter Boost 1.54.0 To Be Determined Bugs Daniel Wallin new 2014-02-20T18:53:54Z 2014-02-20T18:53:54Z "In CGAL (www.cgal.org), usage of BOOST_PARAMETER_FUNCTION triggers several of such following warnings with recent g++ (4.8) and LLVM/clang: {{{ CGAL-4.4-Ic-126/include/CGAL/perturb_mesh_3.h:39:1: warning: unused parameter 'args' [-Wunused-parameter] BOOST_PARAMETER_FUNCTION( ^ /usr/local/include/boost/parameter/preprocessor.hpp:937:5: note: expanded from macro 'BOOST_PARAMETER_FUNCTION' BOOST_PARAMETER_FUNCTION_AUX( \ ^ /usr/local/include/boost/parameter/preprocessor.hpp:933:5: note: expanded from macro 'BOOST_PARAMETER_FUNCTION_AUX' BOOST_PARAMETER_FUNCTION_DEFAULT_LAYER(name, args, 0, 0, tag_namespace) ^ /usr/local/include/boost/parameter/preprocessor.hpp:911:5: note: expanded from macro 'BOOST_PARAMETER_FUNCTION_DEFAULT_LAYER' BOOST_PARAMETER_FUNCTION_DEFAULT_LAYER_AUX( \ ^ /usr/local/include/boost/parameter/preprocessor.hpp:899:21: note: expanded from macro 'BOOST_PARAMETER_FUNCTION_DEFAULT_LAYER_AUX' , Args const& args \ ^ }}} I have verified that indeed the parameter is not used, and I propose that '''patch''': {{{ diff --git a/include/boost/parameter/preprocessor.hpp b/include/boost/parameter/preprocessor.hpp index f1bda87..23ddbc4 100644 --- a/include/boost/parameter/preprocessor.hpp +++ b/include/boost/parameter/preprocessor.hpp @@ -896,7 +896,7 @@ struct funptr_predicate BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(name) \ ResultType BOOST_PARAMETER_FUNCTION_DEFAULT_NAME(name)( \ ResultType(*)() \ - , Args const& args \ + , Args const& \ , int \ BOOST_PARAMETER_FUNCTION_DEFAULT_ARGUMENTS( \ BOOST_PARAMETER_FUNCTION_DEFAULT_FUNCTION_ARG \ }}}" Laurent Rineau Boost 1.54.0 9704 b2: Compiler flavour has no flexibility for cross-compiling projects. build Boost 1.54.0 To Be Determined Bugs Steven Watanabe assigned 2014-02-24T20:39:19Z 2014-04-04T22:13:25Z "Hi, I've been trying hard, but it is annoying, didn't find it elsewhere and it could really be improved. I am building my project (i.e. all of my project tree) on 2 platforms: * Windows, * Linux, for 3 different platforms: * Windows * Linux IA32 * Linux ARM HF Now, whilst b2 subsystem is quite flexible in specifying different types of compilers, it is not so much when using the same type of compiler, but using different versions of it. I have managed to define it somehow, i.e. in my project_config.jam (@ home dir): {{{ if [ os.name ] = NT { using gcc : : : -std=c++11 ""-include cmath"" -Wdeprecated-declarations ; using gcc : armhf : arm-linux-gnueabihf-g++.exe : -std=c++11 ""-include cmath"" -Wdeprecated-declarations ; } if [ os.name ] = LINUX { using gcc : : : -std=c++11 ""-include cmath"" ; using gcc : armhf : /usr/bin/arm-linux-gnueabihf-g++ : -std=c++11 ""-include cmath"" -Wdeprecated-declarations ; } }}} But now, in every sub-project, where I'm moving files to a 'release' location, (* and whenever I need to specify copmiler-flavor specific configuration) I need to perform something like: {{{ install copy_binaries_to_release : target_names.. : linux:4.7:../../release/ windows:gcc-4.7.2-mingw:../../release/ armhf:../../release_armhf/ gcc-mingw-armhf:../../release/ ; }}} Is there a better way of doing it? If not, then the problem (and I guess a bug) is that b2 behaves differently on different platforms, somewhat lacks of mechanism to support what I need to do (and it's not really very uncommon). Problems: 1. Different toolset names when building on different OSes (and yes, I did try to specify a default flavor, but see Problem 2). || || command || toolset || flavor || || gcc XA32(linux) || b2 || gcc || 4.7 || || gcc XA32(win) || b2 || gcc-4.7.2-mingw || ? || || '''gcc armhf(linux)''' || '''b2 --toolset=gcc-armhf''' || '''gcc''' || '''armhf''' || || gcc armhf(win) || b2 --toolset=gcc-armhf target-os=linux || gcc-mingw-armhf || ? || Only gcc-armhf seems to achieve requested results. BUt the main issue it, that it is all different on different platforms, and both: armhf should produce compatible binaries. BTW: is there really a need to distinguish between e.g. Cygwin and MinGW flavours if they produce the same target with the same version of compiler? If one builds from Cygwin and MinGW for the same platform: resulting executables should be compatible for the same target, so only in 'bin' build directory they can really be different (if needed), but it is unlikely that one builds both of them (target:gcc version) at the same time (like it is unlikely that I build under windows and linux at the same time). 2. It is not possible to specify a flavor for GCC (by explicitly giving it a name and compiler location) - because b2 is performing a version check. This check either fails, or if it does not (and default version is used) - automatic build-platform-specific flavor value is created behind the control) - probably because b2 is trying to be too clever at this. Couldn't it leave it alone, and use flavor that was explicitly specified? I really wish that I could specify above: {{{ using gcc : 4.7 : ... ; using gcc : armhf : ... ; }}} and wouldn't have to create links or worry about the build system changing/ coming up with a flavor by concatenating target name (e.g. on {{{ b2 --toolset=gcc-armhf }}} with g++ (and having to hack/create symlinks to match this etc.) - It should just accept what I specify, and use it 'as-is' (and if someone does something stupid - let them fail and fix it). There could also be a support for something like: {{{ import toolset ; if [ toolset.name ] == gcc { if [ toolset.flavor ] == flav_1 { } } # and my verbosive Jamfiles could be re-written to something like: local gcc_flavor = [ toolset.flavor ] ; install copy_binaries_to_release : target_names.. : gcc,4.7:../../release gcc,armhf:../../release_$(gcc_flavor) # or even to: gcc:../../release_$(gcc_flavor) ; }}} With a bit of guidance / advice from someone, who knows the build system well - I'm happy to help with implementing the above. Thanks, LUkasz. (BTW: what is the best component for build system / tools?) " lukasz.forynski@… Boost 1.54.0 9726 transform_iterator does not compile on SUN with Cstd STL iterator Boost 1.54.0 To Be Determined Bugs jeffrey.hellrung reopened 2014-03-01T11:11:57Z 2014-04-08T04:44:36Z "boost/iterator/transform_iterator.hpp:49 {{{ ... typename std::iterator_traits::reference ... }}} should read: {{{ ... typename boost::detail::iterator_traits::reference ... }}} otherwise it fails to compile on SUN with old Cstd STL that does not have proper iterator_traits<>. All other classes already use boost::detail::iterator_traits<>" Yevgeniy Shaporynskyy Boost 1.54.0 9742 for_each causes funny behavior in phoenix V3 expressions phoenix Boost 1.54.0 To Be Determined Bugs Thomas Heller new 2014-03-05T08:06:53Z 2014-04-07T16:43:57Z "Using phoenix::for_each in a Phoenix expression produces a strange behavior, which seems to be reverse execution of the comma-separated expressions. This does NOT happen when you include Phoenix V2 from the spirit directory. Sample Code: (Full code attached) {{{ std::vector v{1,2}; (std::cout << phx::val(""(""), phx::for_each(arg1, phx::lambda[std::cout << arg1]), std::cout << phx::val("")""))(v); }}} This originally showed up for me when using phoenix expressions in spirit semantic actions, discussed here: http://boost.2283326.n4.nabble.com/Phoenix-V3-for-each-or-lambda-seem-to-be-ruining-qi-semantic-actions-tp4659691.html" Chromatix Boost 1.54.0 9830 memory leak in time_duration date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2014-04-02T18:27:53Z 2014-04-10T15:10:44Z "Hi folks, this is a leak i've found compiling this very single line: boost::posix_time::time_duration td(1,0,0,0); cout << td; valgrind reports the following leak: ==16902== 25 bytes in 1 blocks are possibly lost in loss record 21 of 29 ==16902== at 0x40290AC: operator new(unsigned int) (vg_replace_malloc.c:313) ==16902== by 0x455BB54: std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator const&) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19) ==16902== by 0x455CC72: std::string::_Rep::_M_clone(std::allocator const&, unsigned int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19) ==16902== by 0x455CD10: std::string::reserve(unsigned int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19) ==16902== by 0x455CF8C: std::string::append(char const*, unsigned int) (in /usr/lib/i386-linux-gnu/libstdc++.so.6.0.19) ==16902== by 0x8079DE9: boost::date_time::time_facet > >::time_facet(unsigned int) (in /home/marcos/release/sandbox/chutaygol) ==16902== by 0x8084086: std::basic_ostream >& boost::posix_time::operator<< >(std::basic_ostream >&, boost::posix_time::time_duration const&) I hope you find a bug with the help of my report Marcos Mayorga " mm@… Boost 1.54.0 9841 BOOST_HAS_INTPTR_T is undocumented. config Boost 1.54.0 To Be Determined Bugs John Maddock new 2014-04-06T20:22:02Z 2018-07-31T18:34:11Z Please document BOOST_HAS_INTPTR_T. anonymous Boost 1.54.0 9850 ICL size() is inconsistent with iterators ICL Boost 1.54.0 To Be Determined Bugs Joachim Faulhaber new 2014-04-08T00:07:25Z 2014-04-08T00:07:25Z Currently size() of an ICL container is not consistent with std::distance( cont.begin(), cont.end() ), which makes it not a model of the standard container concept and is a source of confusion. Matt Calabrese Boost 1.54.0 9905 Compile error in /libs/utility/assert_test.cpp utility Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2014-04-14T19:24:00Z 2014-04-23T11:01:48Z "Compiling this file using clang++ (from Apple LLVM version 5.1) with c++11 features enabled, fails. Command line: ""clang++"" -x c++ -std=c++11 -stdlib=libc++ -O3 -O3 -finline-functions -Wno-inline -Wall -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I""../../.."" -c -o ""/tmp/boost/bin.v2/libs/utility/test/assert_test.test/clang-darwin-4.2.1/release/link-static/threading-multi/assert_test.o"" ""../assert_test.cpp"" Error: ../assert_test.cpp:86:13: error: out-of-line definition of 'assertion_failed_msg' does not match any declaration in namespace 'boost' Solution: Replace void boost::assertion_failed_msg([SNIP]) { [SNIP] } with namespace boost { void assertion_failed_msg([SNIP]) { [SNIP] } } " chris.cooper@… Boost 1.54.0 9925 operators_test.cpp test_left_shiftable is failing due to invalid parameters utility Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2014-04-18T18:28:38Z 2014-06-26T21:59:15Z "In libs/utility/operators_test.cpp, test_left_shiftable is checking whether one random value shifted by a second random value, is the same whether called directly or via the Wrapper2<> and Wrapper1<> template classes. However, according to C++ ISO specification (INCITS/ISO/IEC 14882-2011\[2012\]), section 5.8.2 (which I don't have, but is referenced at http: / / msdn.microsoft.com/en-us/library/336xbhcz.aspx), left-shifting a signed value has undefined behavior (which is much more unpleasant than implementation-defined behavior) if the result doesn't fit in an unsigned value of the same size. With the clang compiler that comes with Xcode 5.1 (""Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)""), the results of such left-shifts are seemingly random - this code: {{{ long b1 = 48271; int s = 1291394886; std::cout << (b1 << s) << std::endl; std::cout << (b1 << s)<< std::endl; std::cout << (b1 << s)<< std::endl; }}} prints three different numbers." chris.cooper@… Boost 1.54.0 9944 Regression test relies on undefined compiler behavior utility Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2014-04-23T18:24:48Z 2014-06-26T21:54:56Z "libs/utility/numeric_traits_test.cpp generates values complement_traits::min using a clever recursive template, but that template relies on left-shifting a negative value, and according to the C++11 standard that’s a no-no (“the behavior is undefined”) which means it’s not a constant expression, which means it can’t be calculated at compile time, which means the BOOST_STATIC_ASSERT in line 332 won’t compile, saying “static_assert expression is not an integral constant expression” (I’m using clang++). The only use for the clever templates, as the comment in the file says, is for ""platforms without support"" so my proposed fix is: #ifndef BOOST_NO_LIMITS template struct complement_traits { BOOST_STATIC_CONSTANT(Number, min = std::numeric_limits::min()); BOOST_STATIC_CONSTANT(Number, max = std::numeric_limits::max()); }; #else [SNIP] All of the other template definitions for complement_traits, complement_traits_aux, etc. #endif " chris.cooper@… Boost 1.54.0 9945 Regression test using random number generator incorrectly utility Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2014-04-23T18:35:05Z 2014-06-26T21:48:37Z "libs/utility/operators_test.cpp loops 1000 times, running a variety of tests on seemingly random values. However, since the randomizer (boost::minstd_rand) is instantiated inside the loop, it is re-seeded for each loop, meaning it runs the test 1000x with the exact same values each time. The randomizer must be instantiated outside the loop. " chris.cooper@… Boost 1.54.0 9991 WConversion issue in json_parser_write.hpp property_tree Boost 1.54.0 To Be Determined Bugs Sebastian Redl assigned 2014-05-02T06:21:11Z 2016-02-10T13:04:37Z "File Name: 1_54_0/boost/property_tree/detail/json_parser_write.hpp There is a severe problem with the -Wconversion issue in the json_parser_write.hpp Problematic code: else { const char *hexdigits = ""0123456789ABCDEF""; typedef typename make_unsigned::type UCh; unsigned long u = (std::min)(static_cast( static_cast(*b)), 0xFFFFul); ''' int d1 = u / 4096; u -= d1 * 4096; int d2 = u / 256; u -= d2 * 256; int d3 = u / 16; u -= d3 * 16; int d4 = u;''' result += Ch('\\'); result += Ch('u'); result += Ch(hexdigits[d1]); result += Ch(hexdigits[d2]); result += Ch(hexdigits[d3]); result += Ch(hexdigits[d4]); } Either we need to do explicit static cast to suppress the Conversion Warning. When we turn on the -Wconversion as well as -Werror both together, which is good practice for production ready code. compiler Just dont allow this to compile. the above need to be fixed." abhi.california@… Boost 1.54.0 10005 erf_inv_initializer crashes under valgrind math Boost 1.54.0 To Be Determined Bugs John Maddock reopened 2014-05-04T00:08:46Z 2017-10-31T15:44:57Z "It was reported before on the mailing list: http://lists.boost.org/boost-users/2012/08/75711.php and I assume it's because valgrind doesn't support long doubles: https://bugs.kde.org/show_bug.cgi?id=197915 Somehow erfc_inv is called in this place and the argument is then found to be 0: {{{ #!cpp // Some compilers choke on constants that would underflow, even in code that isn't instantiated // so try and filter these cases out in the preprocessor: #if LDBL_MAX_10_EXP >= 800 if(static_cast(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-800)) != 0) boost::math::erfc_inv(static_cast(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-800)), Policy()); }}} So an exception is thrown during initialization. While it may not be a bug, valgrind is extremely useful and it would be nice to have a workaround. I don't understand why erf_inv and erfc_inv are called with these arguments in `erf_inv_initializer<>::init::do_init()`, so I'm not sure what workaround is safe. Here is a full traceback: {{{ #0 0x00000036fb435c39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00000036fb437348 in __GI_abort () at abort.c:89 #2 0x00000036ff860f85 in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95 #3 0x00000036ff85eee6 in __cxxabiv1::__terminate (handler=) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:38 #4 0x00000036ff85ef13 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48 #5 0x00000036ff85f13f in __cxxabiv1::__cxa_throw (obj=0x526e490, tinfo=, dest=) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:84 #6 0x0000000004cb1541 in boost::throw_exception (e=...) at /usr/include/boost/throw_exception.hpp:67 #7 0x0000000004cb7f28 in boost::math::policies::detail::raise_error ( function=0x4d2d338 ""boost::math::erfc_inv<%1%>(%1%, %1%)"", message=0x4d1bf8e ""Overflow Error"") at /usr/include/boost/math/policies/error_handling.hpp:95 #8 0x0000000004cb7f98 in boost::math::policies::detail::raise_overflow_error (function=, message=) at /usr/include/boost/math/policies/error_handling.hpp:211 #9 0x0000000004cdf17e in raise_overflow_error, boost::math::policies::promote_double, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> > (message=0x0, function=) at /usr/include/boost/math/policies/error_handling.hpp:515 #10 boost::math::erfc_inv, boost::math::policies::promote_double, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> > (z=0, z@entry=0, pol=...) at /usr/include/boost/math/special_functions/detail/erf_inv.hpp:383 #11 0x0000000004cdfaae in boost::math::detail::erf_inv_initializer, boost::math::policies::promote_double, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> >::init::do_init () at /usr/include/boost/math/special_functions/detail/erf_inv.hpp:347 #12 0x0000000004cda34b in init (this=) at /usr/include/boost/math/special_functions/detail/erf_inv.hpp:332 #13 __static_initialization_and_destruction_0 ( __initialize_p=__initialize_p@entry=1, __priority=__priority@entry=65535) at /usr/include/boost/math/special_functions/detail/erf_inv.hpp:367 #14 0x0000000004cda463 in _GLOBAL__sub_I_fit.cpp(void) () at ../../fityk/fit.cpp:643 #15 0x00000036fb00f2ea in call_init (l=, argc=argc@entry=1, argv=argv@entry=0xffefffc48, env=env@entry=0xffefffc58) at dl-init.c:82 #16 0x00000036fb00f3d3 in call_init (env=, argv=, argc=, l=) at dl-init.c:34 #17 _dl_init (main_map=0x36fb221168, argc=1, argv=0xffefffc48, env=0xffefffc58) at dl-init.c:130 #18 0x00000036fb00122a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2 }}}" Marcin Wojdyr Boost 1.54.0 10064 generate_uniform_real may go into infinite loop random Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2014-05-21T12:24:03Z 2014-08-07T23:43:39Z "See uniform_real_distribution.hpp: template T generate_uniform_real( Engine& eng, T min_value, T max_value, boost::mpl::true_ /** is_integral */) { for(;;) { typedef T result_type; typedef typename Engine::result_type base_result; result_type numerator = static_cast(subtract()(eng(), (eng.min)())); result_type divisor = static_cast(subtract()((eng.max)(), (eng.min)())) + 1; BOOST_ASSERT(divisor > 0); BOOST_ASSERT(numerator >= 0 && numerator <= divisor); T result = numerator / divisor * (max_value - min_value) + min_value; if(result < max_value) return result; } } Please add a ""BOOST_ASSERT(max_value > min_value);"". If one declares something like boost::random::mt19937 mt; boost::random::uniform_real_distribution dist(0.0, 0.0); dist(mt) makes generate_uniform_real go into an infinite loop. Thank you and best regards." Markus Faerber Boost 1.54.0 10096 Symlink needs to check SEARCH as well as LOCATE build Boost 1.54.0 To Be Determined Bugs Vladimir Prus new 2014-06-05T18:46:56Z 2014-06-06T22:46:41Z "AMDG On 06/02/2014 02:31 PM, Kcarr wrote: > I have found the cause of my problem but I am unsure of what it was added. > In 1.54 in the virtual-target.jam file in the rule actualize-location > (target) there was an added check at the beginning for scanner-target. > > if $(self.action) &&* ! $(is-scanner-target)* > > This new code causes LOCATE var to never be set. > > > This seems to be a bug in the new build with using LOCATE in the > symlink.jam file when it shouldnt be used and instead SEARCH var > should be used. Symlink code needs to be update in ln rule to look in SEARCH as well as LOCATE " anoynamous Boost 1.54.0 10103 setprecision(0) does displays too many digits of a float128 multiprecision Boost 1.54.0 To Be Determined Bugs John Maddock assigned 2014-06-07T12:38:29Z 2015-10-14T14:40:49Z "setprecision(0) is not honored for float128. Compare the display of a double and a float128 (default and fixed): {{{ 0.1 0.123400000000000000000000000000000006 0 0.123400000000000000000000000000000006 }}} This is produced with {{{ #include #include int main() { double x = 0.1234; boost::multiprecision::float128 y = 0.1234Q; std::cout << std::setprecision(0) << x << "" "" << y << ""\n""; std::cout << std::fixed << x << "" "" << y << ""\n""; } }}} " Charles Karney Boost 1.54.0 10127 coordinate_matrix sort() fails on to std::swap uBLAS Boost 1.54.0 Boost 1.58.0 Bugs Gunter new 2014-06-16T08:56:57Z 2014-11-26T15:16:35Z "Orginally posted here: http://stackoverflow.com/questions/24228772/c11-compatibility-of-sparse-matrix-implementations The following program does not compile with gcc 4.8 or clang 3.4 when --std=c++11 is set: {{{ #include #include using namespace boost::numeric::ublas; int main(int argc, char** argv) { coordinate_matrix m1(100, 100, 100); for (int i = 0; i < 100; i++) m1.insert_element(i,i,i); compressed_matrix m2(m1, 100); } }}} We can solve the issue by providing a swap() routine: {{{ #include #include using namespace boost::numeric::ublas; namespace std { template inline void swap (boost::numeric::ublas::index_triple i1, boost::numeric::ublas::index_triple i2) { i1.swap (i2); } } int main(int argc, char** argv) { coordinate_matrix m1(100, 100, 100); for (int i = 0; i < 100; i++) m1.insert_element(i,i,i); compressed_matrix m2(m1, 100); } }}} I am not an expert C++ template programmer, so I am unable to decide what is the cause here, but the C++ reference on std::sort explicitly mentions a swap() method." anonymous Boost 1.54.0 10142 Range lib type_erased.cpp needs /bigobj option for mcvc and intel-win range Boost 1.54.0 To Be Determined Bugs Neil Groves assigned 2014-06-23T11:37:00Z 2014-08-25T21:12:23Z "Build of range lib on debug mode fails with msvc and icl on type_erased.cpp file. /bigobj option should be added to Jamfile.v2 # ../../../bjam --toolset=intel address-model=364 . . . file ..\..\..\bin.v2\libs\range\test\type_erased.test\msvc-12.0\debug\address-model-64\link-static\threading-multi\adaptor_test\type_erased.obj.rsp ""adaptor_test\type_erased.cpp"" -Fo""..\..\..\bin.v2\libs\range\test\type_erased.test\msvc-12.0\debug\address-model-64\link-static\threading-multi\adaptor_test\type_erased.obj"" -TP /Z7 /Od /Ob0 /W3 /GR /MDd /Zc:forScope /Zc:wchar_t /favor:blend /wd4675 /EHs -c -DBOOST_ALL_NO_LIB=1 -DBOOST_TEST_NO_AUTO_LINK=1 ""-I..\..\.."" compile-c-c++ ..\..\..\bin.v2\libs\range\test\type_erased.test\msvc-12.0\debug\address-model-64\link-static\threading-multi\adaptor_test\type_erased.obj call ""C:\Program Files (x86)\microsoft visual studio 12.0\vc\vcvarsall.bat"" x86_amd64 >nul cl /Zm800 -nologo @""..\..\..\bin.v2\libs\range\test\type_erased.test\msvc-12.0\debug\address-model-64\link-static\threading-multi\adaptor_test\type_erased.obj.rsp"" type_erased.cpp C:\Users\. . .\boost_1_55_0\libs\range\test\adaptor_test\type_erased.cpp : fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj On Intel Windows 13.1, 14,0, 15.0: # ../../../bjam --toolset=intel address-model=64 . . . type_erased.cpp ..\..\..\bin.v2\libs\range\test\type_erased.test\intel-win\debug\link-static\threading-multi\adaptor_test\type_erased.obj"": catastrophic error: too many segments in object file compilation aborted for adaptor_test/type_erased.cpp (code 4) " Elmira Semenova Boost 1.54.0 10163 Boost.Signal2 performs too many locks in a multi-threaded environment where the life cycle of the source and target are the duration of the program signals2 Boost 1.54.0 To Be Determined Bugs Frank Mori Hess new 2014-06-30T19:31:50Z 2014-06-30T19:31:50Z "Boost.Signal2 requires that the receiver be a shared_ptr, or a weak_ptr. If the life cycle of the receiver is the length of the program (ie, created rather than new'ed as a global object), there is no need to reference count the pointer. On Linux/X86_64, the act of making it a shared pointer (to protect it from going away underneath us) causes an atomic increment and decrement of the reference counter, which causes high CPU utilization in the atomic lock/unlock when performing lots of signals in parallel across multiple threads. It would be nice to have a non-shared_ptr interface to eliminate the refrence count bottle neck, as the management of the pointer is higher overhead than actually doing the signal, in many cases. This was found with a program that has multiple threads signalling very small objects at a very high rate, and looking at the underlying system with both gprof and pprof. In our test case, 48% of the gprof time was spent in the atomic lock/unlock/test code. Because of the proprietary nature of our code, I can't attach a sample." Dave Gotwisner Boost 1.54.0 10181 Typo in Boost Pool Docs pool Boost 1.54.0 To Be Determined Bugs Chris Newbold new 2014-07-07T09:01:21Z 2014-07-07T09:03:16Z "http://www.boost.org/doc/libs/1_55_0/libs/pool/doc/html/boost_pool/pool/interfaces.html ""An ordered pool maintains it's free list"" should be ""An ordered pool maintains its free list""" Q309185@… Boost 1.54.0 10194 basic_xml_grammar parses class_id failed serialization Boost 1.54.0 To Be Determined Bugs Robert Ramey new 2014-07-14T16:02:00Z 2014-12-05T04:19:17Z "I found this issue when I used xml wserialization to save config in polymorphic case. After debugging, I found basic_xml_grammar failed to parse ""class_id"" under some conditions. There are some info for this issue: 1. Compile with NDEBUG, without NDEBUG no this issue. 2. basic_xml_grammar works fine. 3. Compile with GCC (when compile with VS2010, no this issue) Detail of GCC: gcc -v Using built-in specs. Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux Thread model: posix gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) I trimmed the test code: #include #include #include using namespace boost::archive; int main() { std::wifstream ifs(""./dashboard.xml""); if (ifs) { basic_xml_grammar xmlGrammer; xmlGrammer.parse_start_tag(ifs); std::wcout << ""rv.class_id="" << xmlGrammer.rv.class_id << std::endl; } else { std::cout << ""File doesn't exist."" << std::endl; } return 0; } and the dashboard.xml is very simple with only one line: " Andrew Xu Boost 1.54.0 10271 It is not possible to build BOOST ptr_container without RTTI except the compiler option BOOST_DISABLE_ASSERT is used. ptr_container Boost 1.54.0 To Be Determined Bugs Thorsten Ottosen new 2014-07-29T11:54:36Z 2014-07-29T11:54:36Z The BOOST_DISABLE_ASSERT define is necessary to build without RTTI ,because there is bug inside the boost_ptr_container (reversible_ptr_container.hpp, clone_allocator.hpp). The implementation uses the typeid(..) function inside a BOOST_ASSERT. Unfortunately it does not care about the RTTI setting (enabled or not). I had this problem in a debug build. Christoph Perick Boost 1.54.0 10312 uBLAS have missing accessors in some expressions uBLAS Boost 1.54.0 Boost 1.57.0 Bugs Gunter new 2014-08-05T08:03:52Z 2014-08-05T08:03:52Z "For example, these lines are missing from the class `matrix_binary_scalar1`: {{{ public: // around line 2925 in `matrix_expression.hpp` // Expression accessors BOOST_UBLAS_INLINE const expression1_closure_type &expression1 () const { return e1_; } BOOST_UBLAS_INLINE const expression2_closure_type &expression2 () const { return e2_; } }}} Without these lines is impossible to access to the expression template built by ""d*matrix<...>"". where d is a scalar. Other similar classes also miss this, in my opinion all this feature should be in based class. This is most likely an oversight" correaa@… Boost 1.54.0 10452 std::vector does not work with rolling_mean accumulator Boost 1.54.0 To Be Determined Bugs Eric Niebler new 2014-09-03T18:57:30Z 2014-09-03T18:57:30Z "See https://stackoverflow.com/questions/25641378/boostaccumulator-stdvector-does-not-work-with-rolling-mean " Eric Niebler Boost 1.54.0 10485 heap-use-after-free using C++11 range loop filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes assigned 2014-09-09T16:14:17Z 2014-10-26T15:35:40Z "Repro code: {{{ #include #include int main() { boost::filesystem::path dir(""/""); for (char c : dir.filename().string()) printf(""%c\n"", c); } }}} I know if I want to fix it I should store dir.filename().string() in a variable (and it works), but in this case it will either crash application or print garbage. Here's what Clang Address Sanitizer prints: {{{ ================================================================= ==12324==ERROR: AddressSanitizer: heap-use-after-free on address 0x60300000ef50 at pc 0x48448a bp 0x7fff08f73990 sp 0x7fff08f73988 READ of size 8 at 0x60300000ef50 thread T0 #0 0x484489 in std::string::size() const /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:716 #1 0x484489 in ~path /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:636 #2 0x484489 in main /run/media/constantine/Space/Boost_1.54.0_Bug_Repro_09.07.2014/main.cpp:6 #3 0x7f0679cd0d64 in __libc_start_main (/lib64/libc.so.6+0x21d64) #4 0x483f1c in _start (/run/media/constantine/Space/Boost_1.54.0_Bug_Repro_09.07.2014/Debug/app+0x483f1c) 0x60300000ef50 is located 0 bytes inside of 26-byte region [0x60300000ef50,0x60300000ef6a) freed by thread T0 here: #0 0x46e7b9 in operator delete(void*) (/run/media/constantine/Space/Boost_1.54.0_Bug_Repro_09.07.2014/Debug/app+0x46e7b9) #1 0x4843f2 in std::string::_M_rep() const /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:249 #2 0x4843f2 in ~basic_string /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:539 #3 0x4843f2 in ~basic_string /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:539 #4 0x4843f2 in ~path /usr/include/boost/filesystem/path.hpp:55 #5 0x4843f2 in main /run/media/constantine/Space/Boost_1.54.0_Bug_Repro_09.07.2014/main.cpp:6 #6 0x7f0679cd0d64 in __libc_start_main (/lib64/libc.so.6+0x21d64) previously allocated by thread T0 here: #0 0x46e4b9 in operator new(unsigned long) (/run/media/constantine/Space/Boost_1.54.0_Bug_Repro_09.07.2014/Debug/app+0x46e4b9) #1 0x7f067a3411d8 (/lib64/libstdc++.so.6+0xbe1d8) #2 0x9 SUMMARY: AddressSanitizer: heap-use-after-free /usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.3/../../../../include/c++/4.8.3/bits/basic_string.h:716 std::string::size() const Shadow bytes around the buggy address: 0x0c067fff9d90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9da0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9db0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9dc0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9dd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x0c067fff9de0: fa fa fa fa fa fa fa fa fa fa[fd]fd fd fd fa fa 0x0c067fff9df0: 00 00 00 02 fa fa 00 00 00 03 fa fa 00 00 00 02 0x0c067fff9e00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9e10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9e20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c067fff9e30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 ASan internal: fe ==12324==ABORTING }}}" iamvfx@… Boost 1.54.0 10497 Cannot assign filter_range to any_range (gcc only) range Boost 1.54.0 To Be Determined Bugs Neil Groves new 2014-09-12T11:51:56Z 2015-02-02T01:41:12Z "When trying to assign a filter_range to a suitable any_range, the attached source code fails to compile under g++ (v4.8.3), but does compile under clang++ (v3.4). From the error messages I get, it seems that the error triggers when trying to use the default constructor of filter_range with Predicate = lambda and an Iterator = non-default-constructible iterator." Alex Puchades Boost 1.54.0 10577 ‘num_synchronizations’ declared in scope graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2014-10-02T02:01:48Z 2014-10-12T13:53:53Z "In 1_54_0/boost/graph/distributed/detail/queue.ipp there is the following: template bool BOOST_DISTRIBUTED_QUEUE_TYPE::do_synchronize() const { #ifdef PBGL_ACCOUNTING ++num_synchronizations; #endif .... } While editing a PBGL example to use Eager Dijkstra over Delta-Stepping, the following error was produced during compilation: In file included from /boost_1_54_0/boost/graph/distributed/queue.hpp:273:0, from /boost_1_54_0/boost/graph/distributed/breadth_first_search.hpp:20, from /boost_1_54_0/boost/graph/breadth_first_search.hpp:404, from /boost_1_54_0/boost/graph/dijkstra_shortest_paths.hpp:21, from /parallel-bgl-0.7.0/libs/graph_parallel/test/distributed_shortest_paths_test.cpp:15: /boost_1_54_0/boost/graph/distributed/detail/queue.ipp: In member function ‘virtual bool boost::graph::distributed::distributed_queue::do_synchronize() const’: /boost_1_54_0/boost/graph/distributed/detail/queue.ipp:143:5: error: ‘num_synchronizations’ was not declared in this scope ++num_synchronizations; I couldn't locate num_synchronizations anywhere. I could undefine PBGL_ACCOUNTING or just comment out the num_sync increment field. I don't see this as having been fixed/removed in any other boost versions (checked 1_56_0). Not a serious problem clearly unless accurate accounting is wanted. " M. Harper Langston Boost 1.54.0 10606 kqueue broken on FreeBSD asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2014-10-05T03:38:55Z 2014-10-05T03:42:51Z "This ASIO commit 660e9fe30204e0ada0d1fd40c48015810d2647dc broke things pretty badly on FreeBSD. The ""server3"" example, for instance, doesn't ever correctly accept and handle a new connection." elan@… Boost 1.54.0 10616 tagged_ptr assumes zero leading bits lockfree Boost 1.54.0 To Be Determined Bugs timblechmann new 2014-10-05T16:32:01Z 2016-12-11T11:35:51Z "I've noticed that boost::lockfree::queue does not work on the OSv operating system, crashing when used. After some investigation, I discovered the problem: lockfree::queue uses tagged_ptr, and that, when compiled on x86_64, uses tagged_ptr_ptrcompression which assumes that pointers always start with 16 zero bits. The thing is - the x86_64 standard does *not* guarantee that pointers must start with all zero bits. It just guarantees that pointers are so-called ""canonical"", meaning that the first 16 (usually) bits are either all 0, or all 1. But they *can* be all 1-s, and indeed in OSv, malloc()ed memory has addresses starting with all 1s. By the way, in Linux, kernel-space memory (as opposed to user-space memory) also has such addresses. But tagged_ptr::extract_ptr() assumes that the leading bits of pointers are always zero - which happens to be true on Linux's user-space memory but is not generally guaranteed by x86_64 (and isn't true on OSv). I'm not sure what to suggest as a fix. One not-really-safe-but-will-probably-work-in-practice option is to choose to fill the pointer with 0 or 1 bits depending on the 47th bit. Another not-quite-foolproof option is to assume that in one program all pointers will start with the same prefix (all 0 or all 1), so calculate this prefix once at runtime and then use it every time." nyh@… Boost 1.54.0 10624 win_object_handle_service race condition on destroy asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2014-10-07T04:38:51Z 2014-10-07T04:38:51Z "I caught a random crash in our code base that appears to be due to a race condition in win_object_handle_service. Reproduction steps are essentially just: boost::asio::windows::object_handle* handle = new boost::asio::windows::object_handle(service, hEvent);[[BR]] handle->async_wait(...);[[BR]] SetEvent(hEvent);[[BR]] delete handle; The race condition occurs in win_object_handle_service::wait_callback. The last few lines of code in this method are: lock.unlock();[[BR]] impl->owner_->io_service_.post_deferred_completions(completed_ops); The problem is that while the delete of the handle waits on the same lock as the wait_callback, the call into impl->owner_->io_service_ happens outside the scope of that lock. Hence there is a race condition that can trigger under multi-threaded/heavy load scenarios where the delete may execute before the call to >io_service_.post_deferred_completions happens lock.unlock();[[BR]] <----- delete executes here[[BR]] impl->owner_->io_service_.post_deferred_completions(completed_ops); This leaves impl->owner_ pointing at deleted/unintialized memory, and hence the post_deferred_completions call randomly crashes. I can repro this 100% of the time by just adding a Sleep to emulate load: lock.unlock();[[BR]] Sleep(1000);[[BR]] impl->owner_->io_service_.post_deferred_completions(completed_ops);" Rowan Wyborn Boost 1.54.0 10690 Boost SSL protocols asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2014-10-23T15:35:49Z 2016-08-16T13:47:14Z "Hello, I use Boost SSL socket. I want to disable the TLS security protocol so I use set_options like this: m_context.set_options(ssl::context::no_tlsv1); But it only disables TLSv1, not TLSv1.1 and TLSv1.2. I looked at the boost source code and I saw this : BOOST_ASIO_STATIC_CONSTANT(long, no_tlsv1 = SSL_OP_NO_TLSv1); Why SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 are not wrapped ? Thx" anonymous Boost 1.54.0 10715 Race condition in codecvt() persists in VC++ filesystem Boost 1.54.0 To Be Determined Bugs Beman Dawes new 2014-10-29T15:51:13Z 2016-06-27T13:45:50Z "This is a restatement of Ticket #6320, which is still causing me problems; specifically when path objects are used in a DLL with multithreading. Environment is VC++11, although I believe it is also applicable to VC++12. Both versions have documentation warnings against using static local variables in a multithreaded application. Demo code: A DLL containing the simple function: {{{ // exported function. extern ""C"" DLL_API void fnDll( void ) { boost::filesystem::path p(""test_path""); return; } }}} The main program creates threads to load the DLL and call this function: {{{ void thread_func() { boost::this_thread::sleep(boost::posix_time::milliseconds(100)); HINSTANCE hLib = LoadLibraryA(""Dll.dll""); if (hLib != NULL) { // Resolve test function in DLL FARPROC f = GetProcAddress(hLib,""fnDll""); if (f) f(); // call it } } int main(int argc, _TCHAR* argv[]) { boost::thread_group tg; for(int i = 0; i < 2; i++) tg.create_thread(thread_func); tg.join_all(); return 0; } }}} Built and run for debug, this code fails when the BOOST_ASSERT: ""codecvt_facet_ptr() facet hasn't been properly initialized"" fires on line 888, in const path::codecvt_type& path::codecvt() The user workaround is to put code in DllMain's DLL_PROCESS_ATTACH, as described in the earlier ticket, to force initialisation before multiple threads share the DLL. I attach the Visual Studio project used to test this. This DLL scenario is a simplification of a genuine situation: I found it when an Apache add-on started crashing its host." willw@… Boost 1.54.0 10720 boost::interprocess Windows semaphore and mutex creation can fail due to naming convention interprocess Boost 1.54.0 To Be Determined Bugs Ion Gaztañaga new 2014-10-30T13:14:34Z 2014-10-30T13:14:34Z "boost::interprocess names the mutexes and semaphores using the sync_id and sync_handles classes found in interprocess/sync/windows/sync_utils.hpp. The sync_id class uses winapi::query_performance_counter to obtain a value which is then used to create a supposedly unique identifier for the semaphore or mutex in sync_handles::fill_name. The problem is that when multiple mutexes and/or semaphores are created within such a short time frame that the value returned by winapi::query_performance_counter does not change, the creation fails with winapi::error_already_exists." Ville Outamaa Boost 1.54.0 10828 Boost asio ssl: password callback not called if private key passed with context::use_private_key asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2014-11-30T22:32:52Z 2014-11-30T22:38:53Z "I'm writing a test unit that uses the boost asio ssl. I'm using Boost 1.54 on Ubuntu 14.04 64 bit. I plan to make the test self-sufficient and not rely on files to specify the private key, so I want to hard encode the key and its password in the test itself (they are just test key and password). The code is below. For now it does nothing but I'm just trying to make the password callback work when the private key is specified: ------------------- CODE ------------------------- std::string password_callback( std::size_t max_length, boost::asio::ssl::context::password_purpose purpose) { return ""test""; } TEST(StreamReader, sslStream) { std::string certificate = ""-----BEGIN CERTIFICATE-----\n\ MIIFJjCCAw4CCQDQjrFrRcdRkjANBgkqhkiG9w0BAQsFADBVMQswCQYDVQQGEwJT\n\ BLABLABLABLA""; std::string key = ""-----BEGIN RSA PRIVATE KEY-----\n\ Proc-Type: 4,ENCRYPTED\n\ DEK-Info: DES-EDE3-CBC,06622C22CAB27AC2\n\ \n\ JMudxXy4ZxB733xh7QO4elsVCTzJZuWl9Go4ZMuWx0DZb2fYHqXynKZSf7UactSw\n\ vhKJnLPZaa5U+xOr9cdpSd3SwtQyNu6yaVQH3af2ILRwUsw9mQmI8yqIIF1Y6AgV\n\ BLABLABLABLA""; boost::asio::io_service io_service; boost::asio::ssl::context ctx(boost::asio::ssl::context::tlsv12); ctx.set_password_callback(password_callback); ctx.use_certificate(boost::asio::const_buffer(certificate.c_str(), certificate.size()), boost::asio::ssl::context::pem); ctx.use_private_key(boost::asio::const_buffer(key.c_str(), key.size()), boost::asio::ssl::context::pem); ctx.set_verify_mode(boost::asio::ssl::verify_peer); } ---------------------ENDCODE------------------------- When use_private_key is executed then the password callback is not called and I have to enter the password manually in the console. If I replace use_private_key with use_private_key_file then the callback is called. I would expect password_callback to be called also when use_private_key is used. Checking the internals of use_private_key I find this: boost::system::error_code context::use_private_key( const const_buffer& private_key, context::file_format format, boost::system::error_code& ec) { ::ERR_clear_error(); bio_cleanup bio = { make_buffer_bio(private_key) }; if (bio.p) { evp_pkey_cleanup evp_private_key = { 0 }; switch (format) { case context_base::asn1: evp_private_key.p = ::d2i_PrivateKey_bio(bio.p, 0); break; case context_base::pem: evp_private_key.p = ::PEM_read_bio_PrivateKey(bio.p, 0, 0, 0); break; default: { ec = boost::asio::error::invalid_argument; return ec; } } if (evp_private_key.p) { if (::SSL_CTX_use_PrivateKey(handle_, evp_private_key.p) == 1) { ec = boost::system::error_code(); return ec; } } } ec = boost::system::error_code( static_cast(::ERR_get_error()), boost::asio::error::get_ssl_category()); return ec; } PEM_read_bio_PrivateKey accepts a callback parameter or a passphrase, but they are left null. " Paolo Brandoli Boost 1.54.0 11092 Boost write_graphml writes non-conformant GraphML for boolean attributes graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2015-03-10T01:05:59Z 2016-12-12T17:24:54Z "Boolean attributes are serialized as 0 and 1. They should be written as ""false"" and ""true"" instead. The GraphML spec does not specify what values are acceptable, but according to the GraphML primer, ""The type of the GraphML-Attribute can be either boolean, int, long, float, double, or string. These types are defined like the corresponding types in the Java(TM)-Programming language."". In source code, Java would allow only ""true"" and ""false"" for boolean values. If we add any representation that Java's Boolean.parseString() recognizes, the case wouldn't matter, but ""1"" still wouldn't parse as true. Other libraries like NetworkX fail to parse GraphML with boolean attributes written by Boost. See also https :// github.com / networkx / networkx / pull / 1063." freedesktop@… Boost 1.54.0 11777 Doing async reads appears to do spurrious calls to recvmsg that return EAGAIN asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2015-10-30T23:45:23Z 2015-10-30T23:45:23Z "In running an strace on a program that runs many threads, each controlling many streams, we see the following pattern when looking at one of the threads: epoll_wait(31, ..., 128, -1) = 46 recvmsg(4114, ..., 0) = 2892 recvmsg(4114, ..., 0) = -1 EAGAIN recvmsg(3700, ..., 0) = 16768 recvmsg(3700, ..., 0) = -1 EAGAIN and so on for all 46 sockets. When doing an strace -c on the process, where the bulk (90+%) of the threads are related to these sockets, I see 60% of the time in 27624 calls to write (we read data, process it, and write it to another socket), 34% for 52153 calls to recvmsg (of which 24526 are ERRORS), and 6% are in 4668 calls to epoll_wait. We are noticing that the bulk of the applications time is system time when monitoring with the times() system call. Calling system calls that return immediately with errors is a good way to cause this, especially if there are buffers that are mapped or tested for validity before the EAGAIN check is done. Looking at the release notes for subsequent versions doesn't indicate a fix towards this issue. Unfortunately, the programs are proprietary, and the data streams are proprietary streams on our customers' networks. If the epoll uses edge triggered events, you will get a notification if the first read was a partial, so you don't need to do the extra read. Even though this is an optimization, this is causing us a major performance issue on a large number of machines, thus, the Showstopper severity." Dave Gotwisner Boost 1.54.0 11876 Boost.Graph conflicts with Qt's foreach macro graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2015-12-28T14:56:52Z 2016-01-03T16:46:19Z "This is a similar problem as https://svn.boost.org/trac/boost/ticket/6455, where the Qt `foreach` macro conflicts with the `boost::foreach::tag` in file `/usr/include/boost/foreach.hpp`. This is a simple Qt example that reproduces the error (also supplied as an attachment): {{{ #include #include #include #include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); std::ofstream f(""filename.dot""); boost::write_graphviz( f, boost::adjacency_list<>() ); return a.exec(); } }}} For the following Qt Creator project file: {{{ QT += core QT -= gui CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp }}} The error given is: {{{ In file included from /usr/include/boost/graph/graphviz.hpp:35:0, from ../CppBoostGraphAndQtConflictQtConsole/main.cpp:5: /usr/include/boost/foreach.hpp:169:42: error: 'boost::Q_FOREACH::tag' has not been declared boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } }}} The error does not occur if 'boost/graph/adjacency_list.hpp' is #included either before `QCoreApplication` or after. This is a workaround. I cannot see if this error is still present in later versions of Boost. If it is still present, I hope I have contributed in letting Boost.Graph and Qt work together seamlessly. " richel@… Boost 1.54.0 11958 boost::gregorian is not thread safe date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2016-02-05T14:48:21Z 2016-03-15T17:58:38Z "in greg_month.cpp, The static method get_month_map_ptr performs a non-thread-safe initialization of the month_map structure on the first access. If the first access is done concurrently, it is likely to crash with a segmentation fault as such: Program received signal SIGSEGV, Segmentation fault. #0 0x00007fffef9127d9 in std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) () from /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.54.0 #1 0x00007fffef90fc90 in boost::gregorian::greg_month::get_month_map_ptr() () from /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.54.0 #2 0x00007ffff4d41e07 in boost::date_time::month_str_to_ushort (s=...) at /usr/include/boost/date_time/date_parsing.hpp:67 #3 0x00007ffff4d4341a in boost::date_time::parse_date (s=..., order_spec=order_spec@entry=0) at /usr/include/boost/date_time/date_parsing.hpp:143 #4 0x00007ffff4d3a720 in from_string (s=...) at /usr/include/boost/date_time/gregorian/parsers.hpp:30 I suggest initializing the map in a safe, lockless manner." Mathieu Marquis Bolduc Boost 1.54.0 12186 Inclusion order for labeled_graph graph Boost 1.54.0 To Be Determined Bugs Jeremiah Willcock new 2016-05-10T08:04:59Z 2016-08-10T11:49:27Z "Hi, It looks like the labeled_graph header has some unmet dependencies. If labeled_graph is the first boost graph include compilation will fail. If it is not the first (e.g. after adjacency_list) compilation suceeds. I am using boost 1.54. Sorry I have no idea if this has been fixed in later versions. Ex. 1 compilation fails {{{ #include ""boost/graph/labeled_graph.hpp"" #include ""boost/graph/adjacency_list.hpp"" int main(int,char*[]) { } }}} Ex. 2 compilation succeeds with include order swapped. {{{ #include ""boost/graph/adjacency_list.hpp"" #include ""boost/graph/labeled_graph.hpp"" int main(int,char*[]) { } }}} " scott_paulin@… Boost 1.54.0 12358 epoll_reactor calls fcntl without checking return code asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2016-07-29T12:12:09Z 2016-07-29T12:22:20Z "From lines 469 to 473 of epoll_reactor.ipp: {{{ if (fd == -1 && (errno == EINVAL || errno == ENOSYS)) { fd = epoll_create(epoll_size); if (fd != -1) ::fcntl(fd, F_SETFD, FD_CLOEXEC); } }}} This is at least as far back as 1.54 however it is present in the development trunk too. Should this fcntl fail for some reason, what is the correct behavior?" jim.king@… Boost 1.54.0 12359 eventfd_select_interrupter calls fcntl without checking the return code asio Boost 1.54.0 To Be Determined Bugs chris_kohlhoff new 2016-07-29T12:27:03Z 2016-07-29T12:27:03Z "This occurs 8 times within the implementation file: Lines 51 to 55: {{{ if (read_descriptor_ != -1) { ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); } }}} Lines 67 to 71: {{{ if (read_descriptor_ != -1) { ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); } }}} Lines 78 to 86: {{{ if (pipe(pipe_fds) == 0) { read_descriptor_ = pipe_fds[0]; ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); write_descriptor_ = pipe_fds[1]; ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC); } }}} This goes as far back as 1.54 and is present in the development trunk. In these cases, what is the correct behavior if fcntl fails? I assume throwing a boost::system::error_code? Does any resource need to be released/closed explicitly in these cases?" James E. King, III Boost 1.54.0 12360 dead code detected by coverity in mersenne_twister random Boost 1.54.0 To Be Determined Bugs No-Maintainer new 2016-07-29T12:42:17Z 2017-05-04T04:00:00Z "This is from boost 1.54 - it would be wise to re-test this on the development trunk to ensure it is still there before resolving it. This would be considered a trivial performance optimization by removing a branch. {{{ { assignment: Assigning: j = 623UL. const: At condition j < 623UL, the value of j must be equal to 623. dead_error_condition: The condition j < 623UL cannot be true. 430 for(std::size_t j = n-1-unroll_extra2; j < n-1; j++) { CID 10152 (#1 of 1): Logically dead code (DEADCODE)dead_error_begin: Execution cannot reach this statement: y = (this->x[j] & 0x8000000.... 431 UIntType y = (x[j] & upper_mask) | (x[j+1] & lower_mask); 432 x[j] = x[j-(n-m)] ^ (y >> 1) ^ ((x[j+1]&1) * a); 433 } 434 } }}} " James E. King, III Boost 1.54.0 12361 in string_parse_tree one constructor does not initialize m_value date_time Boost 1.54.0 To Be Determined Bugs az_sw_dude new 2016-07-29T13:05:25Z 2016-07-29T13:05:25Z "This will lead to undefined behavior. The constructor: {{{ string_parse_tree(collection_type names, unsigned int starting_point=0) }}} is at fault here and needs to be fixed. Identified by coverity and appears to be present in the development trunk." James E. King, III Boost 1.54.0 13073 boost tokenizer_functions explicit char_separator() ctor does not initialize m_output_done tokenizer Boost 1.54.0 To Be Determined Bugs jsiek new 2017-06-14T13:35:50Z 2017-06-17T18:14:20Z "This was identified in a Coverity scan. I checked the development tip in GitHub (https://github.com/boostorg/tokenizer/blob/develop/include/boost/token_functions.hpp) and I did not see a fix for this issue. explicit char_separator() : m_use_ispunct(true), m_use_isspace(true), CID 25905 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)2. uninit_member: Non-static class member m_output_done is not initialized in this constructor nor in any functions that it calls. m_empty_tokens(drop_empty_tokens) { } " jim.king@… Boost 1.54.0 13409 Logging For Static Methods At Runtime log Boost 1.54.0 To Be Determined Bugs Andrey Semashev new 2018-01-19T14:34:06Z 2018-01-22T01:44:44Z "Hi, We've been logging with Boost Library in the application. We defined a dynamic class which can be configured differently to write on file, console and server by inheriting from Boost Log library classes. There are other 3rd party libraries in the application we use, and one of them includes **static classes and methods**. In some scenarios of the application, these static methods are called. Our goal is to be able to log for static methods when they are called **at runtime**. As you may also know, the static methods are linked at compile time. So, I can not use our dynamic class for logging. Is there any simple approach I can apply for this purpose ? Thanks in advance, Kind Regards " cranberriess89@… Boost 1.54.0 8506 Add a C++11 conforming noexcept to function<> class function Boost 1.54.0 To Be Determined Feature Requests Douglas Gregor new 2013-04-27T05:56:21Z 2013-04-27T07:16:09Z Some of the c++11 function<> class functions are noexcept. It would be great if Boost.Function use BOOST_NOEXCEPT in these cases. viboes Boost 1.54.0 8514 Async: Add a thread_pool executor with work stealing. thread Boost 1.54.0 To Be Determined Feature Requests viboes assigned 2013-04-28T20:57:06Z 2013-04-30T22:49:57Z See #8513 for the basic thread_pool interface viboes Boost 1.54.0 8517 Async: Add a variadic shared_future::then thread Boost 1.54.0 To Be Determined Feature Requests viboes assigned 2013-04-28T21:07:05Z 2013-05-28T19:09:38Z " {{{ template shared_future::type...> future::then(S&, F&& func ...); }}} " viboes Boost 1.54.0 8777 layout=system is always creating symbolic links Building Boost Boost 1.54.0 To Be Determined Feature Requests new 2013-07-04T09:55:24Z 2013-07-04T09:55:24Z "Currently, while building boost binary libraries using ""layout=system runtime-link=shared target-os=linux"", boost build always creates symbolic links without versioning pointing to the real shared libraries. However, some filesystems don't support symbolic links. There is anyway to ask to boost build to not create symbolic links and generate the shared libraries without versioning? I'd like to have the same behavior as cross-building using x86_64-w64-mingw32, but for Linux. " Augusto Cesar Righetto Boost 1.54.0 8807 set_union adapter range Boost 1.54.0 To Be Determined Feature Requests Neil Groves new 2013-07-10T03:15:20Z 2013-07-10T03:15:20Z I was looking today for a range adapter that would take two sorted ranges with the same value type and present the union of those sets. Seems like a natural fit for this library. Dave Abrahams Boost 1.54.0 8831 Reuse capacity from user containers in order to prevent superfluous allocations string_algo Boost 1.54.0 To Be Determined Feature Requests Marshall Clow new 2013-07-16T20:08:24Z 2013-07-16T20:08:24Z "Inside boost::algorithm::split, new variable of container type is created, and then swapped with result when fully filled. See http://www.boost.org/doc/libs/1_54_0/boost/algorithm/string/iter_find.hpp , there is code like: {{{ SequenceSequenceT Tmp(itBegin, itEnd); Result.swap(Tmp); }}} Maybe that was done in pursuit of strong exception safety guarantee - but I don't see much value for it in that case, because split is supposed to replace values in original container - https://svn.boost.org/trac/boost/ticket/5915 . I think basic guarantee would be enough. Often SequenceSequenceT is container like std::vector, which already has capacity from previous usages, which can be reused avoiding costly allocations. For example: {{{ Result.assign(itBegin, itEnd); }}} Maybe that would require stricter requirements on SequenceSequenceT, or maybe overload or traits specialization can be used for common things like std::vector and boost::container::vector or as customization point. Here is proof-of-concept which avoids allocations showing speed difference: http://coliru.stacked-crooked.com/view?id=bf5dd9f2d9d20d61470e73a6b2940333-9a9914b3e2b7ed07c206d6accecccdb6 On my machine I have following results: {{{ start end 0.85 s 64000000 start end 1.55 s 64000000 }}} I.e. version with allocations is ~1.8x slower. Maybe other algorithms have similar issues - I haven't checked." Evgeny Panasyuk Boost 1.54.0 8867 Provide socket options for TCP keepalive configuring asio Boost 1.54.0 To Be Determined Feature Requests chris_kohlhoff new 2013-07-21T17:24:44Z 2013-07-21T17:24:44Z "Please, provide socket options in asio::ip::tcp to configure TCP keepalive behavior, like described in section 4.2 [http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/ here]. E.g. the following typedefs will suffice: {{{ typedef boost::asio::detail::socket_option::integer< SOL_TCP, TCP_KEEPIDLE > keepalive_idle_time; typedef boost::asio::detail::socket_option::integer< SOL_TCP, TCP_KEEPINTVL > keepalive_interval; typedef boost::asio::detail::socket_option::integer< SOL_TCP, TCP_KEEPCNT > keepalive_probes; }}} " Andrey Semashev Boost 1.54.0 8964 operator>> missing units Boost 1.54.0 To Be Determined Feature Requests Matthias Schabel new 2013-08-04T20:46:36Z 2014-04-13T19:48:21Z "boost/units/io.hpp defines operator<< but not operator>>. As a result, dimensionful quantities can be written but not read. This is a serious problem. Why would I want to use Boost::Units in the first place? Because I'd like to enter dimensionful quantities into my program, then do some calculations, and have it output dimensionful quantities. The latter (i.e. output) works. But the former (i.e. input) is restricted to hardcoded parameters in my source file. If I move the data to a config file and try to read it, I face the problem that there is no operator>>." pipping@… Boost 1.54.0 8989 asio::ip namespace issues, and proposed solution asio Boost 1.54.0 To Be Determined Feature Requests chris_kohlhoff new 2013-08-09T15:22:47Z 2013-08-10T07:24:49Z "Given an [http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/InternetProtocol.html InternetProtocol] (usually [http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/ip__tcp.html ip::tcp]), there's no generic way to get access to these classes: {{{ class boost::asio::ip::address_v4; class boost::asio::ip::address_v6; }}} The reason is that boost::tcp::ip is a namespace and not a type. I propose adding these to the requirements for [http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/InternetProtocol.html InternetProtocol]: {{{ X::address_v4, return type boost::asio::ip::address_v4 X::address_v6, return type boost::asio::ip::address_v6 }}} This would enable template classes parameterized on [http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/reference/InternetProtocol.html InternetProtocol] to be able to choose an address type. For example: {{{ template struct Details { typedef InternetProtocol protocol_type; typedef protocol_type::endpoint endpoint_type; // Good, with this proposal typedef protocol_type::address_v4 address_v4; endpoint_type get_endpoint () { return endpoint_type (address_v4::any (), 1053); } // Bad, the only current solution typedef boost::asio::ip::address_v4 address_v4; endpoint_type get_endpoint_bad () { return endpoint_type (address_v4::any (), 1053); } }; }}} " vinnie.falco@… Boost 1.54.0 9013 Create enum to make sign result more readable. math Boost 1.54.0 To Be Determined Feature Requests John Maddock new 2013-08-18T16:28:55Z 2013-08-18T16:28:55Z "The function 'sign' return 1, 0 or -1 depending on the signal of the z, but comparing the result with -1, 0 or 1 constants could make the source code bad readable specially for people that doesn't know what the 'sign' function return. {{{ if (math::sign(value) == -1){ .... } }}} I propose to create an enumerate type to test the result of the function with a constant, to create a more readable code. The compatibility with the previous implementation of the function is not broken. Suggested implementation of code: {{{ enum Sign { SIGN_NEGATIVE = -1, SIGN_ZERO = 0, SIGN_POSITIVE = 1 } template inline Sign sign BOOST_NO_MACRO_EXPAND(const T& z) { return (z == 0) ? SIGN_ZERO : (boost::math::signbit)(z) ? SIGN_NEGATIVE : SIGN_POSITIVE; } }}} The previous example comparison could be write as: {{{ if (math::sign(value) == math::SIGN_NEGATIVE){ .... } }}} " Joaquim Duran Comas Boost 1.54.0 9015 Ptree should have add_or_get property_tree Boost 1.54.0 To Be Determined Feature Requests Sebastian Redl new 2013-08-19T13:24:25Z 2015-01-23T11:10:34Z "When using the method ""..get"" on a Ptree it is possible to retrieve the value of the key. When the key doesn't exits, the default value is used. Then the proper way should be that the default value will be added to the ptree. I don't know how other people think about it? Now you have to add another line to add it to the ptree. Maybe It can with a overloaded function, which has the option to add it to the ptree." anonymous Boost 1.54.0 9052 Support of Stateful Allocators in spirit spirit Boost 1.54.0 To Be Determined Feature Requests Joel de Guzman new 2013-08-27T09:37:50Z 2013-08-27T09:37:50Z "Currently it's not possible to avoid allocations from happening with the standard allocators of the used standard library. That makes it quite impossible to manage the memory for the parser. Some use case examples: * Writing a library in C++ with a C interface allowing the user to pass 'malloc' and 'free' replacements. * Writing a program that uses a pool memory allocator I know that this probably won't be too high on your todo list, however it'd be great to have." evilissimo@… Boost 1.54.0 9074 Performance inefficiencies in boost::libs::filesystem::src::operations.cpp filesystem Boost 1.54.0 To Be Determined Feature Requests Beman Dawes new 2013-09-02T09:06:42Z 2013-09-02T12:28:21Z "line 1490 Large stack use Local variable ""info"" uses 16392 bytes of stack space, which exceeds the maximum single use of 10000 bytes. it should be replaced by uniqe_ptr union info_t { char buf[REPARSE_DATA_BUFFER_HEADER_SIZE+MAXIMUM_REPARSE_DATA_BUFFER_SIZE]; REPARSE_DATA_BUFFER rdb; } /*info*/; std::unique_ptr info( new info_t ); ... " Alexander Drichel Boost 1.54.0 9178 Use type deduction instead of boost::function to store lambda scope_exit Boost 1.54.0 To Be Determined Feature Requests Lorenzo Caminiti new 2013-09-29T21:42:09Z 2013-09-29T21:44:19Z "boost::function is used to store lambda, which may cause superfluous allocation. It is possible to use type deduction instead. " Evgeny.Panasyuk@… Boost 1.54.0 9211 fstream types don't have move semantics filesystem Boost 1.54.0 To Be Determined Feature Requests Beman Dawes new 2013-10-08T13:54:16Z 2014-05-27T12:07:03Z boost::filesystem::ofstream etc. lack move semantics for c++11, so they can't be used as a replacement for std::ofstream etc. if move semantics are required anonymous Boost 1.54.0 9222 iostreams documentation hard to read iostreams Boost 1.54.0 To Be Determined Feature Requests Jonathan Turkanis new 2013-10-10T10:56:26Z 2014-01-13T22:13:33Z "Hi, You guys have put a lot of work into iostreams documentation, but, where it falls down is when someone unfamiliar with the library (ie, me) wants to quickly figure out how to do something. For example, I wanted to create an input stream from an existing array. I found this page: http://www.boost.org/doc/libs/1_54_0/libs/iostreams/doc/classes/array.html But frustratingly, there was no example on how to use. Google was of limited use, eventually I found this page, http://www.boost.org/doc/libs/1_53_0/libs/iostreams/doc/guide/generic_streams.html#examples Which was exactly what I wanted to know, but there really should be an example on the array's page, or at least a link to the relevant documentation that talks about how to use it. Was very frustrating. cheers, Paul " harris.pc@… Boost 1.54.0 9287 Additional string_ref constructors utility Boost 1.54.0 To Be Determined Feature Requests Marshall Clow assigned 2013-10-22T09:09:19Z 2015-05-12T00:57:48Z "From: - iterator_range - std::vector - pair of iterators" Domagoj Šarić Boost 1.54.0 9296 synchronous non-blocking support for boost::asio::ip::tcp::socket::connect() asio Boost 1.54.0 To Be Determined Feature Requests chris_kohlhoff new 2013-10-23T19:37:12Z 2013-10-23T19:37:12Z "Currently the implementation of boost::asio::detail::socket_ops::sync_connect() makes connect operations on a TCP socket which is in non-blocking mode (i.e. via set_user_non_blocking()) behave like a blocking connect(), by calling poll_connect() to wait for the completion of a non-blocking connect. I have scenarios where I need the connect operation to be non-blocking, but I do not want to use async_connect() because I need to be able to handle the completion of the connect operation synchronously but at a later time. A typical scenario is adapting code which already manages large numbers of non-blocking file descriptors/sockets via epoll(), whereby I want to initiate the connect operation on a boost::asio::ip::tcp:socket object but then pass its native_handle() to epoll to later reap the connect completion. As for better or worse the current implementation of socket::connect() with a socket in non-blocking mode is expected to have completed the connect attempt upon return (i.e. boost::asio::errors::would_block or in_progress are not expected), a new basic_socket::non_blocking_connect() - or some such - with support down through the various layers would probably be called for. At the moment, I am achieving what I need by side-stepping socket::connect like this: {{{ boost::asio::ip::tcp::socket socket(ios); boost::asio::ip::tcp::endpoint addr(...); boost::system::error_code ec; socket.open(addr.protocol, ec); // set various sockopts... socket.non_blocking(true, ec); // in lieu of a hypothetical socket.non_blocking_connect(addr, ec): ::connect(socket.native_handle(), addr.data(), socklen_t(addr.size())); ec = make_error_code(boost::asio::error::basic_errors(errno)); }}} " Stephen C. Pope Boost 1.54.0 9314 boost shared_ptr should use C++11 atomics when available smart_ptr Boost 1.54.0 To Be Determined Feature Requests Peter Dimov new 2013-10-28T23:09:49Z 2013-12-13T21:11:51Z If a native assembly lock-free version is unavailable, boost should use native C++11 atomics if the library has them. This will far more reliably pick an efficient implementation for shared_ptr in cases where the optimized assembly version is unavailable and where __sync support may be unavailable/not detected properly. anonymous Boost 1.54.0 9330 Add initializer_list constructor to ptr_container ptr_container Boost 1.54.0 To Be Determined Feature Requests Thorsten Ottosen new 2013-10-31T10:56:53Z 2013-10-31T10:56:53Z Pointer container library does not take advantadge of new C++11 features such as std::initializer_list constructor and move constructor. anonymous Boost 1.54.0 9436 Add predefined concept for contextual conversion to bool type_erasure Boost 1.54.0 To Be Determined Feature Requests Steven Watanabe new 2013-11-26T15:31:25Z 2013-11-26T15:31:25Z "One concept that is often useful in many types is a contextual conversion to bool. The following expressions should be valid with the concept: {{{ if (o) {} if (!o) {} return bool(o); }}} Add a predefined concept that catches these requirement. A possible implementation: {{{ namespace boost { namespace type_erasure { template struct testable { static bool apply(const T& arg) { return bool(arg); } }; template struct concept_interface, Base, T> : Base { explicit operator bool () const { return call(testable(), *this); } }; }} }}}" akrzemi1@… Boost 1.54.0 9576 read_until for string_ref algorithm Boost 1.54.0 To Be Determined Feature Requests Marshall Clow assigned 2014-01-15T15:13:20Z 2014-01-24T09:04:41Z "{{{ string_ref read_until(string_ref& is, const char* sep); }}} Could we have a function like this that reads until a separator, returns the part before the separator and then eats the separator? It should read and return the entire input if no separator is found." Olaf van der Spek Boost 1.54.0 9582 Boost.Units: conversion to double with prefixed unit units Boost 1.54.0 To Be Determined Feature Requests Matthias Schabel new 2014-01-16T08:59:23Z 2014-03-16T11:52:09Z "A post to the Boost-users maillinglist suggested me to request this feature. In the code below, I convert a double that is known to be in millimeters to a unit and back again. The latter fails, where it works as expected for meters. I think that adding this feature increases the symmetry in the use of Boost.Units, as I have emphasised in my code. I am aware of the great care the Boost.Units developers have in maintaining type-safety, so it might be that I am unaware of code compiling that shouldn't would this request be acknowledged. {{{ using boost::units::conversion_factor; using boost::units::quantity; using boost::units::si::length; using boost::units::si::meter; using boost::units::si::milli; typedef quantity Length; //This value is read from file const double x_in_mm = 1.0; //Add units const Length x(x_in_mm * (milli * meter)); //Brackets added for emphasis const double x_again_in_m = x / meter; //Works const double x_again_in_mm { x / (milli * meter) //Same brackets as at emphasis }; //Why doesn't this? assert(x_in_mm == x_again_in_mm); }}} " richel@… Boost 1.54.0 9599 Add a parallel_transform algorithm thread Boost 1.54.0 To Be Determined Feature Requests viboes assigned 2014-01-22T12:03:31Z 2014-01-22T12:06:12Z " Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_transform algorithm. The main difference is that the algorithm could take an Executor as parameter. " viboes Boost 1.54.0 9614 Optional File Creation for boost::interprocess::file_lock interprocess Boost 1.54.0 To Be Determined Feature Requests Ion Gaztañaga new 2014-01-28T21:54:43Z 2014-01-28T21:54:43Z "An optional overload (default second argument?) for the constructor to create and open the file to use for the file_lock would be very useful. Currently, when creating a file lock, I typically do something like: {{{ std::ofstream tmpf(/path/to/lock/file); tmpf.close(); boost::interprocess:file_lock f_lock(/path/to/lock/file); }}} Say I have a class, such as: {{{ class Foo { public: Foo(); private: boost::interprocess::file_lock f_lock; }; }}} I have to do the following in the constructor: {{{ Foo::Foo() { std::ofstream tmpf(/path/to/lock/file); tmpf.close(); boost::interprocess:file_lock tmp_lock(/path/to/lock/file); f_lock.swap(tmp_lock); } }}} This is cumbersome and limits usefulness in initializer lists. Tweaking the constructor to something like: {{{ file_lock::file_lock(const char *path, bool create = false); }}} Would allow a constructor to do the following: {{{ Foo::Foo() : f_lock(/path/to/file/lock, true) { } }}} " Peter LaDow Boost 1.54.0 9686 Provide cmd file for building both 32-bit and 64-bit libraries on Windows with Microsoft Visual C++ Building Boost Boost 1.54.0 To Be Determined Feature Requests new 2014-02-20T00:57:25Z 2014-02-20T23:27:29Z It would make sense to provide a cmd file to automate bootstrapping and building both 32-bit and 64-bit libraries (in the Debug and Release configurations) on Windows (placing them under stage32 and stage64, respectively). Running bootstrap and b2 with no command-line arguments as recommended in the Getting Started guide will build only 32-bit libraries. In order to build 64-bit libraries, one has to consult bjam docs to figure out which parameters/options to use. Since targeting both 32-bit, and 64-bit architectures is quite common for developers working under Windows, having a batch file to automate Boost library builds for both architectures in one go will save them some time and effort. rassokhin@… Boost 1.54.0 9692 Add operator[](graph_bundle_t) to compressed_sparse_row_graph graph Boost 1.54.0 To Be Determined Feature Requests Jeremiah Willcock new 2014-02-20T19:11:57Z 2014-02-20T19:11:57Z "Hello, it would be really fine, if in a bidirectional csr graph the graph's properties were accessible in the same way as in a directed csr graph." Philipp Büttgenbach Boost 1.54.0 10112 improved shared_ptr visualizer and weak_ptr smart_ptr Boost 1.54.0 To Be Determined Feature Requests fkonvick new 2014-06-11T10:39:45Z 2015-02-13T18:36:55Z "I was trying out the boost::shared_ptr visualizer for Visual Studio 2010, here https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers/shared_ptr.vis.txt It's ok, but it doesn't show very much. The typical display is: shared_ptr {...} count = ... While experimenting with the visualizer, I made several observations: 1) If you view a pointer rather than a dereferenced pointer, you see both the address (which is useful) and more content in the referenced object (which is very useful) 2) Our normal use of shared_ptr is as a pointer. The usage count is not normally something we want to know about. By removing the text formatting, and only showing the pointer in the preview, we see far more content in the referenced object (even more useful) 3) The children are displayed in alphabetic order. It's most useful to be able to see and expand ""ptr"" in the children. Renaming ""count"" to ""use_count"" puts ""ptr"" at the top, where it belongs. 4) weak_ptr can be visualized the same way. An example boost::shared_ptr is now previewed as: 0x18467058 {parent_bond_=0x184546e0 {type_={...} polymeric_=false annotations_={...} ...} mol_=0x18448768 {m_=0x1246c5ac {impl_={...} annotations_={...} } impl_={...} proxy_atom_creator_={...} ...} graphic_properties_=0x00000000 } {{{ ;------------------------------------------------------------------------------ ; boost::shared_ptr ;------------------------------------------------------------------------------ boost::shared_ptr<*>{ preview ( ($T1 *)$c.px ) children ( #( ptr: (($T1 *)$c.px) , use_count: $c.pn.pi_->use_count_ , weak_count: $c.pn.pi_->weak_count_ ) ) } ;------------------------------------------------------------------------------ ; boost::weak_ptr ;------------------------------------------------------------------------------ boost::weak_ptr<*>{ preview ( ($T1 *)$c.px ) children ( #( ptr: (($T1 *)$c.px) , use_count: $c.pn.pi_->use_count_ , weak_count: $c.pn.pi_->weak_count_ ) ) } }}}" murray read at ccdc Boost 1.54.0 10170 adding keys to context without file asio Boost 1.54.0 To Be Determined Feature Requests chris_kohlhoff new 2014-07-02T07:31:48Z 2014-07-02T07:31:48Z The boost::asio::ssl::context class should have a way to add keys, without a file name. Because sometimes it is necessary to use keys that are already loaded into the program and are stored in a variable ( for example: char *). anonymous Boost 1.54.0 10743 Support Boost build on Windows using Clang Building Boost Boost 1.54.0 To Be Determined Feature Requests new 2014-11-04T06:36:33Z 2015-02-13T19:36:38Z It will be lovely if it will be possible to build boost library using Clang (clang-cl) on Windows using standard win dev tools (no MingW, VS only). kreuzerkrieg@… Boost 1.54.0 8484 [ublas] allow user-defined oeprator/ for matrices uBLAS Boost 1.54.0 To Be Determined Patches David Bellot new 2013-04-22T15:00:23Z 2013-05-22T21:30:27Z "I would like to define the division operator for two matrices, but that is impossible right now as the matrix-skalar operator/ from ublas hides any other operator/ definition. This can be fixed very easily by adding an enable_if (see attached patch). Such enable_if are already used for other operators in ublas (e.g. multiplication) and the patch would hence be consistent with the rest of the code. Thanks" mariomulansky Boost 1.54.0 8756 Boost.MPL VS2013 Preview version bump mpl Boost 1.54.0 To Be Determined Patches Aleksey Gurtovoy new 2013-07-01T23:25:36Z 2013-07-01T23:25:36Z The `BOOST_WORKAROUND` macros at `boost/mpl/assert.hpp` lines 37 and 247 need to be changed to also consider `BOOST_MSVC, == 1800`, patch attached. Lars Viklund Boost 1.54.0 8893 Documentation Error signals Boost 1.54.0 To Be Determined Patches Douglas Gregor new 2013-07-24T09:38:17Z 2013-08-04T07:55:17Z "Hello, Sorry for making a ticket here, I didn't know where to report this. Please forward to the right people. There's an error in the solution (code) proposed here: http://www.boost.org/doc/libs/1_54_0/doc/html/signals/s04.html Towards the end of the code: // Restore the macro definition of ""signals"", as it was // defined by Qt's . # define signals protected that #define statement should be changed to # define signals public Otherwise, it works on GCC, but does not work on Visual C++, as VC++ compiler will produce a different symbol (after name mangling), and the linker will report errors Otherwise, the solution works great. Thanks a million for having it! If you need to get a hold of me, you can reach me at pm@privacyprotector.eu Pawel Mroszczyk " anonymous Boost 1.54.0 9134 "Code that uses BOOST_THROW_EXCEPTION produces a lot of ""result may be used uninitialized (...)"" warnings in certain conditions" exception Boost 1.54.0 To Be Determined Patches Emil Dotchevski new 2013-09-19T12:45:45Z 2013-09-19T12:45:45Z "The problem appears when using g++ with `-Wuninitialized -fno-exceptions -O3` flags. Given a simple test: {{{ #include int main() { return boost::lexical_cast(""""); } }}} when compiled using g++ v4.6.3 produces the following output: {{{ $ g++ test.cpp -Iboost -fno-exceptions -Wuninitialized -O3 -c In file included from test.cpp:1:0: boost/boost/lexical_cast.hpp: In static member function ‘static Target boost::detail::lexical_cast_do_cast::lexical_cast_impl(const Source&) [with Target = int, Source = const char*]’: boost/boost/lexical_cast.hpp:2353:24: warning: ‘result’ may be used uninitialized in this function [-Wuninitialized] }}} Please note that this problem appears only when using `-O3` optimization level. One way of fixing this issue is to add `BOOST_ATTRIBUTE_NORETURN` to `boost::throw_exception()` declaration in `boost/throw_exception.hpp`, as shown in the attached patch. It should be safe to do so, as the documentation of `boost::throw_exception()` says that: > (...) Callers of throw_exception are allowed to assume that the function never returns (...) This solves the issue completely." Adam Romanek Boost 1.54.0 9604 compilation failure c1017 parameter Boost 1.54.0 To Be Determined Patches Daniel Wallin new 2014-01-24T16:41:22Z 2014-01-24T16:41:22Z "Using MSVC++ 2012, compiling my program gives me the following error. {{{ C1017: invalid integer constant expression. in boost\parameter\aux_\unwrap_cv_reference.hpp:47 #if BOOST_WORKAROUND(MSVC, == 1200) }}} This can be fixed easily by replacing MSVC by BOOST_MSVC on this line. " orenaud@… Boost 1.54.0 9680 Exceptions disabling in some files date_time Boost 1.54.0 To Be Determined Patches az_sw_dude new 2014-02-18T20:00:27Z 2014-02-18T20:00:27Z Used the macro BOOST_TRY,BOOST_CATCH,BOOST_CATCH_END and BOOST_RETHROW do be able to use some method/classes when exceptions are disabled anonymous Boost 1.54.0 9687 introduce boost::python::raw_method python USE GITHUB Boost 1.54.0 To Be Determined Patches Ralf W. Grosse-Kunstleve new 2014-02-20T10:00:39Z 2014-02-20T10:00:39Z "Hi, I am developing a Python's module using boost::python. I need to create a method for certain class, which takes {{{*args}}} and {{{**kwargs}}}. Boost::python is capable of creating a raw function/constructor, but lacks an API for creating a **raw method**. I attach a header, which introduces this option. Thank you for a feedback. Regards ---- Example: {{{ #!cpp namespace bp = boost::python; class ClassName { public: // ... static void init() { s_class = bp::class_(""ClassName"", /* ... */) .def(""RawMethodName"", bp::raw_method( &ClassName::MethodName, 2)); } bp::object RawMethodName( const bp::tuple &args, const bp::dict &kwargs) { // Do something with args, kwargs return bp::object(); } // ... private: static bp::object s_class; }; bp::object ClassName::s_class; }}}" phatina@… Boost 1.54.0 9919 xml_parser::read_xml() and write_xml() are limited to std::string keys property_tree Boost 1.54.0 To Be Determined Patches Sebastian Redl new 2014-04-18T02:37:50Z 2014-04-18T02:37:50Z "boost::property_tree::xml_parser and json_parser are hardcoded to work only with keys of std::string type. The following code will fail to compile: boost::property_tree::basic_ptree pt; std::string filename(""123.xml""); boost::property_tree:xml_parser::read_xml(filename, pt); I have prepared a patch 8af8b6bf3b65fa59792d849b526678f176d87132 that removes this limitation and added a pull request on github" sanderb@… Boost 1.54.0 10212 Don't protect calls to SSL_accept by a static mutex asio Boost 1.54.0 To Be Determined Patches chris_kohlhoff new 2014-07-17T15:11:27Z 2016-03-07T12:05:53Z "Since this commit: commit ad1c1008321e9b14779816ae19dfaa261c2de293 Author: Christopher Kohlhoff Date: Fri Mar 18 00:25:54 2011 +0000 New SSL implementation. [SVN r70096] calls to SSL_connect are not protected by ssl_mutex_, but calls to SSL_accept are wrapped by a lock. I have a http/websocket server application which is extremelly slow in processing requests over a secured connection (about 700 RPS). Under peak load (3K RPS) all threads are waiting for the mutex (for example, 10 threads which are calling to io_service::run()). For every instance of io_service I use a single ssl_context. I'm uploading a patch I use to solve this problem. I have tested it under load for 5-6 months and I have no problems with using SSL_accept without this mutex so I propose the patch." Sergei Nikishin Boost 1.54.0 8787 The correct way to Configure Boost 1.54.0 on Mac OS X 10.8.4 Building Boost Boost 1.54.0 To Be Determined Support Requests new 2013-07-06T01:49:29Z 2013-07-23T14:20:54Z " I am a newby to the Boost Library and I have been trying stupidly , i guess ,without asking for help! I managed to compile successfully but could not link to my projects in Xcode 4.6.3. I want to use Clang in the process instead of GCC 4.8.1 which the compilation picks up. I need to use a fool proof way and to learn to do correctly in future upgrades. thank you." zmukwa@… Boost 1.54.0 8945 managed_shared_memory::find assertion interprocess Boost 1.54.0 To Be Determined Support Requests Ion Gaztañaga new 2013-07-31T08:57:00Z 2016-02-12T05:32:15Z "Hi, I am using ubuntu 13.04 and the compilator is : g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 I have an application which successfully opened a shared memory (I checked with another client). The problem is, when a client of this shared memory tried to connect, the managed_shared_memory::find is blocking or throw the following error message (I don't know what cause my program to have one of this error rather than the other) : ''mosaique: /usr/local/include/boost/interprocess/segment_manager.hpp:871: void* boost::interprocess::segment_manager::priv_generic_find(const CharT*, IndexType >&, boost::interprocess::ipcdetail::in_place_interface&, boost::interprocess::segment_manager::size_type&, boost::interprocess::ipcdetail::true_, bool) [with CharT = char, CharType = char, MemoryAlgorithm = boost::interprocess::rbtree_best_fit, IndexType = boost::interprocess::iset_index, boost::interprocess::segment_manager::size_type = long unsigned int, boost::interprocess::ipcdetail::true_ = boost::interprocess::ipcdetail::bool_]: Assertion `(ctrl_data->m_value_bytes % table.size) == 0' failed. Aborted (core dumped)'' The size of my shared memory is : 9 953 280 Please help me fix this bug. The sources : The server is managed in the main_shm_server.cpp file The buggy client is main_mosaique.cpp It use the class SHMClient which is where the problem occur. The strange thing is when I use the same class with the same constructor parameter in another program, it is working." bersac_1@… Boost 1.54.0 9143 boost can not load bootstrap Building Boost Boost 1.54.0 To Be Determined Support Requests new 2013-09-21T02:02:29Z 2016-02-14T22:40:07Z "when i try to load bootstrap.bat i get this error cl.exe System Error The program can't start because mspdb110.dll is missing from your computer try reinstalling the program (which I did) to fix this probelm" m_hartley4@… Boost 1.54.0 9598 no operator found which takes a left-hand operand of type 'boost::filesystem::directory_iterator' filesystem Boost 1.54.0 To Be Determined Support Requests Beman Dawes new 2014-01-22T08:25:26Z 2014-02-26T21:30:13Z "Hi, I'm working with the Boost C++ library since a long time and suddenly I got stranges error when I compile my software with Visual Studio 2012 (in debug 64 bits). I have absolutely no idea of the problem and the ""output"" does not really help me. Here are the kind of errors I got (the output): _libraries\lib_Boost\boost/iterator/iterator_facade.hpp(847): error C2059: syntax error : ',' And the following one too : I'm working with the Boost C++ library since a long time and suddenly I got stranges error when I compile my software with Visual Studio 2012 (in debug 64 bits). I have absolutely no idea of the problem and the ""output"" does not really help me. Here are the kind of errors I got (the output): {{{ _libraries\lib_Boost\boost/iterator/iterator_facade.hpp(847): error C2059: syntax error : ',' }}} And the following one too : {{{ _libraries\lib_Boost\boost/filesystem/operations.hpp(798): error C2678: binary '!=' : no operator found which takes a left-hand operand of type 'boost::filesystem::directory_iterator' (or there is no acceptable conversion) _libraries\lib_Boost\boost/filesystem/path.hpp(621): could be 'bool boost::filesystem::operator !=(const boost::filesystem::path &,const boost::filesystem::path &)' _libraries\lib_Boost\boost/filesystem/path.hpp(622): or 'bool boost::filesystem::operator !=(const boost::filesystem::path &,const boost::filesystem::path::string_type &)' _libraries\lib_Boost\boost/filesystem/path.hpp(623): or 'bool boost::filesystem::operator !=(const boost::filesystem::path::string_type &,const boost::filesystem::path &)' _libraries\lib_Boost\boost/filesystem/path.hpp(624): or 'bool boost::filesystem::operator !=(const boost::filesystem::path &,const boost::filesystem::path::value_type *)' _libraries\lib_Boost\boost/filesystem/path.hpp(625): or 'bool boost::filesystem::operator !=(const boost::filesystem::path::value_type *,const boost::filesystem::path &)' while trying to match the argument list '(boost::filesystem::directory_iterator, boost::filesystem::directory_iterator)' }}} Does someone has an idea that can help me to find the reason of theses errors ? Is there some compilation options that can help to find the problem ? I only have theses 2 errors (a lot of time !!) Feel free to contact me by email... I'm also available through Skype. Thanks" krys@… Boost 1.54.0 10050 libboost-all-dev available on ARMv7 Building Boost Boost 1.54.0 To Be Determined Support Requests new 2014-05-13T19:31:15Z 2014-05-18T18:39:50Z We are working on a project that requires the use of your package libboost-all-dev, however it is only available for i386 and amd64 architectures. I need it for an ARMv7 architecture 32bit. spider.kiehtan@… Boost 1.54.0 9736 [documentation] document the size() extension points range Boost 1.54.0 To Be Determined Tasks Neil Groves new 2014-03-04T12:59:20Z 2014-03-04T12:59:20Z I added optimisations and extension-points to efficiently get the size() of a range. This means that when passing a type such as std::list that an optimal size() function is chosen in preference to performing std::distance on bidirectional iterators. Neil Groves Boost 1.55.0 1499 xxx is not a member of 'boost::signals::detail::named_slot_map_iterator signals Boost 1.55.0 Boost 1.50.0 Bugs Douglas Gregor reopened 2007-12-03T18:52:05Z 2014-08-08T04:09:15Z "Compiling boost with msvc-9.0 I get errors such as {{{ .\boost/iterator/iterator_facade.hpp(529) : error C2039: 'decrement' : is not a member of 'boost::signals::detail::named_slot_map_iterator' }}} and {{{ .\boost/iterator/iterator_facade.hpp(547) : error C2039: 'advance' : is not a member of 'boost::signals::detail::named_slot_map_iterator' }}}" jrp at dial dot pipex dot com Boost 1.55.0 2557 iostreams filtering_stream w/ gzip infinite loop when writing to a full drive iostreams Boost 1.55.0 Boost 1.38.0 Bugs Jonathan Turkanis assigned 2008-12-01T19:27:03Z 2017-07-12T12:45:47Z "When a filtering_stream with a gzip_compressor is used to write to a full hard drive (i.e. insufficient free space), boost enters an infinite loop in /boost/iostreams/detail/adapter/non_blocking_adapter.hpp:41 because the write function keeps returning zero. This loop happens during the destruction of the stream. I can't seem to find a client-side workaround. Attached is a test case, point it to a volume with zero space and give some large number of bytes. If there's insufficient space, execution hangs. Tested on mingw/winxp/gcc4.2 but seems to fail on linux/gcc as well." Tomasz Śniatowski Boost 1.55.0 8366 """Overlay invalid input exception"" (3)" geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels assigned 2013-04-02T08:19:24Z 2014-11-19T15:14:58Z "Please find below some code that triggers ""Overlay invalid input exception"" (in the last statement of the example). I have a couple of different reproductions, and since I'm not sure if they all share the same root cause, I'm filing them in separate tickets. As always, my polygon type is oriented '''counter-clockwise''' and '''not closed''', my point type is based on '''int'''. This is the data that triggers the exception: {{{ _intPolygon polygon( ""MULTIPOLYGON(((529 998,5337 998,5337 3475,529 3475)))"" ); { _intPolygon const polygonB = _intPolygon(""MULTIPOLYGON(((528 3314,1734 2054,2934 1670,4140 1754,5340 2072,5340 32767,528 32767)))"") ^ _intPolygon(""MULTIPOLYGON(((528 3218,1734 1784,2934 1400,4140 2582,5340 1832,5340 32767,528 32767)))""); polygon -= polygonB; } { _intPolygon const polygonB = _intPolygon(""MULTIPOLYGON(((528 3218,1734 1784,2934 1400,4140 2582,5340 1832,5340 32767,528 32767)))"") ^ _intPolygon(""MULTIPOLYGON(((528 2498,1734 1406,2934 1574,4140 3002,5340 1178,5340 32767,528 32767)))""); polygon -= polygonB; } { _intPolygon const polygonB = _intPolygon(""MULTIPOLYGON(((528 2498,1734 1406,2934 1574,4140 3002,5340 1178,5340 32767,528 32767)))"") ^ _intPolygon(""MULTIPOLYGON(((528 2420,1734 2186,2934 2378,4140 2750,5340 1250,5340 32767,528 32767)))""); polygon -= polygonB; } { _intPolygon const polygonB = _intPolygon(""MULTIPOLYGON(((528 2420,1734 2186,2934 2378,4140 2750,5340 1250,5340 32767,528 32767)))"") ^ _intPolygon(""MULTIPOLYGON(((528 1724,1734 2552,2934 1640,4140 2396,5340 1460,5340 32767,528 32767)))""); polygon -= polygonB; } }}} This is my code that wraps boost::geometry to implement the operators used above: {{{ template template _TPolygon< T > _TPolygon< T >::operator-(Geometry const& geometry) const { // should not be necessary //if( boost::geometry::area(geometry)==0 ) return *this; _TPolygon< T > polygonOut; boost::geometry::difference(*this, geometry, polygonOut); // should not be necessary //boost::geometry::correct( polygonOut ); return polygonOut; } template template _TPolygon& _TPolygon< T >::operator-=(Geometry const& geometry) { // boost::geometry::difference cannot operate in-place // http://lists.boost.org/geometry/2012/02/1796.php *this = *this - geometry; return *this; } template template _TPolygon< T > _TPolygon< T >::operator^(Geometry const& geometry) const { _TPolygon< T > polygonOut; boost::geometry::sym_difference(*this, geometry, polygonOut); // should not be necessary //boost::geometry::correct( polygonOut ); return polygonOut; } }}}" Volker Schöch Boost 1.55.0 9156 1.54 broke NO_ZLIB=1 and NO_COMPRESSION=1 iostreams Boost 1.55.0 Boost 1.55.0 Bugs Jonathan Turkanis new 2013-09-24T07:43:20Z 2017-01-31T10:02:58Z "https://github.com/boostorg/iostreams/commit/dfb1f61c26b77556a1cca0654d08847cf87d26ae This commit broke the ability to build boost with without zlib. The following bjam succeeds if you remove these two lines added by this patch. Please fix for 1.55? {{{ + [ ac.check-library /zlib//zlib : /zlib//zlib + zlib.cpp gzip.cpp ] }}} {{{ ./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi variant=release link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete --prefix=/home/ubuntu/out/staging/boost -j2 install Performing configuration checks - 32-bit : yes - arm : no - mips1 : no - power : no - sparc : no - x86 : yes - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam error: at /home/ubuntu/build/boost_1_54_0/tools/build/v2/kernel/modules.jam:107 error: Unable to find file or target named error: '/zlib//zlib' error: referred to from project at error: 'libs/iostreams/build' error: could not resolve project reference '/zlib' }}}" Warren Togami Boost 1.55.0 9194 Compilation error with Boost.Python python USE GITHUB Boost 1.55.0 Boost 1.55.0 Bugs Ralf W. Grosse-Kunstleve new 2013-10-03T08:40:35Z 2013-10-03T08:40:35Z "Extra "")"" in {{{ In file included from /mnt/server/grups/boost-1.55.0/include/boost/python/class.hpp:17:0, from /mnt/server/grups/boost-1.55.0/include/boost/python.hpp:18, from /mnt/server/grups/src/cttc-pce/pce-unstable/apps/server/plugins/management/mgmt_cli/cli_python_plugin_loader.cpp:1: /mnt/server/grups/boost-1.55.0/include/boost/python/data_members.hpp:308:47: error: missing '(' in expression }}} {{{ # if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)) }}} The fix seems straightforward" Ramon Casellas Boost 1.55.0 9205 [variant or mpl] compilation error VC2013 mpl Boost 1.55.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-10-07T08:38:13Z 2013-11-12T10:04:50Z "I tried to use Boost 1.55.0 Beta RC's boost::variant with VC2013 RC. Compilation error this code: {{{ #include int main() { boost::variant v; } }}} Error message is here: (sorry, japanese error message...) {{{ 1>------ ビルド開始: プロジェクト:CppConsole, 構成:Debug Win32 ------ 1> main.cpp 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(149): error C2143: 構文エラー : ';' が '<' の前にありません。 1> c:\boost\boost-trunk-master\boost\mpl\assert.hpp(153) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::eval_assert' の参照を確認してください 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(149): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(152): error C2238: ';' の前に無効なトークンがあります。 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(159): error C2143: 構文エラー : ';' が '<' の前にありません。 1> c:\boost\boost-trunk-master\boost\mpl\assert.hpp(163) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::eval_assert_not' の参照を確認してください 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(159): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\boost\boost-trunk-master\boost\mpl\assert.hpp(162): error C2238: ';' の前に無効なトークンがあります。 1>c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\arg.hpp(45): error C2039: 'assert_not_arg' : 'boost::mpl' のメンバーではありません。 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::arg<1>::apply' の参照を確認してください 1> with 1> [ 1> T1=boost::mpl::l_end 1> , T2=int 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply.hpp(63) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply_wrap2,0>,T1,T2>' の参照を確認してください 1> with 1> [ 1> T1=boost::mpl::l_end 1> , T2=int 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\reverse_fold_impl.hpp(74) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply2' の参照を確認してください 1> with 1> [ 1> ForwardOp=boost::mpl::arg<1> 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\reverse_fold.hpp(41) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::aux::reverse_fold_impl<2,boost::mpl::l_iter>,boost::mpl::l_iter,State,BackwardOp,ForwardOp>' の参照を確認してください 1> with 1> [ 1> T0=int 1> , T1=char 1> , State=boost::mpl::l_end 1> , BackwardOp=boost::mpl::bind2,boost::mpl::void_>::type,boost::mpl::_1,boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>> 1> , ForwardOp=boost::mpl::arg<1> 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\transform.hpp(65) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::reverse_fold,boost::mpl::void_>::type,boost::mpl::_1,boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>>,boost::mpl::arg<1>>' の参照を確認してください 1> with 1> [ 1> Seq=boost::mpl::list2 1> , F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\transform.hpp(113) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::aux::reverse_transform1_impl::apply::type>>' の参照を確認してください 1> with 1> [ 1> P1=boost::mpl::list2 1> , P2=boost::unwrap_recursive 1> , Sequence=boost::mpl::list2 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\eval_if.hpp(41) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::transform1' の参照を確認してください 1> with 1> [ 1> Seq1=boost::mpl::list2 1> , Seq2OrOperation=boost::unwrap_recursive 1> , OperationOrInserter=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\transform.hpp(138) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::eval_if,boost::mpl::is_lambda_expression,boost::mpl::not_>,boost::mpl::false_,boost::mpl::false_>,boost::mpl::transform1,boost::mpl::transform2>' の参照を確認してください 1> with 1> [ 1> Seq2OrOperation=boost::unwrap_recursive 1> , Seq1=boost::mpl::list2 1> , OperationOrInserter=boost::mpl::na 1> , Inserter=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\variant\variant.hpp(1209) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::transform,boost::unwrap_recursive,boost::mpl::na,boost::mpl::na>' の参照を確認してください 1> with 1> [ 1> T0=int 1> , T1=char 1> ] 1> c:\users\a_takahashi\documents\visual studio 2013\projects\cppconsole\cppconsole\main.cpp(5) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::variant' の参照を確認してください 1>c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\arg.hpp(45): error C3861: 'assert_not_arg': 識別子が見つかりませんでした 1>c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\arg.hpp(63): error C2039: 'assert_not_arg' : 'boost::mpl' のメンバーではありません。 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(80) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::arg<2>::apply' の参照を確認してください 1> with 1> [ 1> T1=boost::mpl::l_end 1> , T2=char 1> , T3=boost::mpl::na 1> , T4=boost::mpl::na 1> , T5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\bind.hpp(50) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply_wrap5,U1,U2,U3,U4,U5>' の参照を確認してください 1> with 1> [ 1> U1=boost::mpl::l_end 1> , U2=char 1> , U3=boost::mpl::na 1> , U4=boost::mpl::na 1> , U5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\bind.hpp(143) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::aux::resolve_bind_arg,U1,U2,U3,U4,U5>' の参照を確認してください 1> with 1> [ 1> U1=boost::mpl::l_end 1> , U2=char 1> , U3=boost::mpl::na 1> , U4=boost::mpl::na 1> , U5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(80) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>::apply' の参照を確認してください 1> with 1> [ 1> F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> , T1=boost::mpl::l_end 1> , T2=char 1> , T3=boost::mpl::na 1> , T4=boost::mpl::na 1> , T5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\bind.hpp(160) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply_wrap5,boost::mpl::arg<1>>,0>,boost::mpl::_2>,U1,U2,U3,U4,U5>' の参照を確認してください 1> with 1> [ 1> F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> , U1=boost::mpl::l_end 1> , U2=char 1> , U3=boost::mpl::na 1> , U4=boost::mpl::na 1> , U5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\bind.hpp(206) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::aux::resolve_bind_arg,boost::mpl::arg<1>>,0>,boost::mpl::_2>,U1,U2,U3,U4,U5>' の参照を確認してください 1> with 1> [ 1> F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> , U1=boost::mpl::l_end 1> , U2=char 1> , U3=boost::mpl::na 1> , U4=boost::mpl::na 1> , U5=boost::mpl::na 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(49) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::bind2,boost::mpl::void_>::type,boost::mpl::_1,boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>>::apply' の参照を確認してください 1> with 1> [ 1> F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> , T1=boost::mpl::l_end 1> , T2=char 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\apply.hpp(63) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply_wrap2,boost::mpl::void_>::type,boost::mpl::_1,boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>>,T1,T2>' の参照を確認してください 1> with 1> [ 1> F=boost::unwrap_recursive 1> , Tag=boost::mpl::void_ 1> , T1=boost::mpl::l_end 1> , T2=char 1> ] 1> c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\reverse_fold_impl.hpp(81) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply2' の参照を確認してください 1> with 1> [ 1> BackwardOp=boost::mpl::bind2,boost::mpl::void_>::type,boost::mpl::_1,boost::mpl::bind1,boost::mpl::arg<1>>,0>,boost::mpl::_2>> 1> ] 1>c:\boost\boost-trunk-master\boost\mpl\aux_\preprocessed\plain\arg.hpp(63): error C3861: 'assert_not_arg': 識別子が見つかりませんでした ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== }}} patch to boost/mpl/assert.hpp, line 137: {{{ #if BOOST_WORKAROUND(BOOST_MSVC, >= 1700) }}} to {{{ #if BOOST_WORKAROUND(BOOST_MSVC, == 1700) }}}" Akira Takahashi Boost 1.55.0 9247 locale - build failure with recommended icu configuration locale Boost 1.55.0 To Be Determined Bugs Artyom Beilis new 2013-10-13T16:45:28Z 2013-10-13T16:45:28Z "Configuring icu as recommended here:[[Br]] http://source.icu-project.org/repos/icu/icu/trunk/readme.html#RecBuild [[Br]]More precisely, build fails if icu::UnicodeString contructors are declared explicit. The attach patch fixes build errors. All fixes in formatter.cpp constructs UnicodeStrings from invariant strings (invariant characters defined here: http://icu-project.org/apiref/icu4c/platform_8h.html#a7fb0b0fede299f9d74973b15e79d3085). Previously all these constructors would involve an extra overhead as they were depending on the conversion framework. The change in time_zone.cpp still depends on the conversion framework (behavior not changed). I do not think it is possible to guarantee that the provided string only includes invariant characters. In this case, the resulting string is undefined." hvemha@… Boost 1.55.0 9252 Wrong compiler tag in .lib files Building Boost Boost 1.55.0 To Be Determined Bugs new 2013-10-15T17:41:46Z 2014-04-03T03:31:45Z "I build Boost with b2 --toolset=msvc11 The stage dir contains files like libboost_atomic-vc-mt-1_55.lib Note the ""vc"", which should be ""vc110"", as that's what VC will be looking for later on: 1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc110-mt-gd-1_55.lib'" Olaf van der Spek Boost 1.55.0 9278 Compiling error in MPL under VC12/VS2013 mpl Boost 1.55.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-10-21T04:36:52Z 2013-10-21T21:04:34Z Ticket #8750 indicated some compiling problems when using VC12. In 1.55.0 beta 1, most of the problems are gone. But the one in boost/mpl/assert.hpp still exist. The == in line 37 and 247 should be changed to >=. gongminmin@… Boost 1.55.0 9362 Non-const operator() don't compile phoenix Boost 1.55.0 To Be Determined Bugs Thomas Heller new 2013-11-11T03:39:18Z 2013-11-11T03:39:18Z "Using phoenix::bind with a user-defined function object with non-const operator() results in compile errors, even though the operator could be called. It seems that at some point Boost.Phoenix adds const qualifier to the bound function which results in compilation failure either when result_of is invoked (in C++11), or when the function object is called (in C++03). I've attached a test case and compilation errors from GCC 4.8.1 in C++03 and C++11 modes." Andrey Semashev Boost 1.55.0 9372 g++ 4.7 -Wshadow warnings need attention mpl Boost 1.55.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-11-12T23:24:27Z 2013-11-14T02:50:43Z "Following are warnings from g++ 4.7 boost/mpl/has_xxx.hpp:344:9: warning: ""BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION"" is not defined [-Wundef] boost/mpl/has_xxx.hpp:357:9: warning: ""BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES"" is not defined [-Wundef] boost/mpl/has_xxx.hpp:386:9: warning: ""BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION"" is not defined [-Wundef] boost/mpl/has_xxx.hpp:459:8: warning: ""BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE"" is not defined [-Wundef] " Tom Browder Boost 1.55.0 9383 augmented_crc example fails crc Boost 1.55.0 To Be Determined Bugs Daryle Walker new 2013-11-13T11:35:36Z 2013-11-13T11:35:36Z "I just built Boost 1.55.0 with VS 2008. Runs, but the example from http://www.boost.org/doc/libs/1_55_0/libs/crc/crc.html#crc_func fails. Source: {{{ // boost_ending.cpp : Defines the entry point for the console application. // #include ""stdafx.h"" #include // for boost::crc_basic, boost::augmented_crc #include // for boost::uint16_t #include // for assert #include // for std::cout #include // for std::endl // Main function int _tmain(int argc, _TCHAR* argv[]) { using boost::uint16_t; using boost::augmented_crc; uint16_t data[6] = { 2, 4, 31, 67, 98, 0 }; uint16_t const init_rem = 0x123; uint16_t crc1 = augmented_crc<16, 0x8005>( data, sizeof(data), init_rem ); uint16_t const zero = 0; uint16_t const new_init_rem = augmented_crc<16, 0x8005>( &zero, sizeof(zero) ); boost::crc_basic<16> crc2( 0x8005, new_init_rem ); crc2.process_block( data, &data[5] ); // don't include CRC std::cout << ""crc2: "" << crc2.checksum() << std::endl; std::cout << ""crc1: "" << crc1 << std::endl; assert( crc2.checksum() == crc1 ); std::cout << ""All tests passed."" << std::endl; std::cin.ignore(); return 0; } }}} Output: {{{ crc2: 22581 crc1: 36743 Assertion failed: crc2.checksum() == crc1, file boost_ending.cpp, line 33 }}}" Dominik Muth Boost 1.55.0 9384 Ticket spam filter is to restrictive. trac / subversion Boost 1.55.0 To Be Determined Bugs Douglas Gregor new 2013-11-13T11:41:29Z 2013-11-14T20:11:10Z "I tried to sumbit #9383 from 139.1.148.6 but the system said it was spam (ip). So I switched to 79.246.230.3 --- The message was also strange since I was asked to do a captcha, but there was no captcha: {{{ Captcha Error Submission rejected as potential spam (Akismet says content is spam, StopForumSpam says this is spam (ip)) Trac thinks your submission might be Spam. To prove otherwise please provide a response to the following. }}} " Dominik Muth Boost 1.55.0 9391 Trac: New Ticket Captcha trac / subversion Boost 1.55.0 To Be Determined Bugs Douglas Gregor new 2013-11-14T16:43:18Z 2013-11-14T17:06:39Z "The Captcha is not working (FF 25.0 + Chromium 30). Due to a false positive in the blacklist and to external links to references (removed them already), I can not submit a bug..." Axel Huebl Boost 1.55.0 9396 circular_buffer + gil compiler error circular_buffer Boost 1.55.0 To Be Determined Bugs Jan Gaspar new 2013-11-15T12:34:49Z 2013-11-15T12:34:49Z "When 'boost/gil/bit_aligned_pixel_iterator.hpp' is included, the compiler selects for whatever reason an std::uninitialized_copy overload from the gil header instead of boost::cb_detail::uninitialized_copy within boost::cb_detail::uninitialized_move_if_noexcept_impl (boost/circualr_buffer/details.hpp) for types with !boost::is_nothrow_move_constructible. A workaround (solution?) is to fully qualify the call to boost::cb_detail::uninitialized_copy, but why the std overload gets even selected? Is this a compiler bug? Or a gil problem? Tested on: Windows 7 SP1 x64 + MSVC 2010 SP1 {{{ #include #include // comment this to resolve struct Foo { Foo(const Foo&) {} }; int main(int, char*[]) { #if 1 boost::circular_buffer buffer; buffer.set_capacity(42); #endif #if 0 // minimum example typedef boost::cb_details::iterator< boost::circular_buffer , boost::cb_details::nonconst_traits< std::allocator > > InputIterator; boost::cb_details::uninitialized_move_if_noexcept_impl(InputIterator(), InputIterator(), (int*)nullptr, boost::false_type()); #endif return 0; } }}} " g.kuehnert Boost 1.55.0 9398 get-invocation-command is not using user provided value in some cases Building Boost Boost 1.55.0 To Be Determined Bugs new 2013-11-15T14:19:35Z 2013-11-15T14:37:50Z "Notably, the problem appears when trying to specify a custom or option to either gcc or clang toolchains (the latter deriving from the former. The get-invocation-command rule executes a shell command then return the output, or the user provided value if the execution did not output anything. However, it means that the user cannot overwrite the tools paths and has to manually patch the toolset file to hardcode the tool path, which is an issue. The easy fix would be to check for an option before calling get-invocation-command (at least in gcc.jam, but it is possible that other toolsets are also affected). A maybe-not-so-easy-fix would be to change get-invocation-command behavior to return the user provided value if there is one, and to call the specified command if there is none (so the opposite of what is currently done). tl;dr : '''tools/build/v2/user-config.jam''' {{{ using clang : 3.3 : /home/arcanis/emscripten/emcc : ""/home/arcanis/emscripten/archiver"" ""/home/arcanis/emscripten/emranlib"" ; }}} Doesn't (cannot) work " nison.mael@… Boost 1.55.0 9399 Can't build 1.55.0 release with GCC 4.x and -std=c++0x Building Boost Boost 1.55.0 To Be Determined Bugs new 2013-11-16T09:46:49Z 2013-11-20T19:47:45Z "Hello, I cannot build boost 1.55.0 with GCC 4.5.4, nor GCC 4.8.2, and -std=c++0x on NetBSD, Solaris, nor OS X. It always stops on ""error: no matching function for call to 'call_once(boost::once_flag&, void (&)())'"". For example: {{{ gcc.compile.c++ bin.v2/libs/wave/build/gcc-4.5.4/release/threading-multi/instantiate_cpp_grammar.o In file included from ./boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:15:0, from ./boost/spirit/home/classic/core/non_terminal/grammar.hpp:21, from ./boost/spirit/home/classic/core.hpp:42, from ./boost/spirit/include/classic_core.hpp:11, from ./boost/wave/grammars/cpp_grammar.hpp:14, from libs/wave/src/instantiate_cpp_grammar.cpp:24: ./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp: In member function 'IdT boost::spirit::classic::impl::object_with_id_base::acquire_object_id() [with TagT = boost::spirit::classic::impl::grammar_tag, IdT = long unsigned int]': ./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:78:62: instantiated from 'boost::spirit::classic::impl::object_with_id::object_with_id() [with TagT = boost::spirit::classic::impl::grammar_tag, IdT = long unsigned int]' ./boost/spirit/home/classic/core/non_terminal/grammar.hpp:51:15: instantiated from 'boost::spirit::classic::grammar::grammar() [with DerivedT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, ContextT = boost::spirit::classic::parser_context<>]' ./boost/wave/grammars/cpp_grammar.hpp:623:41: instantiated from 'boost::wave::grammars::cpp_grammar::cpp_grammar(bool&, TokenT&, ContainerT&) [with TokenT = boost::wave::cpplexer::lex_token<>, ContainerT = std::list, boost::fast_pool_allocator > >]' ./boost/wave/grammars/cpp_grammar.hpp:738:91: instantiated from 'static boost::spirit::classic::tree_parse_info boost::wave::grammars::cpp_grammar_gen::parse_cpp_grammar(const LexIteratorT&, const LexIteratorT&, boost::wave::grammars::cpp_grammar_gen::position_type&, bool&, boost::wave::grammars::cpp_grammar_gen::token_type&, token_container_type&) [with LexIteratorT = boost::wave::cpplexer::lex_iterator >, TokenContainerT = std::list, boost::fast_pool_allocator > >, boost::wave::grammars::cpp_grammar_gen::position_type = boost::wave::util::file_position, std::allocator, boost::wave::util::CowString > > >, boost::wave::grammars::cpp_grammar_gen::token_type = boost::wave::cpplexer::lex_token<>, token_container_type = std::list, boost::fast_pool_allocator > >]' libs/wave/src/instantiate_cpp_grammar.cpp:48:40: instantiated from here ./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:140:17: error: no matching function for call to 'call_once(boost::once_flag&, void (&)())' In file included from ./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp:18:0, from ./boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:15, from ./boost/spirit/home/classic/core/non_terminal/grammar.hpp:21, from ./boost/spirit/home/classic/core.hpp:42, from ./boost/spirit/include/classic_core.hpp:11, from ./boost/wave/grammars/cpp_grammar.hpp:14, from libs/wave/src/instantiate_cpp_grammar.cpp:24: ./boost/thread/once.hpp: In function 'void boost::call_once(Function, boost::once_flag&) [with Function = void (*)()]': ./boost/spirit/home/classic/core/non_terminal/impl/static.hpp:72:13: instantiated from 'boost::spirit::classic::static_::static_(Tag) [with T = boost::thread_specific_ptr, std::list, boost::fast_pool_allocator > > >, boost::spirit::classic::parser_context<> >, boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, boost::spirit::classic::scanner >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> > > > >, Tag = boost::spirit::classic::impl::get_definition_static_data_tag]' ./boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:241:81: instantiated from 'typename DerivedT::definition& boost::spirit::classic::impl::get_definition(const boost::spirit::classic::grammar*) [with DerivedT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, ContextT = boost::spirit::classic::parser_context<>, ScannerT = boost::spirit::classic::scanner >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> >, typename DerivedT::definition = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >::definition >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> > >]' ./boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp:296:78: instantiated from 'typename boost::spirit::classic::parser_result, ScannerT>::type boost::spirit::classic::impl::grammar_parser_parse(const boost::spirit::classic::grammar*, const ScannerT&) [with int N = 0, DerivedT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, ContextT = boost::spirit::classic::parser_context<>, ScannerT = boost::spirit::classic::scanner >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> >, typename boost::spirit::classic::parser_result, ScannerT>::type = boost::spirit::classic::tree_match >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>]' ./boost/spirit/home/classic/core/non_terminal/grammar.hpp:57:54: instantiated from 'typename boost::spirit::classic::parser_result, ScannerT>::type boost::spirit::classic::grammar::parse_main(const ScannerT&) const [with ScannerT = boost::spirit::classic::scanner >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> >, DerivedT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, ContextT = boost::spirit::classic::parser_context<>, typename boost::spirit::classic::parser_result, ScannerT>::type = boost::spirit::classic::tree_match >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>]' ./boost/spirit/home/classic/core/non_terminal/grammar.hpp:65:9: instantiated from 'typename boost::spirit::classic::parser_result, ScannerT>::type boost::spirit::classic::grammar::parse(const ScannerT&) const [with ScannerT = boost::spirit::classic::scanner >, boost::spirit::classic::scanner_policies >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>, boost::spirit::classic::action_policy> >, DerivedT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >, ContextT = boost::spirit::classic::parser_context<>, typename boost::spirit::classic::parser_result, ScannerT>::type = boost::spirit::classic::tree_match >, boost::spirit::classic::node_val_data_factory, boost::spirit::classic::nil_t>]' ./boost/wave/grammars/cpp_grammar.hpp:706:69: instantiated from 'boost::spirit::classic::tree_parse_info boost::wave::grammars::parsetree_parse(const IteratorT&, const IteratorT&, const boost::spirit::classic::parser&) [with NodeFactoryT = boost::spirit::classic::node_val_data_factory, IteratorT = boost::wave::cpplexer::lex_iterator >, ParserT = boost::wave::grammars::cpp_grammar, std::list, boost::fast_pool_allocator > > >]' ./boost/wave/grammars/cpp_grammar.hpp:740:58: instantiated from 'static boost::spirit::classic::tree_parse_info boost::wave::grammars::cpp_grammar_gen::parse_cpp_grammar(const LexIteratorT&, const LexIteratorT&, boost::wave::grammars::cpp_grammar_gen::position_type&, bool&, boost::wave::grammars::cpp_grammar_gen::token_type&, token_container_type&) [with LexIteratorT = boost::wave::cpplexer::lex_iterator >, TokenContainerT = std::list, boost::fast_pool_allocator > >, boost::wave::grammars::cpp_grammar_gen::position_type = boost::wave::util::file_position, std::allocator, boost::wave::util::CowString > > >, boost::wave::grammars::cpp_grammar_gen::token_type = boost::wave::cpplexer::lex_token<>, token_container_type = std::list, boost::fast_pool_allocator > >]' libs/wave/src/instantiate_cpp_grammar.cpp:48:40: instantiated from here ./boost/thread/once.hpp:38:9: error: no matching function for call to 'call_once(boost::once_flag&, void (*&)())' ./boost/system/error_code.hpp: At global scope: ./boost/system/error_code.hpp:222:36: warning: 'boost::system::posix_category' defined but not used ./boost/system/error_code.hpp:223:36: warning: 'boost::system::errno_ecat' defined but not used ./boost/system/error_code.hpp:224:36: warning: 'boost::system::native_ecat' defined but not used ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -std=c++0x -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I""."" -c -o ""bin.v2/libs/wave/build/gcc-4.5.4/release/threading-multi/instantiate_cpp_grammar.o"" ""libs/wave/src/instantiate_cpp_grammar.cpp"" }}} With Clang, the release builds fine. Using -std=c++98 and GCC it also builds fine. Please, advise, Adam " adam@… Boost 1.55.0 9433 boost unit_test_framework is using deprecated version 1 timers timer Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2013-11-26T09:11:16Z 2013-11-26T09:11:16Z "boost::unit_test_framework is using internally the deprecated version 1 timers. As such we are not able to upgrade to the new cpu_timers. boost/timer/timer.hpp:38:1: error: ‘namespace boost::timer { }’ redeclared as different kind of symbol" pat Boost 1.55.0 9449 Boost.MPL min_element bug for equal elements (fix included) mpl Boost 1.55.0 To Be Determined Bugs Aleksey Gurtovoy new 2013-12-01T22:24:50Z 2013-12-02T11:27:48Z "For equal elements, Boost.MPL `min_element` with a predicate `Pred` does not satisfy its own requirements of returning the '''first''' element `i` that satifies `!Pred(j, i)` for all `j`. It turns out that `min_element` is implemented in terms of `max_element` with the negated predicate `not_`. In turn, `max_element` with its own predicate `Pred` is required to (and in fact does) return the first element `i` that satisfies `!Pred(i, j)`. It is straightforward to see that negating the predicate is a bug. The current implementation of `min_element` has `less` as its default predicate, and subsequently calls `max_element` with `greater_equal`, whereas the requirements indicate that it should use `greater`. This results in `min_element` returning the '''last''' element of the sequence, rather than the first. To get the required semantics, users currently have to supply `less_equal` to `min_element` as a workaround. The proper fix would be to implement `min_element` by calling `max_element` with the arguments for the predicate reversed: `lambda`. See below for a short example that displays the problem and implements the fix. The program sets up a `vector` of three equal elements. Both `min_element` and `max_element` are specified to return an iterator to the first (index 0) element. Instead, `min_element` returns an iterator to the last (index 2) element. Both the redefined predicate work-around and the reimplementation of `min_element` fix the problem. The example can be run from http://coliru.stacked-crooked.com/a/c517d85cbc0aee66 {{{#!c++ #include #include #include #include #include #include #include #include #include using namespace boost::mpl; template> struct stable_min_element : // mpl::min_element uses max_element> max_element> {}; int main() { using V = vector_c; using MinIdx = distance::type, min_element::type>; using LEMinIdx = distance::type, min_element >::type>; using SMinIdx = distance::type, stable_min_element::type>; using MaxIdx = distance::type, max_element::type>; std::cout << MinIdx::value; // ERROR: prints 2 instead of 0 std::cout << LEMinIdx::value; // 0 std::cout << SMinIdx::value; // 0 std::cout << MaxIdx::value; // 0 } }}}" Rein Halbersma Boost 1.55.0 9450 fstream open utf8 filename fails x86_64-w64-mingw32 filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2013-12-02T01:57:34Z 2014-10-16T03:25:21Z "boost::filesystem stream classes won't open files with non-ascii filenames provided as utf-8 strings. This happens with and without imbuing a locale as specified in the boost doc page ""Default Encoding under Microsoft Windows"". My example is basically the example on that page, but with an ifstream. I compiled boost on Arch Linux using the AUR mingw-w64 packages. I reproduced the issue on Windows 7 x64, Windows 7 x64 VM, and in x64 Wine. I confirmed that the file exists and is named properly by making a parallel test program using _wopen (the file opened successfully)." spoo@… Boost 1.55.0 9453 building with --without-context doesn't actually work Building Boost Boost 1.55.0 To Be Determined Bugs Vladimir Prus new 2013-12-02T07:00:35Z 2017-01-24T19:14:11Z "apparently you also need to pass --without-coroutine, but the output from the build does not say that at all: {{{ Component configuration: - atomic : building - chrono : building - context : not building - coroutine : building ... }}} it probably should state something like ""building (for couroutine), but not installing headers"". or abort. or disable coroutine too. something." Mike Frysinger Boost 1.55.0 9458 Boost Locale not compiling when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined locale Boost 1.55.0 To Be Determined Bugs Artyom Beilis new 2013-12-02T16:02:49Z 2015-07-07T13:24:49Z "Boost Locale uses Boost Thread lock types which definitions are not included through when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined (this macro is defined when BOOST_THREAD_VERSION is set to 4).[[BR]] I suggest to include in every file that uses any lock type.[[BR]] Since I build Boost only on Windows platforms attached patch may be incomplete.[[BR]] Best regards, Maksim." myasnikovmaksim@… Boost 1.55.0 9459 Boost Locale not compiling when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined locale Boost 1.55.0 To Be Determined Bugs Artyom Beilis new 2013-12-02T16:06:04Z 2013-12-02T16:09:48Z "Boost Locale uses Boost Thread lock types which definitions are not included through when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined (this macro is defined when BOOST_THREAD_VERSION is set to 4). I suggest to include in every file that uses any lock type. Since I build Boost only on Windows platforms attached patch may be incomplete. Best regards, Maksim." myasnikovmaksim@… Boost 1.55.0 9460 boost::statechart::fifo_worker not working well when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined statechart Boost 1.55.0 To Be Determined Bugs Andreas Huber new 2013-12-02T16:15:43Z 2015-07-07T13:25:04Z "boost::statechart::fifo_worker uses boost::mutex::scoped_lock typedef which is not accessible when BOOST_THREAD_DONT_PROVIDE_NESTED_LOCKS is defined (this macro is defined when BOOST_THREAD_VERSION is set to 4).[[BR]] I suggest to replace scoped_lock typedefs with explicit boost::unique_lock usage.[[BR]] Best regards, Maksim." myasnikovmaksim@… Boost 1.55.0 9463 Boost subgraph copy constructor in 1.55.0 not working properly but works well i 1.46.0 graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2013-12-03T07:05:01Z 2013-12-03T07:05:01Z "While using the boost 1.46.0, the copy constructor worked well to copy all deep level subgraphs. In this a recursive call to new subgraph is invoked while iterating over subgraphs hence it works well. But for boost 1.55.0, children iterator is used to iterate over subgraphs and as children iterator is able to iterate over only next level subgraphs, it do not perform deep copy and hence deep level subgraphs are not getting copied properly. I think children iterator should be made to iterate all deep level subgraphs so as to make it work like 1.46.0 " Mayur Narkhede Boost 1.55.0 9469 std::swap should be pulled in from in C++11 swap Boost 1.55.0 To Be Determined Bugs joseph.gauterin new 2013-12-04T09:34:53Z 2013-12-04T09:34:53Z boost/utility/swap.hpp #includes to bring std::swap in, which is OK for C++03 but not so in C++11: std::swap has been moved to as explained in [diff.cpp03.library]. Joaquín M López Muñoz Boost 1.55.0 9472 Undocumented define causes header-only libraries to have link dependency on system system Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2013-12-04T21:54:23Z 2013-12-06T18:12:23Z "Code using the ASIO library must be linked with a boost binary lib, even though asio is considered 'header only' library. Test system - ubuntu 13.10, using boost 1.55 download archive (not installed package). Similar problem reported in ticket 7085. Suspect this is systemic. Demo source code: {{{ /* $ g++ -I. -Wall asio_link_fail.cpp -Wno-unused-local-typedefs /tmp/ccjgSD3Q.o: In function `__static_initialization_and_destruction_0(int, int)': asio_link_fail.cpp:(.text+0x50): undefined reference to `boost::system::generic_category()' asio_link_fail.cpp:(.text+0x5a): undefined reference to `boost::system::generic_category()' asio_link_fail.cpp:(.text+0x64): undefined reference to `boost::system::system_category()' /tmp/ccjgSD3Q.o: In function `boost::asio::error::get_system_category()': asio_link_fail.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[_ZN5boost4asio5error19get_system_categoryEv]+0x7): undefined reference to `boost::system::system_category()' collect2: error: ld returned 1 exit status */ #include ""boost/asio.hpp"" int main() { return 1; } }}} " soda@… Boost 1.55.0 9476 boost::iostreams::copy - sink - ENOSPC (No space left on device) error handling iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2013-12-07T09:33:56Z 2013-12-11T06:39:27Z "Platform: GCC on Linux; boost 1.55. In the code fragment below, is there a way to handle ENOSPC? {{{ #include #include #include #include #include // open input file stream of the bzip2 file std::ifstream ifs(""file.bz2""); // open output stream to the ""full"" device // full device is a ""utility-device"" to check how applications handle ENOSPC // more details in ""man full"" std::ofstream ofs(""/dev/full""); // Setup the iostreams filter boost::iostreams::filtering_streambuf filters; filters.push(boost::iostreams::bzip2_decompressor()); filters.push(ofs); // ""run"" the filter boost::iostreams::copy(ifs, filters); }}} If I do strace of the compiled binary, the code seem to infinitely call writev() with the same data and returns ENOSPC error. {{{ writev(4, [{NULL, 0}, {""DATA DATA ""..., 4096}], 2) = -1 ENOSPC (No space left on device) }}} How can this error be handled or made thrown as an error from `boost::iostreams::copy()` Is it possible to set appropriate exceptions() on the ofstream object? I tried `ofs.exceptions(std::ios::badbit | std::ios::failbit)` but it didn't make any difference. " anonymous Boost 1.55.0 9477 Trac - captcha not working for new ticket; non-https link blocked by browser trac / subversion Boost 1.55.0 To Be Determined Bugs Douglas Gregor new 2013-12-07T09:38:52Z 2013-12-11T06:38:27Z Impossible to create new ticket unless you use specific browser features (firefox) to override the blocking. dckorah@… Boost 1.55.0 9478 boost::iostreams::copy - sink - ENOSPC (No space left on device) error handling iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2013-12-07T09:39:47Z 2013-12-07T18:57:47Z "Platform: GCC on Linux; boost 1.55. In the code fragment below, is there a way to handle ENOSPC? {{{ #include #include #include #include #include // open input file stream of the bzip2 file std::ifstream ifs(""file.bz2""); // open output stream to the ""full"" device // full device is a ""utility-device"" to check how applications handle ENOSPC // more details in ""man full"" std::ofstream ofs(""/dev/full""); // Setup the iostreams filter boost::iostreams::filtering_streambuf filters; filters.push(boost::iostreams::bzip2_decompressor()); filters.push(ofs); // ""run"" the filter boost::iostreams::copy(ifs, filters); }}} If I do strace of the compiled binary, the code seem to infinitely call writev() with the same data and returns ENOSPC error. {{{ writev(4, [{NULL, 0}, {""DATA DATA ""..., 4096}], 2) = -1 ENOSPC (No space left on device) }}} How can this error be handled or made thrown as an error from `boost::iostreams::copy()` Is it possible to set appropriate exceptions() on the ofstream object? I tried `ofs.exceptions(std::ios::badbit | std::ios::failbit)` but it didn't make any difference. " dckorah@… Boost 1.55.0 9499 Oracle Solaris Studio 5.12 warning at os_thread_functions.hpp line 465 interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2013-12-16T18:14:42Z 2013-12-24T16:29:00Z "Would be great if the following warning could be rectified. Thanks! ""path/to/boost/interprocess/detail/os_thread_functions.hpp"", line 465: Warning (Anachronism), badargtype2w: Formal argument 3 of type extern ""C"" void*(*)(void*) in call to pthread_create(unsigned*, const _pthread_attr*, extern ""C"" void*(*)(void*), void*) is being passed void*(*)(void*). " alessio.massaro@… Boost 1.55.0 9502 Unexpected behaviour of boost::mpi::request::test() mpi Boost 1.55.0 To Be Determined Bugs Matthias Troyer new 2013-12-17T14:04:33Z 2013-12-17T14:04:33Z "The following code snippet shows that boost::mpi::request::test() behaves differently depending on whether we send a message of built-in type or a message of custom type: {{{ struct custom_type { template void serialize(Archive& ar, const unsigned int version) {} }; [...] int i; auto req = comm.irecv(0,0,i); req.wait(); std::cout << ""Did we receive the built in type message: "" << bool(req.test()) << std::endl; custom_type c; auto req = comm.irecv(0,0,c); req.wait(); std::cout << ""Did we receive the custom type message: "" << bool(req.test()) << std::endl; }}} Output: {{{ Did we receive the built in type message: 1 Did we receive the custom type message: 0 }}} Similar behaviour is observed if you just repeatedly call req.test(): For the built-in type, the returned boost::optional switches from empty to non-empty once and then stays non-empty, whereas for the custom type it switches from empty to non-empty and in the next call goes back to empty again. For our application, it would be desirable if the custom type behaviour would be the same as the built-in type behaviour. If this is not possible or not advisable, then at least the documentation of boost::mpi::request should mention this difference in behaviour. " ettersi@… Boost 1.55.0 9507 [bcp] bcp creates broken build for asio component Building Boost Boost 1.55.0 To Be Determined Bugs new 2013-12-18T14:06:23Z 2015-09-09T07:52:51Z "When I try to extract the 'asio' component via bcp (and custom namespace), I end up with a broken build environment in the target dir. Every other component I tried to extract this way works. I'm on OS X 10.9.1 using XCode 5 command line tools. Steps to reproduce (in bash): {{{ ./bootstrap.sh ( cd tools/bcp/ && ../../tools/build/v2/engine/bin.macosxx86_64/bjam toolset=darwin ) ./dist/bin/bcp --namespace=akboost --namespace-alias \ build \ asio \ $HOME/build/akboost/ cp bjam $HOME/build/akboost cd $HOME/build/akboost ./bjam -d+2 debug release \ toolset=darwin \ threading=multi \ link=static \ cxxflags=-stdlib=libstdc++ \ cxxflags=-mmacosx-version-min=10.7 \ linkflags=-stdlib=libstdc++ \ linkflags=-mmacosx-version-min=10.7 \ --toolset-root=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk \ --macosx-version=10.7 --macosx-version-min=10.7 \ --layout=tagged \ --build-dir=$HOME/build/akboost_1.55_build \ --prefix=$HOME/akboost_1.55.0 \ install }}} This yields this error from bjam: {{{ link.jam: No such file or directory error: Unable to find file or target named error: '/boost/context//boost_context' error: referred to from project at error: 'libs/coroutine/build' error: could not resolve project reference '/boost/context' }}} If I use bcp to extract any other component (I tried algorithm, assign, chrono, date_time, detail, filesystem, filesystem3, foreach, gil, iostreams, multi_array, multi_index, numeric, property_tree, regex, serialization spirit signal system, timer and thread) everything works just fine and bjam works its magic. " virtualritz@… Boost 1.55.0 9532 BCP stackoverflow on Boost.Log Building Boost Boost 1.55.0 To Be Determined Bugs new 2013-12-29T17:04:48Z 2014-03-14T12:15:28Z "Boost.BCP fails to process Boost.Log: {{{ C:\Program Files (x86)\boost\boost_1_55_0>bin.v2\tools\bcp\msvc-11.0\release\link-static\bcp.exe --list log **** exception(225): stack overflow ******** errors detected; see standard output for details ******** }}} " Evgeny.Panasyuk@… Boost 1.55.0 9533 boost::accumulators::weighted_median different results for debug and release modes accumulator Boost 1.55.0 To Be Determined Bugs Matthias Troyer new 2013-12-29T17:05:47Z 2013-12-30T07:38:13Z "I have a different results for debug and release modes. Look at readme and example in https://github.com/aurusov/boost_accumulators_weighted_median_error" Andrey Urusov Boost 1.55.0 9536 narrow-conversion uses insufficient input char type date_time Boost 1.55.0 To Be Determined Bugs az_sw_dude new 2013-12-30T17:20:39Z 2013-12-30T17:32:35Z "Test runs exhibit this problem: {{{ compile-c-c++ ..\..\..\bin.v2\libs\date_time\test\teststreams.test\msvc-12.0\debug\address-model-64\posix_time\teststreams.obj teststreams.cpp boost/date_time/posix_time/posix_time_legacy_io.hpp(83) : warning C4244: 'argument' : conversion from 'wchar_t' to 'char', possible loss of data posix_time\teststreams.cpp(144) : see reference to function template instantiation 'std::basic_istream> &boost::posix_time::operator >>(std::basic_istream> &,boost::posix_time::time_duration &)' being compiled }}} The current implementation uses std::stringstream::narrow(char) with its 'char' input parameter type to transform 'charT' chars taken from a std::basic_istream into 'char' chars. This is most likely not what is intended if 'charT' is wider than 'char'. Tests were run against Boost version 1.55.0 and latest 'development' branch using vc10, vc11, and vc12. Test logs are attached. " dani@… Boost 1.55.0 9538 BOOST_PROTO_USE_NORMAL_RESULT_OF incorrectly defined proto Boost 1.55.0 To Be Determined Bugs Eric Niebler new 2013-12-31T18:32:22Z 2013-12-31T18:32:22Z "In proto/proto_fwd.hpp, based on how the macro BOOST_PROTO_USE_NORMAL_RESULT_OF is used, it's meant to be defined when the compiler supports c++11 decltype and implements N3276, for example, BOOST_PROTO_RESULT_OF is boost::result_of when BOOST_PROTO_USE_NORMAL_RESULT_OF is defined. However, its definition seems incorrect, and is inconsistent with the comments next to it. {{{ #ifdef BOOST_NO_CXX11_DECLTYPE_N3276 ^^^^^^ this should be #ifndef # // Proto can only use the decltype-based result_of if N3276 has been # // implemented by the compiler. # // See http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3276.pdf # ifndef BOOST_PROTO_USE_NORMAL_RESULT_OF # define BOOST_PROTO_USE_NORMAL_RESULT_OF # endif #endif }}} " Hui Li Boost 1.55.0 9542 [system] BOOST_ERROR_CODE_HEADER_ONLY only works with full source tree system Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-01-04T11:24:51Z 2014-01-04T11:24:51Z defining the BOOST_ERROR_CODE_HEADER_ONLY symbol only works when using the source tree. but it breaks compilation when the boost headers and compiled libraries are installed (e.g. in /usr/include or other fhs-like locations). timblechmann Boost 1.55.0 9545 program_options description printout bug program_options Boost 1.55.0 To Be Determined Bugs Vladimir Prus new 2014-01-06T12:29:02Z 2014-01-07T18:44:42Z "When setting the default value of a float option to 0.05, the help description that is printed by the program states that the default value is 0.0500000007. For double, it states ""0.050000000000000003"". The value of the variable within the program is correct, i.e. 0.05. I'm compiling with: $ g++ --version g++ (GCC) 4.8.3 20131226 (prerelease) Here is a test program that reproduces the problem when run with the option ""--help"": {{{ #include ""boost/program_options.hpp"" int main(int argc, char ** argv) { float dt; boost::program_options::variables_map vm; boost::program_options::options_description desc(""Description""); desc.add_options() (""help"", ""Print help message"") (""dt"", boost::program_options::value(&dt)->default_value(0.05), ""Time step"") ; boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); boost::program_options::notify(vm); if(vm.count(""help"")) desc.print(std::cout); std::cout << ""dt = "" << dt << ""\n""; return 0; } }}} " Torquil Sørensen Boost 1.55.0 9547 "Boost Filesystem documentation contains now removed ""make_absolute()"" method" filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-01-06T15:37:19Z 2014-01-06T15:37:19Z "In http://www.boost.org/doc/libs/1_55_0/libs/filesystem/doc/reference.html#class-path there is a ""path"" method ""make_absolute()"" that doesn't exist anymore. It points to the non-member operational function ""absolute()"" that replaces ""make_absolute()"" though. Has this commit not been backported? https://svn.boost.org/trac/boost/changeset/80163" riccardi@… Boost 1.55.0 9552 bimap compilation fails on 1.55 that was successful on 1.54 (hash_detail issues) bimap Boost 1.55.0 To Be Determined Bugs Matias Capeletto new 2014-01-08T05:36:30Z 2014-01-08T05:36:30Z "Bimap compilation fails on Boost 1.55 because of hashing issues. Platform: gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1 x64, C++11 compilation mode Bimap declaration: {{{ typedef boost::bimap, boost::bimaps::unconstrained_set_of, boost::bimaps::vector_of_relation> Nbimap; Nbimap m_nbimap; }}} Where id is unsigned int or int (conditional). Build log is attached." Artem V L Boost 1.55.0 9554 read_graphviz example code crashes graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-01-08T11:57:46Z 2014-01-08T12:11:48Z "The example code for read_graphviz crashes when run. http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/read_graphviz.html#example See also http://stackoverflow.com/q/20967950/16582" anonymous Boost 1.55.0 9555 signals - libs/signals/test/swap_test.cpp compilation error on Debian squeeze signals Boost 1.55.0 To Be Determined Bugs Douglas Gregor new 2014-01-08T18:23:25Z 2014-01-08T18:23:25Z "Unit tests for 'signals' library fail to compile on Debian due to missing '#include ' in swap_test.cpp. Platform: Debian squeeze (6.0.5), target=gcc-4.6, architecture=x86, 32-bit, variant=release (debug variant compiles). Unit tests being run under bjam with 'variant=release -a -q -d2 -d+4' arguments produce the following error: ""g++"" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -DBOOST_ALL_NO_LIB=1 -DBOOST_SIGNALS_NO_DEPRECATION_WARNING -DBOOST_SIGNALS_STATIC_LINK -DBOOST_TEST_NO_AUTO_LINK=1 -DNDEBUG -I""../../.."" -c -o ""../../../bin.v2/libs/signals/test/swap_test.test/gcc-4.6/release/link-static/swap_test.o"" ""swap_test.cpp"" In file included from ../../../boost/config.hpp:26:0, from ../../../boost/signal.hpp:25, from swap_test.cpp:4: ../../../boost/config/user.hpp:111:0: warning: ""BOOST_ALL_NO_LIB"" redefined [enabled by default] :0:0: note: this is the location of the previous definition swap_test.cpp: In member function 'void HelloWorld::operator()() const': swap_test.cpp:11:5: error: 'cout' is not a member of 'std' 0.000007 sec system; 0.000087 sec user ...failed gcc.compile.c++ ../../../bin.v2/libs/signals/test/swap_test.test/gcc-4.6/release/link-static/swap_test.o... ...skipped swap_test for lack of swap_test.o... SEM: gcc-link-semaphore now used by swap_test ...failed updating 1 target... ...skipped 1 target... ...updated 50 targets... ERROR: building default configuration returned 1 Mercurial unified diff of fix: {{{ diff -r af87ea28f909 boost/libs/signals/test/swap_test.cpp --- a/boost/libs/signals/test/swap_test.cpp Thu Dec 19 23:16:23 2013 +0000 +++ b/boost/libs/signals/test/swap_test.cpp Wed Jan 08 18:20:02 2014 +0000 @@ -1,8 +1,9 @@ // https://svn.boost.org/trac/boost/ticket/5521 // claims a linker error for this. +#include #include #include struct HelloWorld { }}} " Monty Brandenberg Boost 1.55.0 9560 operations_test_static unit test crashes during static initialization phase on Mac/10.7/32-bit/darwin-4.2.1 filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-01-10T21:11:28Z 2014-04-16T15:20:49Z "Verifying a 32-bit build of Boost on Mac, I get a consistent crash in operations_test_static during static initialization (prior to main() invocation). Problem appears to be a lack of initialization of path.hpp's anon namespace 'codecvt_facet_ptr'. Platform: 1.55.0, Mac OS 10.7, Xcode 4.3.3, darwin-4.2.1, address-model=32, architecture=x86 Build sequence is (approximately): {{{ ./bjam toolset=darwin variant=debug address-model=32 architecture=x86 --layout=tagged --with-filesystem -sNO_BZIP2=1 -d2 -d+4 stage cd libs/filesystem/test ../../../bjam toolset=darwin variant=debug address-model=32 architecture=x86 --layout=tagged --with-filesystem -sNO_BZIP2=1 -d2 -d+4 -a -q }}} Stacktrace of access violation: {{{ (gdb) run Starting program: /Users/monty/3P/3p-boost-update/boost/bin.v2/libs/filesystem/test/operations_test_static.test/darwin-4.2.1/debug/address-model-32/architecture-x86/link-static/operations_test_static Reading symbols for shared libraries ++......................... done Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000000 0x00058054 in std::__codecvt_abstract_base::in (this=0x0, __state=@0xbfffeba0, __from=0x1660cc ""operations-test-%%%%-%%%%-%%%%-%%%%"", __from_end=0x1660ef """", __from_next=@0xbfffeb9c, __to=0xbfffec90, __to_end=0xbffff090, __to_next=@0xbfffeb98) at codecvt.h:206 206 __to, __to_end, __to_next); (gdb) where #0 0x00058054 in std::__codecvt_abstract_base::in (this=0x0, __state=@0xbfffeba0, __from=0x1660cc ""operations-test-%%%%-%%%%-%%%%-%%%%"", __from_end=0x1660ef """", __from_next=@0xbfffeb9c, __to=0xbfffec90, __to_end=0xbffff090, __to_next=@0xbfffeb98) at codecvt.h:206 #1 0x00057e10 in convert_aux (from=0x1660cc ""operations-test-%%%%-%%%%-%%%%-%%%%"", from_end=0x1660ef """", to=0xbfffec90, to_end=0xbffff090, target=@0xbffff200, cvt=@0x0) at path_traits.cpp:76 #2 0x00057908 in boost::filesystem::path_traits::convert (from=0x1660cc ""operations-test-%%%%-%%%%-%%%%-%%%%"", from_end=0x1660ef """", to=@0xbffff200, cvt=@0x0) at path_traits.cpp:158 #3 0x00058c79 in boost::filesystem::path::wstring (this=0xbffff288, cvt=@0x0) at path.hpp:392 #4 0x00058d0a in boost::filesystem::path::wstring (this=0xbffff288) at path.hpp:386 #5 0x00058346 in boost::filesystem::detail::unique_path (model=@0xbffff288, ec=0x0) at unique_path.cpp:113 #6 0x000375fb in boost::filesystem::unique_path (p=@0xbffff288) at operations.hpp:544 #7 0x000339b5 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at operations_test.cpp:118 #8 0x0003371a in global constructors keyed to _ZN12_GLOBAL__N_18platformE () at operations_test.cpp:2035 #9 0x8fe11203 in __dyld__ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE () #10 0x8fe10d68 in __dyld__ZN16ImageLoaderMachO16doInitializationERKN11ImageLoader11LinkContextE () #11 0x8fe0e2c8 in __dyld__ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEjRNS_21InitializerTimingListE () #12 0x8fe0f268 in __dyld__ZN11ImageLoader15runInitializersERKNS_11LinkContextERNS_21InitializerTimingListE () #13 0x8fe03694 in __dyld__ZN4dyld24initializeMainExecutableEv () #14 0x8fe07f99 in __dyld__ZN4dyld5_mainEPK12macho_headermiPPKcS5_S5_ () #15 0x8fe012ef in __dyld__ZN13dyldbootstrap5startEPK12macho_headeriPPKclS2_ () #16 0x8fe01063 in __dyld__dyld_start () }}} " Monty Brandenberg Boost 1.55.0 9566 program_options parsers.cpp does not compile: template-related error program_options Boost 1.55.0 To Be Determined Bugs Vladimir Prus new 2014-01-13T10:44:55Z 2014-01-13T10:44:55Z "When compiling program_options/src/parsers.cpp for sun/release/stdlib-sun-stlport/threading-multi Sun Studio 11 C++ 5.8, the compiler issues the following errors: ""libs/program_options/src/parsers.cpp"", line 162: Error: Could not find a match for boost::program_options::parse_config_file(const char*, const boost::program_options::options_description&, bool). ""libs/program_options/src/parsers.cpp"", line 169: Error: Could not find a match for boost::program_options::parse_config_file(const char*, const boost::program_options::options_description&, bool). The attached patch solves the problem by expliciting the template parameter for parse_config_file. I guess this is a bug in the compiler rather than in boost, but it seems to me that the suggested patch is still correct C++. Since this is the only issue that would inhibit use of program_options on my platform, for me it would be very useful to integrate the patch into the library." rv1971 Boost 1.55.0 9568 incomplete type is not allowed typeof Boost 1.55.0 To Be Determined Bugs Peder Holt new 2014-01-13T11:49:45Z 2014-01-13T11:49:45Z "if compiling with latest intel compiler XE Composer 2013 SP1 IA-32 with vs2012 compilation fails, --- using BOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE did not modify anything, because reason is due to typeof --- ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp(50): error: incomplete type is not allowed struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl ^ detected during: instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector1>, T=Ado::COMPtr_::COMPtr]"" at line 140 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp"" instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=Ado::C OMPtr_::COMPtr]"" at line 50 instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 581 of ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp(140): error: class ""boost::type_of::encode_type>, Ado::COMPtr_::COMPtr>"" has no member ""type"" BOOST_TYPEOF_REGISTER_TEMPLATE(boost::scope_exit::detail::wrapper, 1) ^ detected during: instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=Ado::C OMPtr_::COMPtr]"" at line 50 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp"" instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 581 of ""../../src/global/basic/aserialization_handler.cxx"" ../../src/global/basic/aserialization_handler.cxx(581): error: class ""boost::type_of::decode_begin> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>>>"" has no member class ""type"" BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../src/global/basic/aserialization_handler.cxx(581): error: not a class or struct name BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../src/global/basic/aserialization_handler.cxx(581): error: class ""boost_se_wrapped_t_0_581"" has no member ""type"" BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp(50): error: incomplete type is not allowed struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl ^ detected during: instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector1>, T=Ado::COMPtr_::COMPtr]"" at line 140 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp"" instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=Ado::C OMPtr_::COMPtr]"" at line 50 instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 581 of ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp(140): error: class ""boost::type_of::encode_type>, Ado::COMPtr_::COMPtr>"" has no member ""type"" BOOST_TYPEOF_REGISTER_TEMPLATE(boost::scope_exit::detail::wrapper, 1) ^ detected during: instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=Ado::C OMPtr_::COMPtr]"" at line 50 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp"" instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 581 of ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(29): error: name followed by ""::"" must be a class or namespace name BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~) ^ detected during instantiation of class ""boost::type_of::sizer [with V=]"" at line 581 of ""../../src/global/basic/aserialization_handler. cxx"" ../../src/global/basic/aserialization_handler.cxx(581): error: class ""boost::type_of::decode_begin> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>>>"" has no member class ""type"" BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../src/global/basic/aserialization_handler.cxx(581): error: not a class or struct name BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../src/global/basic/aserialization_handler.cxx(581): error: class ""boost_se_wrapped_t_1_581"" has no member ""type"" BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp(50): error: incomplete type is not allowed struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl ^ detected during: instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector1>, T=Ado::SerializationHandler:: Impl]"" at line 56 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/modifiers.hpp"" instantiation of class ""boost::type_of::encode_type_impl [with V=boost::type_of::vector0, T=Ado::SerializationHandler::Impl]"" at line 50 instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=Ado::SerializationHandler::Impl *]"" at line 581 o f ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/modifiers.hpp(56): error: class ""boost::type_of::encode_type>, Ado::SerializationHandler::Impl>"" has no member ""type"" BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_pointer_fun); ^ detected during: instantiation of class ""boost::type_of::encode_type_impl [with V=boost::type_of::vector0, T=Ado::SerializationHandler::Impl]"" at line 50 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp"" instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=Ado::SerializationHandler::Impl *]"" at line 581 o f ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/typeof_impl.hpp(44): error: class ""boost::enable_if, boost::type _of::sizer<>>"" has no member ""type"" sizer::type> >::type encode(T&); ^ detected during instantiation of ""boost::type_of::encode"" based on template arguments , Ado::SerializationHandler::Impl *> at line 581 of ""../../src/global/basic/aserialization_handler.cxx"" ../../src/global/basic/aserialization_handler.cxx(581): error: no instance of constructor ""boost_se_params_t_581::boost_se_params_t_581"" matches the argument li st argument types are: (Ado::COMPtr_::COMPtr, Ado::COMPtr_::COMPtr, Ado::SerializationHandler::Impl *) BOOST_SCOPE_EXIT((pNewRepoSession) (pCurrentRepo) (this_)) ^ ../../src/global/basic/aserialization_handler.cxx(583): error: expression must have pointer type this_->_CloseNewRepoSession(pNewRepoSession, pCurrentRepo); ^ ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp(50): error: incomplete type is not allowed struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl ^ detected during: instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector2, boost::mpl::size_t<65589U>>, T=Ado::COMPtr_::COMPtr]"" at line 53 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/modifiers.hpp"" instantiation of class ""boost::type_of::encode_type_impl [with V=boost::type_of::vector1>, T=Ado::COMPtr_::C OMPtr]"" at line 50 instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector1>, T=const Ado::COMPtr_::COMPtr ]"" at line 140 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp"" instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=const Ado::COMPtr_::COMPtr]"" at line 50 instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 907 of ""../../src/global/basic/aserialization_handler.cxx"" ../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/modifiers.hpp(53): error: class ""boost::type_of::encode_type, boost::mpl::size_t<65589U>>, Ado::COMPtr_::COMPtr>"" has no member ""type"" BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_fun); ^ detected during: instantiation of class ""boost::type_of::encode_type_impl [with V=boost::type_of::vector1>, T=Ado::COMPtr_::C OMPtr]"" at line 50 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp"" instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector1>, T=const Ado::COMPtr_::COMPtr ]"" at line 140 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/scope_exit.hpp"" instantiation of class ""boost::type_of::encode_type_impl> [with V=boost::type_of::vector0, P0=const Ado::COMPtr_::COMPtr]"" at line 50 of ""../../../build_link/i140-vc110-mt-gd-6_4/include/boost/typeof/encode_decode.hpp"" instantiation of class ""boost::type_of::encode_type [with V=boost::type_of::vector0, T=boost::scope_exit::detail::wrapper>]"" at line 907 of ""../../src/global/basic/aserialization_handler.cxx"" ../../src/global/basic/aserialization_handler.cxx(907): error: class ""boost::type_of::decode_begin> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost: :mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<>, boost::mpl::size_t<> , boost::mpl::size_t<>>>"" has no member class ""type"" BOOST_SCOPE_EXIT(pSerializer) ^ ../../src/global/basic/aserialization_handler.cxx(907): error: not a class or struct name BOOST_SCOPE_EXIT(pSerializer) ^ ../../src/global/basic/aserialization_handler.cxx(907): error: class ""boost_se_wrapped_t_0_907"" has no member ""type"" BOOST_SCOPE_EXIT(pSerializer)" iloehken@… Boost 1.55.0 9573 type_rebinder template specialization is not found using Sun's compiler 12.3 interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-01-14T20:22:32Z 2014-02-26T21:28:43Z "'''#include [[BR]] using namespace boost::interprocess;[[BR]] typedef boost::interprocess::managed_mapped_file::segment_manager segment_manager_t;'''[[BR]] /*[[BR]] Including those 3 lines above , is like code below when Sun's compiler trying to specialize type_rebinder and it does not find it, because of int = Ptr and there is no specialization for that type Compilation command : /appl/toolbox/solarisstudio12.3/bin/CC -v -library=stdcxx4 -D_XOPEN_SOURCE=500 -I/home/uqadir/boost_1_55/boost _1_55_0/ main.cpp #include [[BR]] #include [[BR]] #include [[BR]] #include [[BR]] #include [[BR]] #include [[BR]] typedef boost::intrusive::bhtraits, 1>, boost::intrusive::default_tag, 1, 3>, cha r, unsigned>, boost::intrusive::rbtree_node_traits< boost::interprocess::offset_ptr, 1>, 1, boost::intrusive ::default_tag, 3 > '''second_rebind_type_t''' ;[[BR]] typedef boost::intrusive::detail::type_rebinder <'''int''', second_rebind_type_t, '''0'''>::type my_type; '''<-- no such specialization in boost''' [[BR]] */ main () { } " vladmir.venediktov@… Boost 1.55.0 9597 """boost::iostreams::file_descriptor"" doesn't close Windows low-level file descriptors properly when specifying ""file_descriptor_flags::close_handle""" iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-01-20T15:32:51Z 2014-01-20T15:32:51Z "When opening a file on Windows using {{{boost::iostreams::file_descriptor}}}, {{{boost::iostreams::file_descriptor_sink}}} or {{{boost::iostreams::file_descriptor_source}}} in combination with a low-level file descriptor and when specifying {{{file_descriptor_flags::close_handle}}}, then the file descriptor isn't closed properly on close/exit. Using one of the mentioned methods, the low-level file descriptor is converted to a Windows handle using the API call {{{_get_osfhandle}}} [#point1 (1)]: {{{#!c++ void file_descriptor_impl::open(int fd, flags f) { open(reinterpret_cast(_get_osfhandle(fd)), f); } }}} When closing, the file handle is closed using {{{CloseHandle}}}: {{{#!c++ void file_descriptor_impl::close_impl(bool close_flag, bool throw_) { if (handle_ != invalid_handle()) { if (close_flag) { bool success = #ifdef BOOST_IOSTREAMS_WINDOWS ::CloseHandle(handle_) == 1; #else BOOST_IOSTREAMS_FD_CLOSE(handle_) != -1; #endif if (!success && throw_) throw_system_failure(""failed closing file""); } handle_ = invalid_handle(); flags_ = 0; } } }}} According to [#point1 (1)] the API call {{{_close}}} [#point2 (2)] shall be used to close a low-level file descriptor. Practical tests shew that every time a file is opened and closed using one of the mentioned methods, Windows (XP) assigns a new file descriptor with an increasing value to it, unless the program runs out of available file handles. Manually closing the file by specifying {{{file_descriptor_flags::close_handle}}} and calling {{{_close}}} solves this issue. [=#point1 (1)] http://msdn.microsoft.com/en-us/library/ks2530z6.aspx \\ [=#point2 (2)] http://msdn.microsoft.com/en-us/library/5fzwd5ss.aspx" anonymous Boost 1.55.0 9607 auto_cpu_timer constructors Typo timer Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-01-26T19:33:45Z 2014-01-26T19:33:45Z """Otherwise format_string() == std::cout"" I don't think this is correct." Olaf van der Spek Boost 1.55.0 9611 boost::algorithm::clamp not available as boost::clamp algorithm Boost 1.55.0 To Be Determined Bugs Marshall Clow new 2014-01-27T20:46:57Z 2016-07-18T08:09:12Z clamp isn't available in boost namespace itself while other algorithms are. Could it be added? Olaf van der Spek Boost 1.55.0 9626 streams: ambiguous call to overloaded function when combining bufferstream and iostreams::filtering_streambuf interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-02-02T08:13:14Z 2014-02-02T08:16:41Z "Hi, I'm using interprocess::bufferstream, interprocess::basic_vectorstream and iostreams::filtering_streambuf to compress/decompress bzip2. The attached code compiles and works fine in 54, but fails to compile in 55. I've looked inside bufferstream.hpp and saw major changes (like multiple inheritance - which probably caused the problem). (BTW, I couldn't find the description of these changes in the 55 release notes. Where can I find it?) Thank you, Edan Ayal" Edan Ayal Boost 1.55.0 9631 function_input_iterator does not work with lambda iterator Boost 1.55.0 To Be Determined Bugs jeffrey.hellrung new 2014-02-05T11:04:49Z 2014-02-26T21:29:01Z "The following program does not compile on g++-4.8.1/clang-3.4 1 #define BOOST_RESULT_OF_USE_DECLTYPE 2 #include 3 4 int main() { 5 auto f = [](){return 1;}; 6 auto i = boost::make_function_input_iterator(f, 0); 7 return 0; 8 } error: g++ main.cpp -std=c++0x -I/home/wygos/libs/boost_1_55_0/include/ In file included from main.cpp:2:0: /home/wygos/libs/boost_1_55_0/include/boost/iterator/function_input_iterator.hpp: In instantiation of ‘class boost::impl::function_input_iterator’: /home/wygos/libs/boost_1_55_0/include/boost/iterator/function_input_iterator.hpp:112:11: required from ‘class boost::function_input_iterator’ main.cpp:6:54: required from here /home/wygos/libs/boost_1_55_0/include/boost/iterator/function_input_iterator.hpp:26:15: error: no type named ‘result_type’ in ‘struct main()::__lambda0’ class function_input_iterator ^ /home/wygos/libs/boost_1_55_0/include/boost/iterator/function_input_iterator.hpp:48:17: error: no type named ‘result_type’ in ‘struct main()::__lambda0’ dereference() const { ^ /home/wygos/libs/boost_1_55_0/include/boost/iterator/function_input_iterator.hpp:59:62: error: no type named ‘result_type’ in ‘struct main()::__lambda0’ mutable optional value; Suggested solution: function_input_iterator should use boost::result_of" Piotr Wygocki Boost 1.55.0 9643 rename should be more eplicit that it allows file move operations filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-02-07T14:57:54Z 2014-02-07T14:57:54Z "The documentation for rename says that it renames the file and then refers to the ISO C web page for rename for details. That page implies that the new name can be in another directory with the same filename to perform a move file operation, but it would be much more helpful if the boost filesystem documentation stated this explicitly. On stackoverflow, someone comments that if the move files due to filesystem differences, then you have to do a copy/delete combination anyway. It seems like if this is real possibility that boost.filesystme.rename should be enhanced to handle that for me so I don't have to remember a three-step operation in order to move files: 1) try rename and if that fails, then 2) copy file, and 3) delete file" Richard Boost 1.55.0 9657 Boost Log V2 Library Android Linking Building Boost Boost 1.55.0 To Be Determined Bugs new 2014-02-11T12:14:29Z 2014-02-13T09:24:22Z "I am trying to build Boost 1.55 Log v2 library on Android using NDK 9C. I have used the patches and build the boost using build-android.sh including thread,iostreams,random and log options. I have used the other features of Boost and they have worked. But there seems to be linking problem with the Log V2 on NDK 9c 64 bit which I could not solve with the existing solutions. I keep getting the same ""undefined reference"" error. On the web people solved this problem including ""#define BOOST_ALL_DYN_LINK"" but it did not work for me. The build-android.sh file option LIBRARIES=--with-libraries=date_time,filesystem,program_options,regex,signals,system,thread,iostreams,random,log Console Output: {{{ 10:35:45 **** Build of configuration Default for project BoostLogLib **** /home/guven/Desktop/IDP/adt/android-ndk-r9c/ndk-build all Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml Android NDK: WARNING:jni/Android.mk:BoostLogLib: non-system libraries in linker flags: /home/guven/Desktop/IDP/adt/android-ndk-r9c/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/libgnustl_static.a -lboost_system-gcc-mt-1_55 -lboost_filesystem-gcc-mt-1_55 -lboost_thread-gcc-mt-1_55 -lboost_iostreams-gcc-mt-1_55 -lboost_date_time-gcc-mt-1_55 -lboost_random-gcc-mt-1_55 -lboost_log-gcc-mt-1_55 -lboost_log_setup-gcc-mt-1_55 -lboost_program_options-gcc-mt-1_55 -lboost_regex-gcc-mt-1_55 -lboost_chrono-gcc-mt-1_55 Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the Android NDK: current module [armeabi-v7a] Compile++ thumb: BoostLogLib <= BoostLogLib.cpp [armeabi-v7a] SharedLibrary : libBoostLogLib.so jni/BoostLogLib.cpp:20: error: undefined reference to 'boost::log::v2_mt_posix::core::get()' /home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/boost_1_55_0/boost/log/attributes/attribute_name.hpp:80: error: undefined reference to 'boost::log::v2_mt_posix::attribute_name::get_id_from_string(char const*)' jni/BoostLogLib.cpp:20: error: undefined reference to 'boost::log::v2_mt_posix::core::set_filter(boost::log::v2_mt_posix::filter const&)' /home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/boost_1_55_0/boost/log/attributes/value_extraction.hpp:232: error: undefined reference to 'boost::log::v2_mt_posix::attribute_value_set::find(boost::log::v2_mt_posix::attribute_name) const' /home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/boost_1_55_0/boost/log/attributes/value_extraction.hpp:233: error: undefined reference to 'boost::log::v2_mt_posix::attribute_value_set::end() const' /home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/boost_1_55_0/boost/log/attributes/value_extraction.hpp:241: error: undefined reference to 'boost::log::v2_mt_posix::aux::attach_attribute_name_info(boost::exception&, boost::log::v2_mt_posix::attribute_name const&)' collect2: error: ld returned 1 exit status make: *** [obj/local/armeabi-v7a/libBoostLogLib.so] Error 1 10:35:50 Build Finished (took 4s.138ms) }}} BoostLogLib.h {{{ #ifndef BOOSTLOGLIB_H_ #define BOOSTLOGLIB_H_ #include #include #ifdef __cplusplus extern ""C"" { #endif /* * Class: HelloWorld * Method: print * Signature: ()V */ JNIEXPORT jstring JNICALL Java_com_example_boostloglib_BoostLogLib_print (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif /* BOOSTLOGLIB_H_ */ }}} BoostLogLib.cpp {{{ #define BOOST_LOG_USE_CHAR #define BOOST_ALL_DYN_LINK #include ""BoostLogLib.h"" #include #include #include namespace logging = boost::log; //[ example_tutorial_trivial_with_filtering void init() { logging::core::get()->set_filter ( logging::trivial::severity >= logging::trivial::info ); } int start_logging() { init(); return 0; } JNIEXPORT jstring JNICALL Java_com_example_boostloglib_BoostLogLib_print(JNIEnv * env, jobject obj){ start_logging(); jstring result = env->NewStringUTF(""Hello world!!!""); // C style string to Java String return result; } }}} Android.mk {{{ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := BoostLogLib LOCAL_SRC_FILES := BoostLogLib.cpp LOCAL_CPP_EXTENSION := .cpp LOCAL_CPPFLAGS += -std=c++0x LOCAL_LDLIBS += $(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/libgnustl_static.a LOCAL_CFLAGS += -lpthread LOCAL_CFLAGS += -I$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.8/include LOCAL_CFLAGS += -I$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include LOCAL_CFLAGS += -I/home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/boost_1_55_0 LOCAL_LDLIBS += -L/home/guven/Desktop/IDP/workspace/3rdparty/Boost-for-Android/build/lib -lboost_system-gcc-mt-1_55 -lboost_filesystem-gcc-mt-1_55 -lboost_thread-gcc-mt-1_55 -lboost_iostreams-gcc-mt-1_55 -lboost_date_time-gcc-mt-1_55 -lboost_random-gcc-mt-1_55 -lboost_log-gcc-mt-1_55 -lboost_log_setup-gcc-mt-1_55 -lboost_program_options-gcc-mt-1_55 -lboost_regex-gcc-mt-1_55 -lboost_chrono-gcc-mt-1_55 LOCAL_CPPFLAGS += -fexceptions LOCAL_CPPFLAGS += -frtti include $(BUILD_SHARED_LIBRARY) }}} Application.mk {{{ APP_MODULES := BoostLogLib APP_ABI := armeabi-v7a APP_STL := gnustl_static APP_PLATFORM := android-9 NDK_TOOLCHAIN_VERSION := 4.8 APP_CPPFLAGS += -std=c++0x }}} " Guven Boost 1.55.0 9660 boost_1_55_0.zip will not unzip, path names too long Building Boost Boost 1.55.0 To Be Determined Bugs new 2014-02-11T21:32:42Z 2016-07-25T21:33:21Z "boost_1_55_0.zip: Can not unzip long path name files with WinZip or the windows 7 unzip." anonymous Boost 1.55.0 9661 bind: Convert lost qualifier bind Boost 1.55.0 To Be Determined Bugs Peter Dimov new 2014-02-12T02:50:13Z 2014-02-12T02:50:13Z "The following code doesn't compile with vs2013. It will be OK if boost::bind is replaced with std::bind or using less placeholders. {{{ #include void foo(int&, int, int){} int main(){ using boost::bind; int a; auto&& f = bind(&foo, _1, _2, _3); f(a, 0, 0); return 0; } }}} " Yuan Yao Boost 1.55.0 9666 managed_shared_memory constructor crash interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-02-13T18:30:35Z 2014-07-03T16:33:15Z "The following code causes a crash on Visual Studio 2013 when compiling for 64-bit and with optimization. {{{ #include using namespace boost::interprocess; int main() { static const char name[] = ""test_shm""; shared_memory_object::remove(name); managed_shared_memory segment(create_only, name, 65536); return 0; } }}} The reported error is a buffer overrun The crash doesn't happen on 32-bit builds. It also doesn't happen when building without optimization. Finally, it doesn't happen when compiling with /GS- (disable security checks). This is the stack trace: {{{ msvcr120.dll!__crt_debugger_hook(int _Reserved=1) Line 60 C testshm.exe!__raise_securityfailure(_EXCEPTION_POINTERS * ExceptionPointers=0x000000013fa8c170) Line 70 C testshm.exe!__report_gsfailure(unsigned __int64 StackCookie=63963535653567328) Line 241 C testshm.exe!boost::intrusive::rbtree_algorithms,1> >::rebalance_after_insertion(const boost::interprocess::offset_ptr >,__int64,unsigned __int64,0> & header=, boost::interprocess::offset_ptr >,__int64,unsigned __int64,0> p={...}) Line 528 C++ testshm.exe!boost::intrusive::bstree_impl,0>::block_ctrl,boost::intrusive::rbtree_node_traits,1>,0,boost::intrusive::default_tag,3>,void,unsigned __int64,1,4>::insert_equal(boost::interprocess::rbtree_best_fit,0>::block_ctrl & value={...}) Line 861 C++ testshm.exe!boost::interprocess::rbtree_best_fit,0>::priv_add_segment(void * addr=0x0000000050000063, unsigned __int64 segment_size=1374736) Line 426 C++ testshm.exe!boost::interprocess::segment_manager,0>,boost::interprocess::iset_index>::segment_manager,0>,boost::interprocess::iset_index>(unsigned __int64 segment_size=65536) Line 414 C++ testshm.exe!boost::interprocess::ipcdetail::basic_managed_memory_impl,0>,boost::interprocess::iset_index,8>::create_impl(void * addr=0x0000000000000000, unsigned __int64 size=1) Line 176 C++ testshm.exe!boost::interprocess::ipcdetail::managed_open_or_create_impl::priv_open_or_create,0>,boost::interprocess::iset_index,8> > >(boost::interprocess::ipcdetail::create_enum_t type=1068023640, const char * const & id=0x00000000000000c2, unsigned __int64 size=8, boost::interprocess::mode_t mode=read_write, const void * addr=0x0000000000000000, const boost::interprocess::permissions & perm={...}, boost::interprocess::ipcdetail::create_open_func,0>,boost::interprocess::iset_index,8> > construct_func) Line 407 C++ testshm.exe!main() Line 9 C++ testshm.exe!__tmainCRTStartup() Line 626 C kernel32.dll!BaseThreadInitThunk() Unknown ntdll.dll!RtlUserThreadStart() Unknown }}}" seppleviathan@… Boost 1.55.0 9667 Testing v 1.55 : bad characters in some .output files range Boost 1.55.0 To Be Determined Bugs Neil Groves new 2014-02-14T10:10:50Z 2014-06-26T22:19:04Z "There are bad characters at end of string of this line of a .output file (generated by ../b2 in status sub-dir): hello worldhello worlda wide stringanother wide string^@ That prevents some tools to read till end of file. $ cat boost1.55-1.55.0/bin.v2/libs/range/test/iterator_range.test/gcc-4.8/debug/link-static/threading-multi/iterator_range.output Running 7 test cases... hello worldhello worlda wide stringanother wide string *** No errors detected EXIT STATUS: 0 $ grep EXIT boost1.55-1.55.0/bin.v2/libs/range/test/iterator_range.test/gcc-4.8/debug/link-static/threading-multi/iterator_range.output Binary file boost1.55-1.55.0/bin.v2/libs/range/test/iterator_range.test/gcc-4.8/debug/link-static/threading-multi/iterator_range.output matches hexdump -C ......./iterator_range.output ........ 00 0a 45 58 49 54 ........ ^^^^^ These characters are unexpected in the middle of the file. There are some more errors in other .output files I'm now analyzing." Tony Reix Boost 1.55.0 9669 Invalid links in Boost python python USE GITHUB Boost 1.55.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2014-02-15T00:13:46Z 2014-03-10T22:46:45Z "The page http://www.boost.org/doc/libs/1_55_0/libs/python/doc/ contains links to web pages that are not valid Eg. ""Building Hybrid Systems With Boost Python""" parama_chakra@… Boost 1.55.0 9675 qt5: moc invocation broken for Qt 5.2 build Boost 1.55.0 To Be Determined Bugs Vladimir Prus new 2014-02-17T08:38:37Z 2014-02-17T08:38:37Z "Between Qt 5.1 and 5.2, the command line syntax for `moc` changed, breaking builds. Specifically, the `-f` command line argument works differently: previously, it was `-f` where `` could be omitted; in Qt 5.2, it's `-f ` – notice the additional space, and `` is not optional any more. The moc invocation by the Qt5 module relied on the old behaviour as it passed `-f` without a filename. Furthermore, the moc input file was passed right after the `-f` argument. The same usage is now interpreted as the input file being the parameter to `-f`, and the input it expected on `stdin`. Since nothing is ever written into it, moc never finishes. " frank.richter@… Boost 1.55.0 9676 ptr_container without RTTI ptr_container Boost 1.55.0 To Be Determined Bugs Thorsten Ottosen new 2014-02-17T12:03:39Z 2014-02-17T12:03:39Z "ptr_container requires RTTI support only when compiled in debug mode. The reason for this seem to be a few assertions in `clone_allocator.hpp` and `detail/reversible_ptr_container.hpp`, which make use of `typeid`. It seems to me like these assertions should be surrounded by checks for `BOOST_NO_TYPEID` or something to that effect, so as to enable compilation in debug mode without RTTI. Steps to reproduce: Attempt to compile ptr_container in debug mode with RTTI support disabled. Expected result: Compilation finishes without error. Actual result: Compilation fails with errors in `clone_allocator.hpp` and `detail/reversible_ptr_container.hpp` regarding use of typeid when RTTI is disabled. " d.leinhaeuser@… Boost 1.55.0 9682 "first slash in path ""a:/b/c"" is interpreted as second node in [path.begin() parh.end()] sequence (windows)" filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-02-19T11:57:59Z 2014-02-19T11:57:59Z "//windows boost::filesystem::path p(""a:/b/c""); boost::filesystem::path result; for(boost::filesystem::path::iterator it = p.begin(); it != p.end(); ++it) { result/=*it; //value of it on second iteration is '/' } assert(result.string() == ""a:/b\c"");" anonymous Boost 1.55.0 9703 build system ignores --with-icu= option Building Boost Boost 1.55.0 To Be Determined Bugs new 2014-02-24T19:09:28Z 2014-03-10T22:37:10Z "Configured as: ./bootstrap.sh --with-icu --with-icu=/opt/icu4c-52.1 I can see that line in project-config.jam exists: path-constant ICU_PATH : /opt/icu4c-52.1 ; But when I run ./b2 -a it reports: - has_icu builds : yes (cached) ... - Boost.Locale needs either iconv or ICU library to be built. (repeated many times) " sergey@… Boost 1.55.0 9713 Boost.MPI - error in documentation mpi Boost 1.55.0 To Be Determined Bugs Matthias Troyer new 2014-02-25T22:26:39Z 2014-02-25T22:26:39Z "In the section MPI Implementation, page http://www.boost.org/doc/libs/1_55_0/doc/html/mpi/getting_started.html, there is an error in the documentation. In particular: int main() Should be: int main (int argc, char** argv) Otherwise the example code doesn't compile." anonymous Boost 1.55.0 9717 Boost math library on PPC64 has thousands of errors math Boost 1.55.0 To Be Determined Bugs John Maddock new 2014-02-26T14:36:01Z 2014-03-12T16:35:26Z "Hi, I'm trying to port Boost 1.55 on PowerPC64 BE and LE. Thousands of errors appear with math library. Investigation one test (bessel_zeros_example_1) which loops, I see by means of gdb the following: boost::math::cyl_bessel_j_zero< double, ..... boost::math::detail::cyl_bessel_j_zero_imp<__float128, ..... This ""__float128"" seems erroneous. However, looking at boost/math/special_functions/bessel.hpp code, I see that this type is chosen at compilation time, by means of: typedef typename policies::evaluation::type value_type; and it is a nightmare to understand why the compiler did choose __float128. Unless gdb is showing nuts ? Exact test is: bin.v2/libs/math/example/bessel_zeros_example_1.test/gcc-4.8.2/debug/bessel_zeros_example_1 Comparing execution path of this test code in PPC64/BE to Intel64, I see some floor() value computed differently on the 2 systems, and leading the test program to enter a wrong path and stay stucked in an infinite loop. There is some fundamental error, hidden by compiler which compiles templates and gives me no hint. I need help to determine what is wrong with Boost math on PPC64. Tony" Tony Reix Boost 1.55.0 9722 "Changeset 55698 Problem with ""base_unit_info::name());""" units Boost 1.55.0 To Be Determined Bugs Matthias Schabel new 2014-02-28T09:42:11Z 2014-03-11T00:38:56Z "In the Changeset 55698 in Line 85 the return(Scale::name() + S::name()); was changed to return(Scale::name() + base_unit_info::name()); Now I get the compiler-error /opt/local/include/boost/units/scaled_base_unit.hpp:85:32: Implicit instantiation of undefined template 'boost::units::base_unit_info' when I try to get the name of a scaled unit: boost::units::si::kilogram_base_unit kg; std::string strKg{kg.name()}; When I change line 85 back to the original version, the binding results and the output is correct. The same is valid for line 81 ""symbol"". Possible solution: go back to the former version. Side effects? or add in gram.hpp in line 36 template<> struct base_unit_info { static const char* name() { return(""gram""); } static const char* symbol() { return(""g""); } }; but results in double definitions of name and symbol. The same has to be repeated for the other base_units, e.g. centimeter_base_unit " Eckhard Nees Boost 1.55.0 9730 copy_graph doesn't use graph_traits graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-03-02T13:44:49Z 2014-03-02T13:44:49Z "copy_graph doesn't use graph_traits internally. Therefore, classes which don't have traversal_category and directed_category, such as std::vector or SGB, are not used as the source graph. follow code is compile error: {{{ #include #include #include #include #include int main() { using VectorGraph = std::vector>; auto vgraph = VectorGraph{{1, 2, 3}, {3, 5}, {5}, {4}, {0, 2}, {0}}; using Graph = boost::adjacency_list<>; auto graph = Graph{}; boost::copy_graph(vgraph, graph , boost::vertex_copy([]( boost::graph_traits::vertex_descriptor , boost::graph_traits::vertex_descriptor) {}) . edge_copy([]( boost::graph_traits::edge_descriptor , boost::graph_traits::edge_descriptor) {}) ); } }}} patch is here {{{ --- /usr/local/include/boost/graph/copy.hpp 2014-03-02 21:44:55.000000000 +0900 +++ copy.hpp 2014-03-02 21:45:05.000000000 +0900 @@ -248,8 +248,8 @@ template struct choose_graph_copy { - typedef typename Graph::traversal_category Trv; - typedef typename Graph::directed_category Dr; + typedef typename graph_traits::traversal_category Trv; + typedef typename graph_traits::directed_category Dr; enum { algo = (is_convertible::value && is_convertible::value) }}}" Masahiro Nawata Boost 1.55.0 9747 Warning from template_arity_impl using GCC 4.8.2 mpl Boost 1.55.0 To Be Determined Bugs Aleksey Gurtovoy new 2014-03-06T08:40:52Z 2014-03-06T08:40:52Z "This code {{{ template< typename F, int N > struct template_arity_impl { BOOST_STATIC_CONSTANT(int, value = sizeof(::boost::mpl::aux::arity_helper(type_wrapper(), arity_tag())) - 1 ); }; }}} from boost/mpl/aux_/preprocessed/gcc/template_arity.hpp assigns int value = sizeof(...) causing a sign-conversion warning. " Hartmut Schirmer Boost 1.55.0 9749 bzip2_decompressor input filter gives data_error_magic iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-03-06T20:11:05Z 2015-11-06T02:21:00Z "The bzip2_decompressor input filter is not able to read some bz2 files properly. It can read only the first few lines of the file then terminates with data_error_magic (BZ_DATA_ERROR_MAGIC in bzlib.h). After examining the problematic bz2 files I noticed that the first compressed stream is much shorter (536 bytes long) than the following streams. Debugging lead me to the conclusion that the simmetric_filter class's read method fills the buffer with new data even when the buffer hasn't been consumed completely. With the proposed solution below the files can be read to the end without further problems. The original code segment: {{{ if (status == f_good) status = fill(src); }}} The proposed modification: {{{ if (status == f_good && buf.ptr() == buf.eptr()) status = fill(src); }}} Could someone please make this modification? Regards, Balazs" Balazs Andor Zalanyi Boost 1.55.0 9770 Finish_edge event misbehavior. graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-03-11T14:20:04Z 2014-03-11T18:07:44Z "Consider the following diamond DAG: {{{ 3 / \ 1 2 \ / 0 }}} A depth first search on this graph with a visitor that records the on-finish-vertex and on-vinish-edge events should output something that: {{{ Finish vertex: 3 Finish vertex: 1 Finish edge: (1,3) Finish edge: (2,3) Finish vertex: 2 Finish edge: (0,1) Finish vertex: 0 Finish edge: (0,2 }}} But it acually outputs: {{{ Finish vertex: 3 Finish edge: (1,3) Finish vertex: 1 Finish edge: (1,3) Finish edge: (2,3) Finish vertex: 2 Finish edge: (0,2) Finish vertex: 0 Finish edge: (0,2) }}} The edge (0,2) is seen twice while (0,1) not at all (see the attachment). The problem comes from ""boost/graph/depth_first_search.hpp"" in depth_first_visit_impl(). The variable ""src_e"" is overwritten during the propagation with another tree edge. The following simple fix solves the problem: {{{ --- /tmp/depth_first_search.hpp 2014-03-11 15:11:53.616272419 +0100 +++ boost/graph/depth_first_search.hpp 2014-03-11 15:11:14.854137441 +0100 @@ -143,8 +143,8 @@ ColorValue v_color = get(color, v); if (v_color == Color::white()) { vis.tree_edge(*ei, g); - src_e = *ei; + Edge src_e = *ei; stack.push_back(std::make_pair(u, std::make_pair(src_e, std::make_pair(++ei, ei_end)))); u = v; put(color, u, Color::gray()); }}} " edwin.carlinet@… Boost 1.55.0 9790 LINK1104 link error Building Boost Boost 1.55.0 To Be Determined Bugs new 2014-03-18T14:59:46Z 2014-03-18T15:37:54Z "Downloaded 'latest' (at least I thought it was the lastest - Version pull down below suggests two subsequent versions) package from sourceforge. After installing, I started reading the ""Getting Started"" pages and came to the list of ""Need to be Compiled"" libraries. Since I'm currently after the filesystem capabilities, I built (using the bootstrap and .\b2 commands). I then started through the tutorial for the filesystem lib. I set up VS (using MSVS10), to find the boost libraries, and typed in tut1. Upon compile, I get a link error: LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-gd-1_55.lib' The reason that it cannot open it, is because there is NO ...vc100-mt... Instead, we now have ...vc110-mt... For now, I believe that I'll uninstall, and go back one version. Try to get through the tutorials. I've used boost libraries before, but always with non-compiled headers and with projects at work. I read about the filesystem iterators online and thought that I'd give it a whirl for a home project. This is what I ran into, so I thought that I'd report it." Mitch Oldroyd Boost 1.55.0 9792 named_mutex is not process Persistence by default in windows interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-03-19T09:02:27Z 2014-03-19T10:07:53Z "when the BOOST_INTERPROCESS_FORCE_GENERIC_EMULATION is defined, the named_mutex is ipcdetail::shm_named_mutex and is not process persistence. BTW: when we can remove the BOOST_INTERPROCESS_FORCE_GENERIC_EMULATION?" huyuguang@… Boost 1.55.0 9794 Calling async_read_some before(tcp::socket, ...) before tcp::socket::async_connect handler is called causes async_connect handler to indicate successful connect asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-03-20T04:56:44Z 2014-03-20T05:03:35Z "Given the example in this ticket, and assuming that there is no service running on localhost:29873, I would expect the example to print: {{{ Failed to read Failed to connect }}} Instead I get: {{{ Failed to read Connected! }}} {{{ #!cpp #include #include #include #include #include #include using namespace std; using namespace boost; using boost::asio::ip::tcp; int main(int argc, char* argv[]) { asio::io_service ios; tcp::socket socket{ios}; tcp::endpoint endpoint(asio::ip::address::from_string(""127.0.0.1""), 29873); socket.async_connect(endpoint, [](const system::error_code& ec) { if ( !ec ) { cout << ""Connected!"" << endl; } else { cout << ""Failed to connect"" << endl; } }); asio::streambuf readBuffer; asio::async_read_until(socket, readBuffer, '\n', [](const system::error_code& ec, size_t size) { if ( !ec ) { cout << ""Read "" << size << "" "" << endl; } else { cout << ""Failed to read"" << endl; } }); ios.run(); } }}} I also have the same problem in boost 1.48. I know it's not really logical to do what the example shows, but I would not expect the result it gives." tim.pavlic@… Boost 1.55.0 9804 boost::geometry::intersection returns input polygon when the result should be empty. geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-03-24T08:00:03Z 2014-03-24T08:00:03Z "The result of an intersection is sometimes equal to one of the input polygons, when the result should be empty. For example: {{{ typedef boost::geometry::model::d2::point_xy Point; typedef boost::geometry::model::polygon Polygon; Polygon pg1; Polygon pg2; boost::geometry::model::multi_polygon result; boost::geometry::append(pg1, Point(-6.0, 3.2500000000000013)); boost::geometry::append(pg1, Point(-9.0, 3.2500000000000022)); boost::geometry::append(pg1, Point(-9.0, 6.5)); boost::geometry::append(pg1, Point(-6.0, 6.5)); boost::geometry::append(pg1, Point(-6.0, 3.2500000000000013)); boost::geometry::append(pg2, Point(-3.0, 0.0)); boost::geometry::append(pg2, Point(-6.0, 0.0)); boost::geometry::append(pg2, Point(-6.0, 3.2500000000000013)); boost::geometry::append(pg2, Point(-3.0, 3.2500000000000009)); boost::geometry::append(pg2, Point(-3.0, 0.0)); boost::geometry::intersection(pg1, pg2, result); }}} After the intersection, result contains a polygon equal to pg1. We're using boost 1.55 and also tried the rescale_to_integer branch, which gives the same results. The problem seems to be with boost::geometry::within. We've previously had problems with within that we resolved by using a different strategy. Changing the strategy of the within calls in the function update_selection_map in select_rings.hpp makes intersection return the correct result for this case." Nick <7415963@…> Boost 1.55.0 9806 Possible bug in the transposition of a banded matrix (Boost uBLAS library) uBLAS Boost 1.55.0 To Be Determined Bugs Gunter new 2014-03-24T15:01:07Z 2014-03-24T15:01:07Z "The attached small example crashes if line 17 is commented out.[[BR]] In other words, it seems that it is not possible to assign the transpose of a banded matrix to an empty banded matrix." michele.de.stefano@… Boost 1.55.0 9808 "bc_clustering: ""has no edges"" identifier not found" graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-03-25T10:54:54Z 2016-08-09T09:14:14Z "Function has_no_edges(g) is behind graph namespace. Need to attach graph:: indicator before calling this function in bc_clustering.hpp. {{{ #!div style=""font-size: 80%"" Original library code: {{{#!python if (has_no_edges(g)) return; (...) do { (...) } while (!is_done && !has_no_edges(g)); }}} }}} {{{ #!div style=""font-size: 80%"" Modified code: {{{#!python if (graph::has_no_edges(g)) return; (...) do { (...) } while (!is_done && !graph::has_no_edges(g)); }}} }}}" Łukasz Ilnicki Boost 1.55.0 9816 boost::filesystem::is_empty does not work for symbolic links on Windows filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes assigned 2014-03-30T10:11:13Z 2015-09-10T13:04:38Z "Hi, I'm using boost::filesystem::is_empty() to check if configuration files I'm using are empty. Due to our software deployment these files are mostly symbolic links created with the Windows 7 internal mklink command. I've used Boost 1.46.1 in the past for this and everything worked fine. Lastly I upgraded to 1.55.0 and found out that is_empty does not work anymore. I at first asked at Stackoverflow for some help: [http://stackoverflow.com/questions/22668337/boostfilesystemis-empty-returns-false-for-symlinks Boost::filesystem::is_empty() returns false for Symlinks] I also created a Github project which reproduces the problem: [https://github.com/monsdar/BoostSymLinkError Github - BoostSymLinkError]" Nils Brinkmann Boost 1.55.0 9817 Boost Asio + Visual Studio 2013 crashes without BOOST_ASIO_DISABLE_IOCP asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-03-31T02:21:42Z 2014-03-31T02:21:42Z "In a Visual Studio 2013 SP1 Project with 8 executables using boost asio, 1 of them crashes in a repetitive way, always at the same point. The problem is related to memory management and code generation when win_iocp_socket_service is used. For example the following code, under very special circumstances, may trigger the crash: {{{ tcp::iostream * sss = new tcp::iostream(""mysite.com"", ""80""); }}} I realized that everytime it crashes, win_iocp_io_service constructor is not called. Hence iocp_.handle is not initialized and is later used in CreateIoCompletionPort() containing garbage, this being the ultimate reason of the crash. On the other hand, in the processes that work, the constructor is properly called, as it should always be. => Is there any known possibility for win_iocp_io_service constructor not being called? Is there anything like a default constructor that could be called instead? {{{ main() { tcp::iostream * sss = new tcp::iostream(""mysite.com"", ""80""); } }}} The code won't crash. But the following may do if MyClass instantiates boost::asio::io_service {{{ MyClass * myInstance = NULL; main() { if(myInstance) delete myInstance; tcp::iostream * sss = new tcp::iostream(""mysite.com"", ""80""); } }}} Don't expect to be able to reproduce it this way, as I said it's difficult to isolate because it probably is related to a bug in the compiler that only manifests in very special conditions that boost asio sometimes trigger. Simply moving lines of code may fix it. The problem is not in memory management in our source code, that was my first thought, but all tests suggest it isn't. In addition, the code has been working for years with boost 1.45 and GCC 4.5. The only change was moving to Visual Studio 2013 and boost asio 1.55. To corroborate, I was able to reproduce in a surrealistic way: just adding or commenting a line in dead code (code that can never be reached because it is placed after a return) would fix or make the application crash. Finally I solved everything by defining BOOST_ASIO_DISABLE_IOCP. I didn't change a single line of code. No more crashes since then. " kasty.jose@… Boost 1.55.0 9819 Documentation issue with Boost Graph Library graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-03-31T18:31:08Z 2014-03-31T18:31:08Z "The documentation (http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/mcgregor_common_subgraphs.html) for the mcgregor_common_subgraphs() function indicates that the only_connected_subgraphs bool comes after the callback function: {{{ // named parameter version template void mcgregor_common_subgraphs (const GraphFirst& graph1, const GraphSecond& graph2, SubGraphCallback user_callback, bool only_connected_subgraphs, const bgl_named_params& params); }}} However, in the code it actually comes before the callback (from boost/graph/mcgregor_common_subgraphs.hpp): {{{ // Named parameter variant of mcgregor_common_subgraphs template void mcgregor_common_subgraphs (const GraphFirst& graph1, const GraphSecond& graph2, bool only_connected_subgraphs, SubGraphCallback user_callback, const bgl_named_params& params) { }}} The examples in the documentation, though, use the working bool-first order. " Rocco Moretti Boost 1.55.0 9826 compress boost::property graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-04-01T23:04:08Z 2014-12-06T15:46:49Z "Hello, looking at property_map, I noticed that boost::property is wasting space. property will typically have size 16 because of the no_property member. list_edge will also be too long for the same reason. A proper use of the empty base optimization (possibly through tuple or compressed_pair) should help with this. Partial specializations for no_property may be a simpler alternative. Graphs can grow large, and it seems quite important to avoid wasting memory." marc.glisse@… Boost 1.55.0 9827 Missing support for some code page(e.g 949, 950) in windows conversion with std backend locale Boost 1.55.0 To Be Determined Bugs Artyom Beilis assigned 2014-04-02T09:55:42Z 2017-07-13T14:51:24Z "There is a table windows_encoding all_windows_encodings[] in wconv_codepage.ipp. It contains several code page definitions. However, it misses some code pages, such as the Korean code page(949) or Traditional Chinese Big5 code page(950), which will cause an invalid_charset_error when running in that windows for the following code: {{{ // Assuming we are using the std backend so it supports ansi encodings boost::locale::generator gen; gen.use_ansi_encoding(true); std::locale loc(gen("""")); // Throws invalid_charset_error when running in Korean windows but OK in English windows. // The charset is ""windows949"" in Korean windows, which is not in the table. std::string us = boost::locale::conv::to_utf(""abcdefg"", loc); }}} The root cause of this exception is that the generated code page string is not in the table. When the locale generator with std backend in windows platform generates a locale, it calls boost::locale::util::get_system_locale(bool use_utf8). This function will use the following code to generate the locale string(in default_locale.cpp): {{{ if(GetLocaleInfoA(LOCALE_USER_DEFAULT,LOCALE_IDEFAULTANSICODEPAGE,buf,sizeof(buf))!=0) { if(atoi(buf)==0) lc_name+="".UTF-8""; else { lc_name +="".windows-""; lc_name +=buf; } } }}} So the encoding part of the lc_name is windows-(code page). In a system with Korean(949) or Traditional Chinese(950) code page, this will generate an encoding string like ""windows-949"" or ""windows-950"". However, when wconv_from_utf::open() initializes, it tries to search ""windows949"" or ""windows950"" in array all_windows_encodings[]. Obviously it will not find the string, and the open() fails, then the exception is thrown. For a quick fix, I suggest adding the missing code page to the table: {{{ { ""cp949"", 949, 0 }, // Korean { ""uhc"", 949, 0 }, // From ""iconv -l"" { ""windows949"", 949, 0 }, // Korean // ""big5"" already in the table { ""windows950"", 950, 0 }, // TC, big5 }}} However the list may not be complete, and we may encounter problems when running in a system with code page that does not exist in the list. So we may probably add the following code to function int encoding_to_windows_codepage(char const *ccharset) in wconv_codepage.ipp: {{{ --- E:\Build1\boost_1_55_0\libs\locale\src\encoding\wconv_codepage.ipp 2014-04-02 16:34:52.000000000 +0800 +++ E:\Build2\boost_1_55_0\libs\locale\src\encoding\wconv_codepage.ipp 2014-04-02 17:31:37.000000000 +0800 @@ -206,12 +206,18 @@ return ptr->codepage; } else { return -1; } } + if(ptr==end && charset.size()>7 && charset.substr(0,7)==""windows"") { + int cp = atoi(charset.substr(7).c_str()); + if(IsValidCodePage(cp)) { + return cp; + } + } return -1; } template bool validate_utf16(CharType const *str,unsigned len) }}} This piece of code directly parses and validates the encoding string. The concern is that the call to IsValidCodePage may decrease the performance(not tested)." hucaonju@… Boost 1.55.0 9843 binary serializer wrong behaviour treating enums serialization Boost 1.55.0 To Be Determined Bugs Robert Ramey reopened 2014-04-07T01:55:11Z 2014-04-14T05:59:39Z "from iserializer.hpp template struct load_enum_type { template static void invoke(Archive &ar, T &t){ // convert integers to correct enum to load int i; ar >> boost::serialization::make_nvp(NULL, i); t = static_cast< T >(i); } }; it tries to load all enums int-sized. even in this case: enum class WrongBehaviour : unsigned char { }; it reads 4-byte in my case, while 1 byte's expected." jpjps@… Boost 1.55.0 9855 Corruption in container::string when used with boost::interprocess container Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-04-08T12:27:47Z 2014-05-02T11:19:21Z "I have found a rather strange problem in Boost.Container which I can only get to show itself when used from Boost.Interprocess. So the problem may be in either Boost.Container and Boost.Interprocess. I have a vector of strings (in shared memory). When I push back some of these strings one of them ends up missing its null termination (c_str() returns a string which has a garbage character at the end). I have tried to work out what the problem is, and my theory is that it is when the vector gets resized and the strings get moved into their new positions. The move semantics make the now ""empty"" strings ""unconstructed"". A new push_back will do an assign onto an unconstructed slot without ""reconstructing"" it. But this is where I get lost in the vector code... I have a short test program at https://gist.github.com/DonOregano/10116264. Compile and run and it will hopefully print out some information about the error. It appears that this error happens only on 64bit OSes. And I have only tried it on Linux (recent Ubuntu and Arch)." Lars Hagström Boost 1.55.0 9872 brandes_betweenness_centrality does not work with graph containing disjoint components. graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-04-11T02:14:19Z 2014-04-11T02:14:19Z "Assertion `get(path_count, w) != 0' failed, Assertion fails at the following if the graph contains disjoint components: boost/graph/distributed/betweenness_centrality.hpp:926 Sample Graph (in metis format): 5 3 2 1 3 2 5 4 " Alok Kumbhare Boost 1.55.0 9873 Boost.Geometry: boost::geometry::convex_hull makes a convex polygon look concave for certain values geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-04-11T12:12:13Z 2016-08-24T12:32:31Z "The goal is to determine if a polygon is convex. boost::geometry::convex_hull can be used to so: if the polygon equals that points, it is convex. However, convex_hull does make a convex polygon look concave for certain values. I found that for these values, convex_hull work as expected: * (15.0,631.0) * ( 8.0,628.0) * ( 8.0,679.0) * (15.0,682.0) I found that for these values, convex_hull work does not work as expected: * (15.9835,631.923), * (8.24075,628.579), * (8.24075,679.58 ), * (15.9835,682.926) Below is the main portion of the code, including comments and assert statements. I am using: * OS: Lubuntu (with all updates) and Windows 7 (with all updates) * GCC: 4.8.0 * Boost 1.55.0 * Qt Creator 2.8.1 with Qt 5.1. Full code can be viewed at GitHub -> project ProjectRichelBilderbeek -> folder Test -> folder CppBoostGeometryExample7 -> code there. {{{ #include #include #pragma GCC diagnostic push #pragma GCC diagnostic ignored ""-Weffc++"" #pragma GCC diagnostic ignored ""-Wunused-local-typedefs"" #pragma GCC diagnostic ignored ""-Wunused-variable"" #include #include #pragma GCC diagnostic pop //Goal: determine if a polygon, derived from points, is convex //Method: if the convex_hull equals that points, it is convex // //Bug: convex_hull does make a convex polygon look concave for certain values int main() { using namespace boost::geometry; typedef model::d2::point_xy Point; typedef model::polygon Polygon; //Example A: works as expected { /* Polygon used: - | - 2---3 | | - 1---0 | +--|---|---| (point values are those simplified from example B) */ const std::vector points { {15.0,631.0}, { 8.0,628.0}, { 8.0,679.0}, {15.0,682.0} }; Polygon polygon; append(polygon, points); assert(boost::geometry::num_points(polygon) == 4); boost::geometry::correct(polygon); assert(boost::geometry::num_points(polygon) == 5 && ""OK: boost::geometry::correct adds a point""); Polygon hull; boost::geometry::convex_hull(polygon, hull); assert(boost::geometry::num_points(hull) == 5 && ""OK: the hull of a convex polygon has the same number of points as that polygon""); assert(boost::geometry::equals(polygon,hull)); } //Example B: does not work as expected { /* Polygon used: - | - 2---3 | | - 1---0 | +--|---|---| */ const std::vector points { {15.9835,631.923}, {8.24075,628.579}, {8.24075,679.58 }, {15.9835,682.926} }; Polygon polygon; append(polygon, points); assert(boost::geometry::num_points(polygon) == 4); boost::geometry::correct(polygon); assert(boost::geometry::num_points(polygon) == 5 && ""OK: boost::geometry::correct adds a point""); Polygon hull; boost::geometry::convex_hull(polygon, hull); assert(boost::geometry::num_points(hull) == 6 && ""Should not add an extra point, as the original polygon was convex""); assert(!boost::geometry::equals(polygon,hull) && ""Should be equal, but does not""); } } }}}" richel@… Boost 1.55.0 9874 turning off 'include_next' support breaks includes wave Boost 1.55.0 To Be Determined Bugs Hartmut Kaiser new 2014-04-13T01:09:34Z 2014-04-13T01:09:34Z "The directive '#if BOOST_WAVE_SUPPORT_INCLUDE_NEXT !+ 0"" in file cpp_re2_lexer.hpp is in the wrong place, and causes all #include processing to break if BOOST_WAVE_SUPPORT_INCLUDE_NEXT is set to 0. I've attached a simple patch." jon@… Boost 1.55.0 9909 boost::geometry::intersection on two polygons returns incorrect result in one case geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-04-15T14:03:32Z 2014-04-15T14:04:59Z "Hi, There is problem with intersection of 2 BoostMultiPolygons. Result consisted of only one poly, but should contain 2. Our boost version is 1.55. We use MS VS 2005. Regards, Roman. Source: {{{ typedef boost::geometry::model::d2::point_xy BoostPoint; typedef boost::geometry::model::ring BoostRing; typedef boost::geometry::model::polygon BoostPolygon; typedef boost::geometry::model::multi_polygon BoostMultiPolygon; std::ifstream in(""input.txt""); BoostMultiPolygon mpSrc1, mpSrc2, mpRes; int polyCount; in>>polyCount; for (int i=0;i>pointCount; BoostPolygon curPolygon; BoostRing curRing; for(int j=0;j>x>>y; curRing.push_back(BoostPoint(x,y)); } curPolygon.outer() = curRing; mpSrc1.push_back(curPolygon); } in>>polyCount; for (int i=0;i>pointCount; BoostPolygon curPolygon; BoostRing curRing; for(int j=0;j>x>>y; curRing.push_back(BoostPoint(x,y)); } curPolygon.outer() = curRing; mpSrc2.push_back(curPolygon); } boost::geometry::intersection(mpSrc1, mpSrc1, mpRes); // mpRes contain only 1 poly. }}} Contaiment of input.txt : {{{ 2 27 1.7795412086922593 -0.6928106373008438 1.7891900856407261 -0.73346701678889104 1.8205003053203772 -0.93531819320144416 1.8121292936644648 -1.1807879269729795 1.7394808987253128 -1.4154103358489794 1.6076723780308959 -1.6226589254855832 1.4259881506704424 -1.7879353774152118 1.2072258150073207 -1.8995978354269698 0.96679470265783485 -1.9497809426285055 0.72163046540975617 -1.934949866855677 0.60267613336191828 -1.8966346198312143 0.41731164084513261 -1.7901953365848997 0.27656953156479103 -1.6293196865339519 0.19571165090939757 -1.4314527634772853 0.18350609592762368 -1.2180509346857271 0.24127641714720549 -1.0122551473377328 0.36470663256680463 -0.8348324228970293 0.67786452669735997 -0.60942974505933833 0.76516102039389844 -0.55513726961522536 0.81184032592082556 -0.52936777403881374 0.9456140934360856 -0.46301076844880257 1.0715439430748541 -0.41043054738175999 1.2051029188121665 -0.39184926061543224 1.3438936378781083 -0.42743758887205224 1.4793480212800743 -0.49201773445646352 1.6124976944936933 -0.5720053785043937 1.7795412086922593 -0.6928106373008438 21 1.1615462164308124 1.9754373027139951 1.5360149764505899 1.886934666316108 1.7087948729537776 1.8041724959027103 1.8362554271519613 1.661147055471015 1.8986519852214538 1.4800141235445734 1.8863188239381428 1.2888326322334416 1.8011664480979825 1.1172181154349941 1.6563856381255915 0.99175502703475193 1.4722208702867912 0.93196155014586246 1.3307251338101709 0.96302852254101112 1.1889015041869535 1.0063804359754345 1.0851554485208663 1.0419536723519502 0.9303284683690195 1.1007328938955687 0.86940784993802189 1.126033284720011 0.73031572956801372 1.2427081650372707 0.64785873725084664 1.4044502129533221 0.63514254042735985 1.5855522394036576 0.69418824418515901 1.7572299913513629 0.81561115796600125 1.8921971045865578 0.98011239294323005 1.9690019829279639 1.1615462164308124 1.9754373027139951 2 27 0.4022007544928915 -0.79320935498558631 0.67786021968757104 -0.59223694917595526 0.72926567327554304 -0.56003487788773432 0.83396700970889248 -0.50259243802045006 0.94559413155101379 -0.44613850745202116 1.0715439430748541 -0.39325208386734267 1.2051029188121665 -0.36717869475972431 1.2079466156233769 -0.36787014029848375 1.383100956224427 -0.42804360792267371 1.5711416115100447 -0.55533336824076429 1.5817841916061597 -0.56708324300601975 1.712343915281392 -0.71850008854626279 1.8205003053203772 -0.93531819320144416 1.812129293664464 -1.1807879269729791 1.7394808987253114 -1.4154103358489782 1.6076723780308948 -1.6226589254855814 1.4259881506704415 -1.7879353774152098 1.2072258150073203 -1.899597835426968 0.96679470265783507 -1.9497809426285047 0.72163046540975617 -1.934949866855677 0.53668372332048819 -1.8329698805024297 0.38798986558594484 -1.6829853756425535 0.28761203927878709 -1.4971642062029744 0.24369363713914372 -1.2905815617733336 0.25979764523973214 -1.0799969565688248 0.33461758716561152 -0.88249457350408611 0.4022007544928915 -0.79320935498558631 24 0.69106840510193146 1.7283118331970613 0.80491403567959896 1.8636891961105639 0.97252446578255225 1.9537292239908663 1.1615462164308124 1.9754373027139951 1.445329131723774 1.9083675258739219 1.6295697181486921 1.8205585564967293 1.778913808591188 1.6814494215012656 1.87956003859109 1.503895640420464 1.9222073685313958 1.304305525338967 1.908582733892098 1.1608175914897563 1.9058154916000392 1.1489111215390388 1.8042808050307477 0.99216149052586733 1.6864779577548399 0.90268670286901209 1.5974991741674556 0.89671357054168577 1.4640547165764142 0.9042573086441501 1.3308383768494927 0.94117823976176729 1.1908244144294404 0.99088339761011279 1.0620930550951979 1.0410213286408192 0.93028741744520127 1.0862837299344523 0.9007363188137486 1.0981042670180636 0.7529401342681733 1.21045558001871 0.66108738214900509 1.3717924996227908 0.6399134449656606 1.5562327178056883 0.69106840510193146 1.7283118331970613 }}} " romanp@… Boost 1.55.0 9912 shared_ptr SEGV in Android debug builds smart_ptr Boost 1.55.0 To Be Determined Bugs Peter Dimov new 2014-04-15T18:26:50Z 2014-04-21T17:01:49Z "Hi, I get a SEGV in the shared_ptr ref counting code on Android debug builds. Release builds do not have this problem. Instructions: 1. Install ndk (I used r9d 64-bit mac) 1. Ensure ndk-build is on your path 1. Download the attached sample program 1. Run build.sh 1. Install the executable on an Android device (I used a Nexus 7). As provided, you should get a SEGV in the sp_counted_base code. There are two ways to fix this: 1. Remove APP_OPTIM=debug from build.sh 1. Enable # LOCAL_CPPFLAGS := -DBOOST_SP_USE_PTHREADS in Android.mk Notes: Android debug builds disable the -mthumb option and instead use -marm. Ultimately this affects spinlock.hpp {{{ #elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ ) # include //code omitted #elif defined(BOOST_HAS_PTHREADS) # include }}} So release builds use spinlock_pt.hpp and debug builds use spinlock_gcc_arm.hpp" ian@… Boost 1.55.0 9926 Invalid limition for Sun compilers in foreach.hpp foreach Boost 1.55.0 To Be Determined Bugs Eric Niebler new 2014-04-18T19:59:58Z 2014-04-18T19:59:58Z "{{{ File boost/foreach.hpp defines the macro BOOST_FOREACH_NO_CONST_RVALUE_DETECTION for various compiler versions, including for __SUNPRO_CC, >= 0x5100 (at line 63) This restriction does not seem to be needed for compilers currently supported. Please remove this line, thus allowing the macro BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION to be defined. }}}" Stephen Clamage Boost 1.55.0 9934 Intersection of convex hulls leads to self intersecting polygon geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-04-22T07:56:45Z 2014-04-22T10:59:33Z "This might be a duplicate of #8419, #9081, or #9909. Please see here: http://stackoverflow.com/questions/23157391/taking-intersections-of-convex-hulls-in-boostgeometry I ran into the same problems with using double coordinates instead of integer ones and thought switching to integer ones would be a sufficient workaround." anonymous Boost 1.55.0 9943 Possible error in MSM state machine docs msm Boost 1.55.0 To Be Determined Bugs Christophe Henry new 2014-04-23T17:47:38Z 2014-05-26T21:50:04Z "http://www.boost.org/doc/libs/1_55_0/libs/msm/doc/HTML/ch01.html typedef player p; // makes transition table cleaner struct transition_table : mpl::vector11< // Start Event Target Action // +---------+------------+-----------+---------------------------+ row< Stopped , play , Playing , &p::start_playback >, The word ""Start"" should probably be ""State""." Fred Weed Boost 1.55.0 9959 boost::date_time::date addition/subtraction assignment operators date_time Boost 1.55.0 To Be Determined Bugs az_sw_dude new 2014-04-28T15:11:22Z 2014-04-28T15:11:22Z "Is there a reason why the += and -= operators of boost::date_time::date return a copy instead of a reference to the current object? Usually I would always expect a reference to be returned for any implementation of these operators. Thank you for your answers." s.swiercy@… Boost 1.55.0 9968 [filesystem] Streams don't handle unicode file name on Windows filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-04-30T20:56:08Z 2017-09-25T02:28:15Z "I want to read / write a file with a unicode file name using boost filesystem, boost locale on Windows (mingw). This is my code: #include #define BOOST_NO_CXX11_SCOPED_ENUMS #include #include namespace fs = boost::filesystem; #include #include int main() { std::locale::global(boost::locale::generator().generate("""")); fs::path::imbue(std::locale()); fs::path file(""äöü.txt""); if (!fs::exists(file)) { std::cout << ""File does not exist"" << std::endl; } fs::ofstream(file, std::ios_base::app) << ""Test"" << std::endl; } The fs::exists really checks for a file with the name äöü.txt. But the written file has the name äöü.txt. Reading gives the same problem. Using fs::wofstream doesn't help either, since this just handles wide input. So it seems the behaviour of fs::ofstream is off." mike@… Boost 1.55.0 9969 When interior ring of polygon touches exterior geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-04-30T21:38:20Z 2014-04-30T21:38:20Z "For boost::geometry::intersects and boost::geometry::intersection when a polygon's interior ring touches the exterior ring both functions throw `boost::geometry::overlay_invalid_input_exception`. Example geom: POLYGON ((-89.58781362007169 48.00097751710655, -89.58781362007169 48.00065167807103, -89.5881394591072 48.00065167807103, -89.58846529814272 48.000 65167807103, -89.58846529814272 48.00032583903552, -89.5881394591072 48.00032583903552, -89.5881394591072 48, -89.58651026392963 48, -89.58651026392 963 48.00032583903552, -89.5861844248941 48.00032583903552, -89.5861844248941 48.00065167807103, -89.58683610296514 48.00065167807103, -89.586836102 96514 48.00097751710655, -89.58781362007169 48.00097751710655), (-89.58781362007169 48.00065167807103, -89.58781362007169 48.00032583903552, -89.587 16194200065 48.00032583903552, -89.58716194200065 48.00065167807103, -89.58781362007169 48.00065167807103)) Throws when intersecting with box,ring,polygon,multi_polygon other geometries untested" ajoseph4@… Boost 1.55.0 9984 range iterator failing to model forward_iterator iterator Boost 1.55.0 To Be Determined Bugs jeffrey.hellrung new 2014-05-01T12:06:31Z 2014-09-19T04:11:26Z "The following code snippet passes successfully with GCC 4.9, but Clang 3.5 (installed from MacPorts) fails to accept std::next. The symptoms are somewhat alike #9431, but I have no idea if it's the same issue. According to the code of irange, I guess the problem is rather with Boost.Iterator. {{{ $ cat bar.cc #include int main() { auto range = boost::irange(0, 10); auto i = std::begin(range); auto j = std::next(i); std::cerr << *j << std::endl; } $ clang++-mp-3.5 -std=c++11 -I /opt/local/include bar.cc bar.cc:7:12: error: no matching function for call to 'next' auto j = std::next(i); ^~~~~~~~~ /opt/local/libexec/llvm-3.5/bin/../include/c++/v1/iterator:514:25: note: candidate template ignored: disabled by 'enable_if' [with _ForwardIter = boost::range_detail::integer_iterator] typename enable_if<__is_forward_iterator<_ForwardIter>::value>::type* = 0) ^ 1 error generated. $ g++-mp-4.9 -std=c++11 -I /opt/local/include bar.cc }}} " Akim Demaille Boost 1.55.0 10002 No swap for mapped_vector::reference uBLAS Boost 1.55.0 To Be Determined Bugs Gunter new 2014-05-02T16:19:21Z 2014-05-02T16:19:21Z "Hi. When compiling the following code {{{#!c++ #include #include #include void f(boost::numeric::ublas::matrix &m, boost::numeric::ublas::permutation_matrix &pm, boost::numeric::ublas::mapped_vector &v) { boost::numeric::ublas::lu_substitute(m, pm, v); } }}} with gcc 4.7 on linux, I get a compile error which at its core has /usr/include/boost/numeric/ublas/lu.hpp:71:17: error: no matching function for call to ‘swap(boost::numeric::ublas::mapped_vector::reference, boost::numeric::ublas::mapped_vector::reference)’ Shouldn't this be an allowed use of the classes involved? " Christian Adaker Boost 1.55.0 10014 date_from_tm incorrectly documented as part of posix_time date_time Boost 1.55.0 To Be Determined Bugs az_sw_dude new 2014-05-06T20:31:21Z 2015-02-23T04:28:05Z "On this page: http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/posix_time.html#date_time.posix_time.time_duration date_from_tm is documented as part of the posix_time namespace, which is it not. Instead, ptime_from_tm (which calls date_from_tm from the Gregorian namespace) should be documented in its place." Edward Brey Boost 1.55.0 10024 allocator memory leak pool Boost 1.55.0 To Be Determined Bugs Chris Newbold new 2014-05-08T16:26:18Z 2014-05-18T18:42:27Z "hi~ boost allocaltor memory leak bug. stl + boost allocator check crtdbg.h sample code. {{{ #include ""stdafx.h"" #include #include #include #include int main() { _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); typedef std::vector> Ints; Ints i; i.push_back(10); return 0; } }}} that code memory leak. not call free. " anonymous Boost 1.55.0 10026 Building Boost with #define BOOST_SP_ENABLE_DEBUG_HOOKS generates compile error C2665 in Visual C++ 2012 smart_ptr Boost 1.55.0 To Be Determined Bugs Peter Dimov new 2014-05-08T22:19:02Z 2015-02-13T18:50:07Z "I ran the following command from a Visual C++ command window. b2 toolset=msvc-11.0 address-model=32 variant=debug link=static threading=multi runtime-link=shared --build-type=complete define=BOOST_SP_ENABLE_DEBUG_HOOKS I am trying to compile the Boost Libraries with the debug hooks in. Is this a Visual C++ 2012 compiler issue as I also had problems with compilation on Visual C++ 2010. Any ideas? Thanks. I have tried this compilation on both Windows 7 and Windows 8.1. compile-c-c++ bin.v2\libs\thread\build\msvc-11.0\release\address-model-32\link-static\threading-multi\win32\thread.obj thread.cpp .\boost/smart_ptr/detail/sp_counted_impl.hpp(69) : error C2665: 'boost::sp_scalar_constructor_hook' : none of the 2 overloads could convert all the argument types .\boost/smart_ptr/detail/sp_counted_impl.hpp(45): could be 'void boost::sp_scalar_constructor_hook(void *,size_t,void *)' while trying to match the argument list '(const boost::exception_detail::clone_base *, unsigned int, boost::detail::sp_counted_impl_p *const )' with [ X=const boost::exception_detail::clone_base ] .\boost/smart_ptr/detail/sp_counted_impl.hpp(66) : while compiling class template member function 'boost::detail::sp_counted_impl_p::sp_counted_impl_p(X *)' with [ X=const boost::exception_detail::clone_base ] .\boost/smart_ptr/detail/shared_count.hpp(130) : see reference to function template instantiation 'boost::detail::sp_counted_impl_p::sp_counted_impl_p(X *)' being compiled with [ X=const boost::exception_detail::clone_base ] .\boost/smart_ptr/detail/shared_count.hpp(130) : see reference to class template instantiation 'boost::detail::sp_counted_impl_p' being compiled with [ X=const boost::exception_detail::clone_base ] .\boost/smart_ptr/shared_ptr.hpp(276) : see reference to function template instantiation 'boost::detail::shared_count::shared_count(Y *)' being compiled with [ Y=const boost::exception_detail::clone_base ] .\boost/smart_ptr/shared_ptr.hpp(354) : see reference to function template instantiation 'void boost::detail::sp_pointer_construct(boost::shared_ptr *,Y *,boost::detail::shared_count &)' being compiled with [ Y=const boost::exception_detail::clone_base, T=const boost::exception_detail::clone_base ] .\boost/exception/detail/exception_ptr.hpp(313) : see reference to function template instantiation 'boost::shared_ptr::shared_ptr(Y *)' being compiled with [ T=const boost::exception_detail::clone_base, Y=const boost::exception_detail::clone_base ] .\boost/exception/detail/exception_ptr.hpp(313) : see reference to function template instantiation 'boost::shared_ptr::shared_ptr(Y *)' being compiled with [ T=const boost::exception_detail::clone_base, Y=const boost::exception_detail::clone_base ]" Clifford.Jackson@… Boost 1.55.0 10034 Change win_iocp_handle_service to still return bytes_transferred if ReadFile fails with ERROR_MORE_DATA asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-05-10T09:17:51Z 2014-05-10T09:17:51Z See ticket #8722 for details. chris_kohlhoff Boost 1.55.0 10039 library_status fails invalid bin directory structure Regression Testing USE GITHUB Boost 1.55.0 To Be Determined Bugs - new 2014-05-11T12:13:19Z 2017-08-26T15:50:44Z "When I run tools/regression/src/library_test_all.sh on Boost 1.55, it fails to generate proper reports for many libraries. The library_status.html generated for those libraries has a header but no results table. The error message from library_status is the following: {{{ **** exception(205): std::string: invalid bin directory structure ******** errors detected; see standard output for details ******** }}} One directory where it fails is bin.v2\libs\asio\test\generic_basic_endpoint.test\qcc-arm_4.4.2_0x\debug\debug-symbols-off\target-os-qnxnto\threading-multi. It contains the files generic_basic_endpoint, generic_basic_endpoint.test and test_log.xml as well as the directory generic which contains the files basic_endpoint.o and test_log.xml. The testing script was started as follows: C:\Arbete\boost\boost_1_55_0>tools\regression\src\library_test_all.sh toolset=qcc-arm_4.4.2_0x testing.launcher=z:\boost-kompilering\remote-test.bat target-os=qnxnto debug-symbols=off -l240 -j8 2>&1 I've verified that the problem remains on the current git develop branch (commit 195baf8a), running on Ubuntu. Full output and command line in the attached text file. Googling for the error message turns up results from august last year with no solution." Niklas Angare Boost 1.55.0 10044 ublas serialization causes no end of warnings uBLAS Boost 1.55.0 To Be Determined Bugs Gunter new 2014-05-12T13:29:50Z 2014-05-18T18:40:21Z "boost/numeric/ublas/storage.hpp:276 causes `gcc-4.8.2 -Wall -Wextra` spit no end of warnings because of the unused `version` function argument: /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/storage.hpp: In instantiation of ‘void boost::numeric::ublas::unbounded_array::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = double; ALLOC = std::allocator]’: /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:192:5: required from ‘void boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:120:1: required from ‘class boost::archive::detail::iserializer > >’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:387:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:439:28: required from ‘static void boost::archive::detail::load_non_pointer_type::invoke(Archive&, T&) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:592:24: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_iarchive.hpp:66:40: required from ‘void boost::archive::detail::common_iarchive::load_override(T&, int) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_iarchive.hpp:70:7: required from ‘void boost::archive::basic_binary_iarchive::load_override(T&, int) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_iarchive_impl.hpp:50:9: required from ‘void boost::archive::binary_iarchive_impl::load_override(T&, int) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/nvp.hpp:87:9: required from ‘void boost::serialization::nvp::load(Archivex&, unsigned int) [with Archivex = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:101:9: required from ‘static void boost::serialization::access::member_load(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/split_member.hpp:54:52: required from ‘static void boost::serialization::detail::member_loader::invoke(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/split_member.hpp:69:38: required from ‘void boost::serialization::split_member(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/nvp.hpp:89:5: required from ‘void boost::serialization::nvp::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:377:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_only::invoke(Archive&, const T&) [with T = boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:439:28: required from ‘static void boost::archive::detail::load_non_pointer_type::invoke(Archive&, T&) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:592:24: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::binary_iarchive; T = const boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_iarchive.hpp:66:40: required from ‘void boost::archive::detail::common_iarchive::load_override(T&, int) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_iarchive.hpp:70:7: required from ‘void boost::archive::basic_binary_iarchive::load_override(T&, int) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_iarchive_impl.hpp:50:9: required from ‘void boost::archive::binary_iarchive_impl::load_override(T&, int) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:67:32: required from ‘Archive& boost::archive::detail::interface_iarchive::operator&(T&) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/matrix.hpp:1087:16: required from ‘void boost::numeric::ublas::matrix::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = double; L = boost::numeric::ublas::basic_row_major<>; A = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:192:5: required from ‘void boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:120:1: required from ‘class boost::archive::detail::iserializer >’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:387:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:439:28: required from ‘static void boost::archive::detail::load_non_pointer_type::invoke(Archive&, T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:592:24: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::binary_iarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_iarchive.hpp:66:40: required from ‘void boost::archive::detail::common_iarchive::load_override(T&, int) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_iarchive.hpp:70:7: required from ‘void boost::archive::basic_binary_iarchive::load_override(T&, int) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_iarchive_impl.hpp:50:9: required from ‘void boost::archive::binary_iarchive_impl::load_override(T&, int) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:67:32: required from ‘Archive& boost::archive::detail::interface_iarchive::operator&(T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_iarchive]’ /home/max/otsquant/src/c++/data_access/data_access.cc:217:12: required from ‘void {anonymous}::FactorModel::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_iarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:192:5: required from ‘void boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::archive::binary_iarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:120:1: required from ‘class boost::archive::detail::iserializer’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:387:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:439:28: required from ‘static void boost::archive::detail::load_non_pointer_type::invoke(Archive&, T&) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/iserializer.hpp:592:24: required from ‘void boost::archive::load(Archive&, T&) [with Archive = boost::archive::binary_iarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_iarchive.hpp:66:40: required from ‘void boost::archive::detail::common_iarchive::load_override(T&, int) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_iarchive.hpp:70:7: required from ‘void boost::archive::basic_binary_iarchive::load_override(T&, int) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_iarchive_impl.hpp:50:9: required from ‘void boost::archive::binary_iarchive_impl::load_override(T&, int) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_iarchive]’ /home/max/otsquant/src/c++/data_access/cache_file.h:102:28: required from ‘bool ot::data_access::CacheFile::try_loading(T*) [with T = {anonymous}::FactorModel]’ /home/max/otsquant/src/c++/data_access/data_access.cc:783:43: required from here /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/storage.hpp:276:14: warning: unused parameter ‘version’ [-Wunused-parameter] void serialize(Archive & ar, const unsigned int version) ^ /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/storage.hpp: In instantiation of ‘void boost::numeric::ublas::unbounded_array::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = double; ALLOC = std::allocator]’: /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:152:5: required from ‘void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:101:1: required from ‘class boost::archive::detail::oserializer > >’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:253:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:308:28: required from ‘static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, const T&) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:525:24: required from ‘void boost::archive::save(Archive&, T&) [with Archive = boost::archive::binary_oarchive; T = const boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_oarchive.hpp:69:40: required from ‘void boost::archive::detail::common_oarchive::save_override(T&, int) [with T = const boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_oarchive.hpp:75:7: required from ‘void boost::archive::basic_binary_oarchive::save_override(const T&, int) [with T = boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_oarchive_impl.hpp:51:9: required from ‘void boost::archive::binary_oarchive_impl::save_override(T&, int) [with T = const boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(T&) [with T = const boost::numeric::ublas::unbounded_array >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/nvp.hpp:79:9: required from ‘void boost::serialization::nvp::save(Archivex&, unsigned int) const [with Archivex = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:93:9: required from ‘static void boost::serialization::access::member_save(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = const boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/split_member.hpp:43:52: required from ‘static void boost::serialization::detail::member_saver::invoke(Archive&, const T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/split_member.hpp:69:38: required from ‘void boost::serialization::split_member(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/nvp.hpp:89:5: required from ‘void boost::serialization::nvp::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:245:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_only::invoke(Archive&, const T&) [with T = boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:308:28: required from ‘static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, const T&) [with T = boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:525:24: required from ‘void boost::archive::save(Archive&, T&) [with Archive = boost::archive::binary_oarchive; T = const boost::serialization::nvp > >]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_oarchive.hpp:69:40: required from ‘void boost::archive::detail::common_oarchive::save_override(T&, int) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_oarchive.hpp:75:7: required from ‘void boost::archive::basic_binary_oarchive::save_override(const T&, int) [with T = boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_oarchive_impl.hpp:51:9: required from ‘void boost::archive::binary_oarchive_impl::save_override(T&, int) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(T&) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:71:35: required from ‘Archive& boost::archive::detail::interface_oarchive::operator&(T&) [with T = const boost::serialization::nvp > >; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/matrix.hpp:1087:16: required from ‘void boost::numeric::ublas::matrix::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = double; L = boost::numeric::ublas::basic_row_major<>; A = boost::numeric::ublas::unbounded_array >]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:152:5: required from ‘void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive; T = boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:101:1: required from ‘class boost::archive::detail::oserializer >’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:253:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:308:28: required from ‘static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, const T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:525:24: required from ‘void boost::archive::save(Archive&, T&) [with Archive = boost::archive::binary_oarchive; T = const boost::numeric::ublas::matrix]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_oarchive.hpp:69:40: required from ‘void boost::archive::detail::common_oarchive::save_override(T&, int) [with T = const boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_oarchive.hpp:75:7: required from ‘void boost::archive::basic_binary_oarchive::save_override(const T&, int) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_oarchive_impl.hpp:51:9: required from ‘void boost::archive::binary_oarchive_impl::save_override(T&, int) [with T = const boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(T&) [with T = const boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:71:35: required from ‘Archive& boost::archive::detail::interface_oarchive::operator&(T&) [with T = boost::numeric::ublas::matrix; Archive = boost::archive::binary_oarchive]’ /home/max/otsquant/src/c++/data_access/data_access.cc:217:12: required from ‘void {anonymous}::FactorModel::serialize(Archive&, unsigned int) [with Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: required from ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:69:69: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/serialization/serialization.hpp:128:27: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:152:5: required from ‘void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive; T = {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:101:1: required from ‘class boost::archive::detail::oserializer’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:253:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:308:28: required from ‘static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, const T&) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/oserializer.hpp:525:24: required from ‘void boost::archive::save(Archive&, T&) [with Archive = boost::archive::binary_oarchive; T = const {anonymous}::FactorModel]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/common_oarchive.hpp:69:40: required from ‘void boost::archive::detail::common_oarchive::save_override(T&, int) [with T = const {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/basic_binary_oarchive.hpp:75:7: required from ‘void boost::archive::basic_binary_oarchive::save_override(const T&, int) [with T = {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/binary_oarchive_impl.hpp:51:9: required from ‘void boost::archive::binary_oarchive_impl::save_override(T&, int) [with T = const {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits]’ /usr/local/ots/4/boost-1.55.0/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(T&) [with T = const {anonymous}::FactorModel; Archive = boost::archive::binary_oarchive]’ /home/max/otsquant/src/c++/data_access/cache_file.h:116:32: required from ‘void ot::data_access::CacheFile::save(const T&) [with T = {anonymous}::FactorModel]’ /home/max/otsquant/src/c++/data_access/data_access.cc:790:35: required from here /usr/local/ots/4/boost-1.55.0/include/boost/numeric/ublas/storage.hpp:276:14: warning: unused parameter ‘version’ [-Wunused-parameter] " maxim.yegorushkin@… Boost 1.55.0 10045 boost::numeric::symmetric_matrix serialization code missing uBLAS Boost 1.55.0 To Be Determined Bugs Gunter new 2014-05-12T13:36:47Z 2017-04-02T10:57:36Z "boost::numeric::matrix<> and boost::numeric::vector<> have serialization implemented. boost::numeric::symmetric_matrix<> does not implement serialization: /usr/local/ots/4/boost-1.55.0/include/boost/serialization/access.hpp:118:9: error: ‘class boost::numeric::ublas::symmetric_matrix’ has no member named ‘serialize’ t.serialize(ar, file_version); ^" maxim.yegorushkin@… Boost 1.55.0 10053 1.55 boost/crc warning clang -Wshadow crc Boost 1.55.0 To Be Determined Bugs Daryle Walker new 2014-05-15T08:58:58Z 2014-05-18T18:39:24Z "On 1.55 I observed this warning with clang -Wshadow boost/crc.hpp:758:20: Declaration shadows a static data member of 'crc_basic'" adrien.courdavault@… Boost 1.55.0 10065 wait_any return with -1 mpi Boost 1.55.0 To Be Determined Bugs Matthias Troyer new 2014-05-21T13:20:42Z 2014-05-21T13:20:42Z "I have a small example, where every process send his rank to rank 0. The process with rank 0, should receive with ''irecv'' every message and wait for it with ''wait_any''. But the ''wait_any'' function returns with -1. I have seen two other tickets, which are marked as fixed/ solved. I think they are not solved. If they are solve the documentation should be changed, because if I make the same example with MPI_Waitany, the result is completely different. {{{ #include #include #include #include #include #include #include #define MAXPROC 16 /* Max number of procsses */ int main(int argc, char* argv[]) { int i, np, me, index; const int tag = 42; /* Tag value for communication */ const int root = 0; /* Root process in broadcast */ boost::mpi::status status; /* Status object for non-blocing receive */ boost::mpi::request recv_req[MAXPROC]; /* Request objects for non-blocking receive */ int myname[5]; /* Local host name string */ int hostname[5]; /* Received host names */ int namelen; boost::mpi::environment env; /* Initialize MPI */ boost::mpi::communicator world; /* Initialize MPI */ np = world.size(); /* Get nr of processes */ me = world.rank(); /* Get own identifier */ if (me == 0) { /* Process 0 does this */ std::cout <<""Process "" << me << "" broadcasting to all processes\n""; boost::mpi::broadcast(world, me, 0); std::cout <<""Process "" << me<< "" receiving from all other processes\n""; for (i=1; i Boost 1.55.0 10071 [container] flat_map::insert() is ambiguous if used with initializer lists container Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-05-26T09:43:42Z 2016-01-09T18:35:02Z "boost::container::flat_map< unsigned int, unsigned int > foo; foo.insert( { 1u, 1u } ); Doesn't fly, since it can either convert to std::pair<> or boost::container_detail::pair<>." Sebastian Karlsson Boost 1.55.0 10072 filtering_stream::size() is not const iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-05-27T08:32:14Z 2017-01-21T16:39:57Z According to the documentation at http://www.boost.org/doc/libs/1_55_0/libs/iostreams/doc/classes/filtering_stream.html, filtering_stream::size() should be const, but it is declared non-const. The implementation does not change the class (it calls the const metzhod chain_->size()). Therefore I believe that the non-constness is an oversight. Please make size() const to match the documentation. Georg Baum Boost 1.55.0 10075 boost::make_filter_iterator(...) calls Predicate(Predicate &) instead of copy constructor iterator Boost 1.55.0 To Be Determined Bugs jeffrey.hellrung new 2014-05-28T12:48:58Z 2014-05-28T12:48:58Z Wrong parameter type is used. jaak+boost@… Boost 1.55.0 10079 libboost_python DSO should link to libpython python USE GITHUB Boost 1.55.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2014-05-29T18:11:00Z 2014-05-29T18:11:00Z "Shared libraries for Boost.Python are not linked to Python shared libraries. libs/python/build/Jamfile.v2 contains the following explanation why that's so: {{{ # On *nix we never link libboost_python to libpython. When # extending Python, all Python symbols are provided by the # Python interpreter executable. When embedding Python, the # client executable is expected to explicitly link to # /python//python (the target representing libpython) itself. }}} I especially wonder about the ""executable is expected to explicitly link"" bit. Where does this expectation come from? On Linux it is generally business of the library to care about its own dependencies. Python is probably something of a borderline case in this, as a Boost.Python client presumably knows they will interface with Python eventually. Still, it is possible to create a Boost.Python client without mentioning any of Python per se. Thus linking in libboost_python should be all that's necessary. The obvious patch is as follows: {{{ diff -up boost_1_55_0/libs/python/build/Jamfile.v2\~ boost_1_55_0/libs/python/build/Jamfile.v2 --- boost_1_55_0/libs/python/build/Jamfile.v2~ 2010-07-13 00:29:41.000000000 +0200 +++ boost_1_55_0/libs/python/build/Jamfile.v2 2014-05-29 19:16:31.238412843 +0200 @@ -122,7 +122,7 @@ rule lib_boost_python ( is-py3 ? ) # python_for_extensions is a target defined by Boost.Build to # provide the Python include paths, and on Windows, the Python # import library, as usage requirements. - [ cond [ python.configured ] : /python//python_for_extensions ] + [ cond [ python.configured ] : /python//python ] # we prevent building when there is no python available # as it's not possible anyway, and to cause dependents to }}} However tools/build/v2/tools/python.jam says: {{{ # On *nix, we do not want to link either Boost.Python or Python extensions # to libpython, because the Python interpreter itself provides all those # symbols. If we linked to libpython, we would get duplicate symbols. So # declare two targets -- one for building extensions and another for # embedding. }}} Do you know any details about the duplicate symbol issue? I track this code down to a commit from Mon Dec 6 14:03:25 2004 by Vladimir Prus, but the commit message doesn't explain anything. On Linux at least, there's no problem bringing in a dynamic library ""several times"". Even with static libraries it's not clear to me how the duplication would occur. But possibly I'm missing something obvious. I can however make the above patch sensitive to OS if you think the issue is real on other systems." pmachata@… Boost 1.55.0 10083 signals2 fails to compile under Intel Parallel Composer XE signals2 Boost 1.55.0 To Be Determined Bugs Frank Mori Hess new 2014-05-30T20:59:20Z 2014-06-09T02:28:20Z "I'm trying to compile the following file: {{{ class Order {}; class Foo { signal beforeOrder; void test(Order* o) { beforeOrder(o); } }; int main(int argc, char* argv[]) { Order o; Foo foo; return 0; } }}} Here's the compiler output I'm getting: {{{ 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(348): warning C4996: 'std::_Uninitialized_copy0': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0' 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(192) : see reference to function template instantiation '_FwdIt std::uninitialized_copy,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(_InIt,_InIt,_FwdIt)' being compiled 1> with 1> [ 1> _FwdIt=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> , _InIt=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_rai(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,const boost::integral_constant &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_rai(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,const boost::integral_constant &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,std::random_access_iterator_tag)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,std::random_access_iterator_tag)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(282) : while compiling class template member function 'boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::move_to_new_buffer(unsigned __int64,const boost::false_type &)' 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> c:\boost\boost/signals2/detail/auto_buffer.hpp(304) : see reference to function template instantiation 'boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::move_to_new_buffer(unsigned __int64,const boost::false_type &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> c:\boost\boost/signals2/detail/slot_call_iterator.hpp(40) : see reference to class template instantiation 'boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> c:\boost\boost/signals2/detail/slot_call_iterator.hpp(44) : see reference to class template instantiation 'boost::signals2::detail::slot_call_iterator_cache' being compiled }}} " anonymous Boost 1.55.0 10086 Backwards compatibility to 1.42 adjacency list serialisation is broken graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-06-02T13:55:55Z 2014-06-02T13:55:55Z "I have an archive created with boost serialization of an adjacency list which was created with boost 1.42. When switching to Boost 1.55, the adjacency list cannot be deserialised from the archive anymore. I identified commit [77549] which probably broke the serialisation: It appears that the vertex and edges are not wrapped in a 'property' anymore, but stored directly in the adjacency list. Additionaly, in [77615] a new member ""graph_property"" was added to the serialisation code. Unfortunately, the serialisation version number of adjacency list was not incremented and the code in 'boost/graph/adj_list_serialize.hpp' was not changed accordingly. Furthermore in 'boost/pending/property_serialize.hpp', the serialisation order of 'value' and 'base' was switched, again without changing the class serialisation version number. I was able to load the old archive by making following changes: ** adj_list_serialize.hpp ** {{{ template inline void load( Archive & ar, boost::adjacency_list &graph, const unsigned int /* file_version */ ){ typedef adjacency_list Graph; typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::edge_descriptor Edge; unsigned int V; ar >> BOOST_SERIALIZATION_NVP(V); unsigned int E; ar >> BOOST_SERIALIZATION_NVP(E); std::vector verts(V); int i = 0; while(V-- > 0){ // >>>>> BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH if( ar.get_library_version() <= 7 /* not sure about the 7, could be a greater version */){ Vertex v = add_vertex(graph); boost::property vertexAsProperty; ar >> vertexAsProperty; graph[v] = vertexAsProperty.m_value; verts[i++] = v; } else // <<<<< BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH { Vertex v = add_vertex(graph); verts[i++] = v; ar >> serialization::make_nvp(""vertex_property"", get(vertex_all_t(), graph, v) ); } } while(E-- > 0){ // >>>>> BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH if( ar.get_library_version() <= 7 /* not sure about the 7, could be a greater version */){ int u; int v; ar >> BOOST_SERIALIZATION_NVP(u); ar >> BOOST_SERIALIZATION_NVP(v); Edge e; bool inserted; boost::tie(e,inserted) = add_edge(verts[u], verts[v], graph); boost::property edgeAsProperty; ar >> edgeAsProperty; graph[e] = edgeAsProperty.m_value; } else // <<<<< BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH { int u; int v; ar >> BOOST_SERIALIZATION_NVP(u); ar >> BOOST_SERIALIZATION_NVP(v); Edge e; bool inserted; boost::tie(e,inserted) = add_edge(verts[u], verts[v], graph); ar >> serialization::make_nvp(""edge_property"", get(edge_all_t(), graph, e) ); } } // >>>>> BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH if(are_Adjacency_list_and_boost_property_in_old_format(ar) == false) ar >> serialization::make_nvp(""graph_property"", get_property(graph, graph_all_t()) ); // <<<<< BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH } }}} ** property_serialize.hpp ** {{{ template void serialize(Archive& ar, property& prop, const unsigned int /*version*/) { // >>>>> BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH if( ar.get_library_version() <= 7 /* not sure about the 7, could be a greater version */){ ar & serialization::make_nvp( ""property_base"" , prop.m_base); ar & serialization::make_nvp( ""property_value"" , prop.m_value ); } else // <<<<< BOOST_ADJ_LIST_1_42_SERIALIZATION_PATCH { ar & serialization::make_nvp( ""property_value"" , prop.m_value ); ar & serialization::make_nvp( ""property_base"" , prop.m_base ); } } }}}" oluedecke@… Boost 1.55.0 10090 [graph] missing documentation : member functions for bundled property in adjacency_list graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-06-04T09:14:49Z 2014-06-04T09:14:49Z "In Bundled property's documentation, `operator[ ]` is documented. http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/bundles.html {{{ Map map; // load the map Map::vertex_descriptor v = *vertices(map).first; map[v].name = ""Troy""; map[v].population = 49170; map[v].zipcodes.push_back(12180); }}} But, In `adjacency_list` documentation is not. http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/adjacency_list.html Should add follow member functions reference: {{{ // boost/graph/adjacency_list.hpp vertex_bundled& operator[](vertex_descriptor v) { return get(vertex_bundle, *this)[v]; } const vertex_bundled& operator[](vertex_descriptor v) const { return get(vertex_bundle, *this)[v]; } edge_bundled& operator[](edge_descriptor e) { return get(edge_bundle, *this)[e]; } const edge_bundled& operator[](edge_descriptor e) const { return get(edge_bundle, *this)[e]; } graph_bundled& operator[](graph_bundle_t) { return get_property(*this); } graph_bundled const& operator[](graph_bundle_t) const { return get_property(*this); } }}}" Akira Takahashi Boost 1.55.0 10102 dynamic_properties inconsistent usage of lexical_cast and stringstream graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-06-07T11:09:13Z 2014-06-07T11:09:13Z "Hello, The {{{boost::dynamic_properties}}} is inconsistent with usage of {{{boost::lexical_cast}}} and {{{std::stringstream}}}. In file boost\property_map\dynamic_property_map.hpp, the function {{{ template inline Value read_value(const std::string& value) }}} uses {{{boost::lexical_cast}}}, while {{{ std::string dynamic_property_map_adaptor::get_string(const any& key) }}} uses {{{std::stringstream}}}. It is a problem, for example, if used together with a BGL's {{{boost::write_graphvis_dp}}} and {{{boost::read_graphvis}}} if {{{NaN}}} attribute values are written and read. With {{{std::stringstream}}} on my machine (Windows 7 + MSVC 12), NaN's are written as {{{""1.#QNAN""}}}, and lexical_cast produces and consumes {{{nan}}} and {{{NAN}}} [1]. In such case {{{boost::bad_lexical_cast}}} is thrown whenever read_graphvis is called for graphviz file containing {{{NaN}}}s. Modifying {{{dynamic_property_map_adaptor::get_string}}} to use boost::lexical_cast seems to fix the issue with graph reading/writing. Though I'm not trying to use such files as an input for graphviz. Speaking about graphviz, docs seem not to define any restrictions on attribute values, and I haven't looked at the source code. Quick googling gave me [http:/_/comments.gmane.org/gmane.comp.video.graphviz/7062], which is not related to this case, but it is stated there that graphviz uses {{{atof()}}}, which is locale-dependent and feels messy. [1] see boost/lexical_cast.hpp, function {{{ template bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) }}} " Sergey Mitsyn Boost 1.55.0 10105 graphml attribute type mapping for types not in specification graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-06-07T16:53:56Z 2014-06-07T16:53:56Z "At the moment, {{{write_graphml}}} tries to convert non-standard attribute value types (that are not in specification) which it got from {{{dynamic_properties}}}, to standard ones. A type is converted to a simple form, say {{{unsigned int}}} to {{{int}}}, etc, by a predefined mapping in {{{write_graphml}}}: {{{value_types}}} and {{{type_names}}}. The conversion only affects graph metainformation ({{{}}}'s {{{}}} elements): conversion of an attribute value to a string is done by dynamic properties in {{{dynamic_property->get_string()}}} (that is, the value is actually never converted by the writing function). On the other hand, {{{read_graphml}}} tries to use type info from {{{}}} elements and converts a string to the specified type and then passes it to dynamic property map as a {{{boost::any}}} instance. If a property map is passed to dynamic_properties that has non-standard value_type (not in {{{boost::mutate_graph_impl::value_types}}} list), but still ""supported"", like {{{unsigned int}}}, the {{{read_graphml}}} first checks if value types match and then, because they are not, unconditionally {{{any_cast}}}'s to {{{std::string}}}, which fails with {{{bad_any_cast}}} being thrown. This is unfortunate - a user has a promise that some attribute types are supported during writing, but then she can't read it back to the same property map. On the contrary, {{{read_graphvis}}} doesn't try to convert an attribute value before passing it to {{{dynamic_property_map}}}, due to the fact that graphvis files contain no type information :). In its turn, a {{{dynamic_property_map}}} converts passed {{{std::string}}} to its value type successfully. Maybe a better strategy is: 1) in {{{write_graphml}}}, write attribute types as currently done. 2) in {{{read_graphml}}}, disregard attribute type information and convert string representations to values in a {{{dynamic_property_map}}}. A more sophisticated and maybe type-safe alternative is to use a more complicated logic and check {{{dynamic_property_map->value()}}} for every possible matching value type in {{{write_graphml::value_types}}} for a given type name from {{{write_graphml::type_names}}}. " Sergey Mitsyn Boost 1.55.0 10110 boost::random::negative_binomial_distribution unnecessary restriction to IntType for parameter k random Boost 1.55.0 To Be Determined Bugs No-Maintainer new 2014-06-10T20:23:13Z 2015-03-11T08:28:41Z "Hi. In the implementation of boost::random::negative_binomial_distribution there is an unnecessary restriction to IntType for parameter k. A double parameter k will be casted to integer resulting in a different distribution than desired. If one compiles with -Wconversion a warning is given: warning: conversion to ‘int’ from ‘double’ may alter its value [-Wconversion] see attached example_file. This can lead to unwanted realization of a negative binomial distribution for non integer parameters k. Further there are no assertion checks on the parameters in instantiating a boost::random::negative_binomial_distribution object. These assertions are checked during the sampling process via boost::random::gamma_distribution. There (and in general for negative binomial distribution) the parameter k must be strictly greater than zero and not as mentioned in the documentation ""Requires: k >=0"". This can easily be extended by changing IntType to RealType in 5 occurrences regarding the parameter k. Thank you, Max P.S.: I compiled the example file with: g++ -Wconversion -o negbin_test -std=c++11 negbin_test.cpp" Maximilian Kleinert Boost 1.55.0 10113 [1.55] no lock-free synchronization on Solaris 10 sparcv9 (sp_counted_base.hpp) lockfree Boost 1.55.0 To Be Determined Bugs timblechmann new 2014-06-11T11:53:58Z 2016-11-19T15:49:26Z "I wonder, why lock-free synchronization is not in use on solaris 10 (sparcv9). E.g. check with http://www.boost.org/doc/libs/1_53_0/doc/html/lockfree/examples.html When i build boost 1.55 with gcc-4.7.2, then i get for > ./b2 [...] - lockfree boost::atomic_flag : no But there seems to be some support for cas32 (e.g.) in ./include/boost/smart_ptr/detail/... But in ./include/boost/smart_ptr/detail/sp_counted_base.hpp there is in the sequence of #if...#elif...#else...#endif is: {{{ [...] #elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) # include #elif defined( BOOST_SP_HAS_SYNC ) # include #elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) ) # include [...] }}} I.e. BOOST_SP_HAS_SYNC is preferred. Is this correct? - many thanks! best regards, Frank " anonymous Boost 1.55.0 10117 corrupt installer boost_1_55_0-msvc-12.0-64.exe downloaded from sourceforge : 1.55.0-build2 Building Boost Boost 1.55.0 To Be Determined Bugs new 2014-06-12T06:35:39Z 2014-06-12T06:35:39Z installer boost_1_55_0-msvc-12.0-64.exe downloaded from sourceforge : 1.55.0-build2 is corrupt kilian.singer@… Boost 1.55.0 10118 boost::interprocess windows_intermodule_singleton crashes when mixing compilers interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-06-12T12:04:12Z 2014-06-12T12:04:12Z "windows_semaphore_based_map uses an std::map to communicate between modules. However, the ABI of std::map is different between (for example) VS2008 and VS2012, which means that if a DLL compiled with VS2012 is linked with an application compiled with VS2008, the second module to use the intermodule singleton will crash. This is essentially the same problem as #9262, but with different compiler versions instead of different build types. A simple workaround is to comment out {{{#!cpp #define BOOST_INTERPROCESS_HAS_KERNEL_BOOTTIME }}} in `interprocess/detail/workaround.hpp`." emil.styrke@… Boost 1.55.0 10145 Win2k8R2 specific: boost::filesystem::is_directory() returns false for a directory under C:\Windows\System32 filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-06-25T11:51:11Z 2014-06-25T17:46:53Z "'filesystem::is_directory()' returns false for a directory with whole bunch of sibling directories. Run the following commands to create 2000 sub-directories: C:\>mkdir temp_dir C:\>cd temp_dir C:\>for /L %i in (1, 1, 2000) do mkdir test_dir_%i C:\>mkdir test_dir Now try to execute the following statements under a debugger: 'is_directory()' always returns false. boost::filesystem::path directory(""C:\\temp_dir\\test_dir""); bool isDir = boost::filesystem::is_directory(directory);" Martin Ghazaryan Boost 1.55.0 10152 Bimap documentation lacks information on iterator invalidation bimap Boost 1.55.0 To Be Determined Bugs Matias Capeletto new 2014-06-25T22:53:02Z 2014-06-25T22:53:02Z "Bimap in its documentation doesn't mention when iterators are invalidated (if at all). Or at least it doesn't say it explicitly enough. While it seems that it should and could since it is implemented in terms of MultiIndex while MultiIndex does specify that. See also thread ""[Bimap] Iterator invalidation"" on gmane.comp.lib.boost.user." abadura@… Boost 1.55.0 10174 call_stack not working when building asio as shared module on windows asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-07-02T23:57:38Z 2016-02-02T00:46:27Z "The call_stack is not working when building asio as shared module on windows. Also, the call_stack doesn't work on windows when using asio as header only and loading a dll at runtime (ie: LoadLibrary) which is also using asio as header only. See and run the attached test case that demonstrates the problem in the following scenario: * MSVC 2010 Express SP1 32bit (I'm guessing it's an issue on other compilers as well, but this is what I was using) * build asio as a shared library according to instructions for ""separate compilation"" [ 1 ] * build and run the test case, where all cases should say ""PASS"" Now, I know the documentation says that .dispatch() *may* execute the handler right away (see discussion[ 2 ] on mailing list), so it's officially not a bug. BUT, I noticed that ""strand.running_in_this_thread()"" worked. That's what clued me in that call_stack was working as expected for running_in_this_thread(), but not for dispatch(). It appears that the issue is with static storage for boost::asio::detail::callstack::top_ . It appears that two copies of this static storage item are being referenced: one from the .exe file, and one from the .dll (both of which include the asio headers). It looks like the reason ""running_in_this_thread()"" works is because it calls callstack<>::contains() from an .ipp file, which is included in the .dll so it references top_ from the .dll. In the case of using asio as header only, not running any asio code from a .dll, the issue is non-existent. There is no confusion as to which top_ variable to use. See the attached patch to asio/detail/impl/strand_service.hpp that fixes strand.dispatch() by calling ""running_in_this_thread()"". That forces the reference of top_ from the .dll instead of the reference from the .exe that's linked against the asio dll or another .dll that includes asio headers. Possible fixes for this: 1. put the definition of top_ in an .ipp file to include in the boost asio .dll so there's only one symbol for it. 2. put all usages of call_stack in .ipp files (similar to the attached patch) so there's no confusion about the symbol (ugly and error prone, since it would have to be done for all use cases) It should be noted that in order for call_stack to work across a dll boundary (ie: sharing io_service or strand between a .exe and .dll), asio *must* be built as a shared library. Also, note that this only happens on Windows. Doing the equivalent with .so files works in Linux (maybe by chance? not sure...). Not having this fix makes .dispatch() pretty much useless when using asio on windows with .dlls. " wberrier@… Boost 1.55.0 10180 shared_memory_object assertion when used with boost unit test interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-07-07T05:00:56Z 2014-07-30T15:02:21Z "I am running with Visual Studio 2010, and boost 1.55. When I run a simple unit test with shared_memory_object, I get an assertion on shutdown. The test itself creates a shared memory object, maps it to memory, and writes to it; it then opens a shared memory object of the same name and reads from it. This works fine. On exit, the fini_atomic_func functor in intermodule_singleton_common is run to clean up. This does the following: {{{ ref_count_ptr *rcount = intermodule_singleton_helpers::thread_safe_global_map_dependant ::find(m_map, typeid(C).name()); //The object must exist BOOST_ASSERT(rcount); }}} The assertion fails. In the debugger I can see that typeid(C).name() has returned a rubbish string, and therefore no map entry is found. When that same code is executed in init_atomic_func, typeid(C).name() returns ""struct boost::interprocess::ipcdetail::windows_bootstamp"" as expected. Following the relevant memory address in the debugger, I see that the typeid string is erased in the unit test's framework::shutdown() function. This is done deliberately to eliminate fake memory leak reports from the typeid strings. See boost\test\impl\framework.ipp. Unfortunately the interprocess cleanup is done via a handler registered with std::atexit, which guarantees it will be after framework has run shutdown. I don't see any options on either side (boost unit test or boost interprocess) which would allow the order to be fixed up. Simplest code to reproduce: {{{ #include #include namespace IP = boost::interprocess; BOOST_AUTO_TEST_SUITE( TestSharedMemory ) BOOST_AUTO_TEST_CASE( CauseAssertionFailure ) { IP::shared_memory_object lShared( IP::open_only, ""test_string"", IP::read_only ); BOOST_REQUIRE( lShared.get_name() != 0 ); } BOOST_AUTO_TEST_SUITE_END() }}}" andrew.lang@… Boost 1.55.0 10195 Silent Failure for boost::geometry::intersection() geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-07-14T19:08:42Z 2014-07-14T19:08:42Z "I am performing intersections between polygons, with points represented using 64-bit integer coordinates. If I use signed ints (int64_t), the intersection operations are correct. If I use unsigned ints (uint64_t), the returned intersection polygon collection is simply one of the two polygons I originally handed in. The underlying intersection algorithm must require signed information, but this fact is not communicated to users. As a result, the output of unsigned int operations can appear nonsensical. Added documentation is appreciated. Adding an actual exception when attempting to do unsigned-int-based intersections would be even better." anonymous Boost 1.55.0 10198 current_exception_diagnostic_information() returns empty string if verbose is false exception Boost 1.55.0 To Be Determined Bugs Emil Dotchevski new 2014-07-15T07:16:11Z 2014-07-15T07:16:11Z Eugene Ryabtsev Boost 1.55.0 10205 FileSystem runtime error: locale::facet::_S_create_c_locale name not valid filesystem Boost 1.55.0 Boost 1.57.0 Bugs Beman Dawes assigned 2014-07-16T11:59:58Z 2014-10-29T15:18:26Z "Ok this is still broken (see Ticket #5928). On Solaris 10 (sparc) compile this... #include #include int main (void) { std::cout << boost::filesystem::unique_path(""/some/random/path/%%%%%%%"").c_str() << std::endl; return 0; } linking against system and filesystem I had compiled boost_1_55_0 from the site and built just filesystem and system (because program_options fails to compile with gcc 4.9.0 but thats a separate issue). I created the above example in stage/lib folder and ran.. g++ test.cpp -I../../ -L. -lboost_filesystem -lboost_system Below are the results... bash-3.2$ locale LANG=en_GB.UTF-8 LC_CTYPE=en_GB.ISO8859-1 LC_NUMERIC=en_GB.ISO8859-1 LC_TIME=en_GB.ISO8859-1 LC_COLLATE=en_GB.ISO8859-1 LC_MONETARY=en_GB.ISO8859-1 LC_MESSAGES=C LC_ALL= -bash-3.2$ LC_ALL=en_GB.UTF-8 LD_LIBRARY_PATH=. ./a.out terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid Abort (core dumped) -bash-3.2$ LD_LIBRARY_PATH=. ./a.out terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid Abort (core dumped) -bash-3.2$ LC_ALL=en_GB.ISO8859-1 LD_LIBRARY_PATH=. ./a.out terminate called after throwing an instance of 'std::runtime_error' what(): locale::facet::_S_create_c_locale name not valid Abort (core dumped) -bash-3.2$ LC_ALL=C LD_LIBRARY_PATH=. ./a.out /some/random/path/7fff459 This is utterly crippling and renders boost filesystem useless on Solaris 10. " sleary@… Boost 1.55.0 10206 graph/kamada_kawai: remove calculation of unused debug variable E graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-07-16T17:10:19Z 2016-08-09T09:10:46Z "The debugging output, which was removed in , printed the variable E. The calculation of of this variable E remained in the code. The attached patch removes this." totto@… Boost 1.55.0 10207 graph/kamada_kawai: fix matrix size of 3-dimensional linear solver graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-07-16T17:19:09Z 2014-07-16T17:19:09Z The input matrix for the template instantiation of the 3 dimensional linear solver is of the wrong size. The attached patch fixes this. totto@… Boost 1.55.0 10213 Reproducible crash with Boost Asio and io_service::post asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-07-18T00:31:30Z 2017-09-21T11:18:54Z "On OSX, running the following code repeatedly results in an occasional crash with the stack trace following. Unfortunately, I can't find a workaround nor a fix since I don't actually understand why it is crashing... {{{#!c++ using namespace boost::asio; io_service service; io_service::work work(service); boost::thread thread{[&](){ service.reset(); service.run(); } }; service.post([&service](){service.stop();}); thread.join(); }}} {{{ Error: signal 11: 0 KimiTestApp 0x0000000105534a02 _Z7handleri + 34 1 libsystem_platform.dylib 0x00007fff97a075aa _sigtramp + 26 2 KimiTestApp 0x00000001054f154d _ZN5boost6detail12shared_countD2Ev + 45 3 libsystem_pthread.dylib 0x00007fff9665691e _pthread_cond_signal + 612 4 KimiTestApp 0x0000000105642c43 _ZN5boost4asio6detail11posix_event17signal_and_unlockINS1_11scoped_lockINS1_11posix_mutexEEEEEvRT_ + 115 5 KimiTestApp 0x0000000105642ab4 _ZN5boost4asio6detail15task_io_service31wake_one_idle_thread_and_unlockERNS1_11scoped_lockINS1_11posix_mutexEEE + 100 6 KimiTestApp 0x000000010564293f _ZN5boost4asio6detail15task_io_service26wake_one_thread_and_unlockERNS1_11scoped_lockINS1_11posix_mutexEEE + 47 7 KimiTestApp 0x000000010564247e _ZN5boost4asio6detail15task_io_service25post_immediate_completionEPNS1_25task_io_service_operationEb + 206 8 KimiTestApp 0x000000010564002e _ZN5boost4asio6detail15task_io_service4postIZN42GlobalTestModule_TestNoOpDieImmediate_Test8TestBodyEvE3$_0EEvRT_ + 190 9 KimiTestApp 0x000000010563ff24 _ZN5boost4asio10io_service4postIZN42GlobalTestModule_TestNoOpDieImmediate_Test8TestBodyEvE3$_0EENS0_12async_resultINS0_12handler_typeIT_FvvEE4typeEE4typeEOS7_ + 68 10 KimiTestApp 0x000000010563fded _ZN42GlobalTestModule_TestNoOpDieImmediate_Test8TestBodyEv + 125 }}}" boost-bugs@… Boost 1.55.0 10224 [property map] compilation error : make_function_property_map property_map Boost 1.55.0 To Be Determined Bugs Douglas Gregor new 2014-07-22T11:02:02Z 2014-07-22T11:02:02Z "`make_function_property_map()` function can not apply function pointer. {{{ #include int get_prop(double) { return 1; } struct get_prop_functor { typedef int result_type; result_type operator()(double) const { return 1; } }; int main() { const auto p1 = boost::make_function_property_map(get_prop); // compilation error const auto p2 = boost::make_function_property_map(get_prop_functor()); // OK } }}} error message (with gcc 4.8) {{{ /Users/hogehoge/language/cpp/main.cpp: In function 'int main()': /Users/hogehoge/language/cpp/main.cpp:14:71: error: no matching function for call to 'make_function_property_map(int (&)(double))' const auto p1 = boost::make_function_property_map(get_prop); // compilation error ^ /Users/hogehoge/language/cpp/main.cpp:14:71: note: candidates are: In file included from /Users/hogehoge/language/cpp/main.cpp:1:0: /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp:54:1: note: template boost::function_property_map boost::make_function_property_map(const Func&) make_function_property_map(const Func& f) { ^ /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp:54:1: note: template argument deduction/substitution failed: /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp: In substitution of 'template boost::function_property_map boost::make_function_property_map(const Func&) [with Key = double; Func = int(double)]': /Users/hogehoge/language/cpp/main.cpp:14:71: required from here /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp:54:1: error: function returning a function /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp:60:1: note: template boost::function_property_map boost::make_function_property_map(const Func&) make_function_property_map(const Func& f) { ^ /Users/hogehoge/repository/GitHub/boost-develop/boost/property_map/function_property_map.hpp:60:1: note: template argument deduction/substitution failed: /Users/hogehoge/language/cpp/main.cpp:14:71: note: couldn't deduce template parameter 'Ret' const auto p1 = boost::make_function_property_map(get_prop); // compilation error }}} I think should remove `const &` from parameter. before: {{{ template function_property_map make_function_property_map(const Func& f) { return function_property_map(f); } template function_property_map make_function_property_map(const Func& f) { return function_property_map(f); } }}} after: {{{ template function_property_map make_function_property_map(Func f) { return function_property_map(f); } template function_property_map make_function_property_map(Func f) { return function_property_map(f); } }}}" Akira Takahashi Boost 1.55.0 10226 [interprocess] undocumented : size_type interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-07-23T03:19:08Z 2014-07-23T03:19:08Z "In `basic_managed_mapped_file` class page, `size_type` is undocumented. http://www.boost.org/doc/libs/1_55_0/doc/html/boost/interprocess/basic_managed_mapped_file.html I think should add follow: {{{ typedef implementation-defined size_type; }}} " Akira Takahashi Boost 1.55.0 10227 Missing HAVE_SONAME causes SONAME to be omitted in qcc.jam build Boost 1.55.0 To Be Determined Bugs Vladimir Prus new 2014-07-23T03:19:45Z 2014-07-23T03:19:45Z "In the ""actions link.dll bind LIBRARIES"" section of qcc.jam (lines 233-238), the link command includes the following arguments: {{{ $(HAVE_SONAME)-Wl,-h$(SPACE)-Wl,$(<[1]:D=) }}} But, ""HAVE_SONAME"" is never defined in qcc.jam. Resulting in SONAME not getting added to the shared object. Subsequently, boost libraries that link against each other (thread) hardcode the relative path to the dependent library. Adding 'HAVE_SONAME = """" ;' or removeing ""$(HAVE_SONAME)"" from qcc.jam fixes the issue. Tested on Windows using the cross-compiler and on QNX in a virtual machine. Note: I stumbled upon several postings on the mailing list that hint at this happening but all seem to have gone unresolved." amourdezombi@… Boost 1.55.0 10235 a strange problem for deadline_timer asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-07-23T16:15:22Z 2014-07-23T16:15:22Z "os:cent os 6.4 32bit. boost:1.55.0 I have these codes for tcp async_connect: session->tcp_socket().async_connect(ep, m_strand.wrap(boost::bind( &ifstiotcp::_connected, this, session, boost::asio::placeholders::error))); timer.expires_from_now(boost::posix_time::seconds(5), ec); timer.async_wait(m_strand.wrap(boost::bind(&ifstiotcp::_connect_timeout, this, session, boost::asio::placeholders::error))); and, in _connected function to cancel timer: timer.cancel(ec); and, in _connected_timeout function: if (boost::asio::error::operation_aborted != ec) { // timeout in here } now, a strange problem as follows: 1) when run to _connected function and cancel deadline_timer success; 2) after 5 seconds, run the 'timeout in here'; 3) anyone has the same problem?" cchehewo Boost 1.55.0 10240 Start tags in XML files are not checked serialization Boost 1.55.0 To Be Determined Bugs Robert Ramey reopened 2014-07-24T14:25:36Z 2015-01-13T09:10:37Z "The exception boost::archive::xml_archive_exception::xml_archive_tag_mismatch is only thrown when end tag is wrong, start tag may be anything. See attached example: {{{ 12 }}} is desired, {{{ 12 }}} is wrong and noticed as invalid, but {{{ 12 }}} is valid, should be invalid, too. Furthermore, in this special example, if you change the end tag of the root node (here: seriobject) to something else, there is also an exception missing." staehr@… Boost 1.55.0 10244 Erroneous conversion from double to boost::rational rational Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-07-25T12:58:54Z 2014-07-25T12:58:54Z "The documentation discusses in detail why conversion from double is not supported, but the following code works fine: {{{ #include #include int main() { double d = 31.82; boost::rational r = d; std::cout << r << std::endl; } }}} With the following result ""31/1"". It just discards the fractional part. A double is implicitly converted to int and then the implicit constructor from int is used. Such conversion is really confusing. Make it explicitly declared as deleted." akrzemi1 Boost 1.55.0 10264 [smart_ptr] AIX 6.1 bug with sched_yield() function out of scope smart_ptr Boost 1.55.0 To Be Determined Bugs Peter Dimov new 2014-07-28T15:56:20Z 2014-07-28T15:56:20Z "The error that pops up in some of the lambda tests is the following: ../libs/lambda/test/algorithm_test.cpp:37:48: error: reference to 'var' is ambiguous protect((_1 = var(sum), ++var(sum))))); ^ In file included from /usr/include/sys/thread.h:37:0, from /usr/include/sys/ptrace.h:28, from /usr/include/sys/proc.h:42, from /usr/include/sys/pri.h:43, from /usr/include/sys/sched.h:38, from /usr/include/sched.h:51, from ../boost/smart_ptr/detail/yield_k.hpp:101, from ../boost/smart_ptr/detail/spinlock_sync.hpp:18, from ../boost/smart_ptr/detail/spinlock.hpp:50, from ../boost/smart_ptr/detail/spinlock_pool.hpp:25, from ../boost/smart_ptr/shared_ptr.hpp:34, from ../boost/shared_ptr.hpp:17, from ../boost/test/utils/callback.hpp:21, from ../boost/test/execution_monitor.hpp:38, from ../boost/test/impl/execution_monitor.ipp:30, from ../boost/test/minimal.hpp:37, from ../libs/lambda/test/algorithm_test.cpp:14: /usr/include/sys/var.h:59:8: note: candidates are: struct var struct var { ^ In file included from ../boost/lambda/core.hpp:53:0, from ../boost/lambda/lambda.hpp:14, from ../libs/lambda/test/algorithm_test.cpp:16: ../boost/lambda/detail/lambda_functor_base.hpp:66:19: note: template boost::lambda::lambda_functor boost::lambda::var(const boost::lambda::lambda_functor&) lambda_functor var(const lambda_functor& t) { return t; } ^ ../boost/lambda/detail/lambda_functor_base.hpp:60:38: note: template boost::lambda::lambda_functor > boost::lambda::var(T&) inline lambda_functor > var(T& t) { return identity(t); } ^ In ../boost/lambda/detail/lambda_functor_base.hpp there is variable called var that conflicts with an AIX system variable. Defining var and later undefining it frees that variable name. However, the fix I propose is in the smart_ptr function. Please look at the Pull Request created for further details: https://github.com/boostorg/smart_ptr/pull/7" Axel Ismirlian Boost 1.55.0 10265 [asio] AIX 6.1 bug with missing symbol in asio tests asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-07-28T15:56:38Z 2014-07-28T15:56:38Z "The symbol test_main was left undefined for every single one of the asio tests. As a result I would get the following error over and over: ld: 0711-317 ERROR: Undefined symbol: .test_main(int, char**) The weird thing is that the tests did not appear to be using this symbol at all, yet it was still preserved. To compensate I added an empty definition of test_main. This allowed all of the tests in the suite to run. Most of the tests passed except for two, but for unrelated issues that I still need to look at. It is possible that the semantics of the AIX linker and the way that GCC interacts with the linker are causing extra symbols to be preserved. There might need to be in the future more work that needs to be done for either, but for now I think this is a good solution. Please look at the Pull Request created for further details: https://github.com/boostorg/asio/pull/6" Axel Ismirlian Boost 1.55.0 10281 including intrusive/list.hpp breaks compilation using managed_shared_memory interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-07-30T21:57:30Z 2014-07-31T21:32:38Z "The following small program fails to compile: {{{ #include // comment out this to make error go away #include using namespace boost::interprocess; managed_shared_memory msm; void test() { msm = boost::interprocess::managed_shared_memory(open_or_create, ""test"", 100); } }}} /code/git/boost/boost/intrusive/pointer_traits.hpp:173:74: error: static_cast from type ‘boost::intrusive::pointer_traits >::element_type* {aka const void*}’ to type ‘boost::intrusive::pointer_traits::block_ctrl, boost::intrusive::rbtree_node_traits, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>, long int, long unsigned int, 0ul> >::element_type* {aka boost::intrusive::bhtraits::block_ctrl, boost::intrusive::rbtree_node_traits, true>, (boost::intrusive::link_mode_type)0u, boost::intrusive::default_tag, 3u>*}’ casts away qualifiers cc --version gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 " stone@… Boost 1.55.0 10285 local_time is not monotonic date_time Boost 1.55.0 To Be Determined Bugs James E. King, III assigned 2014-08-01T08:03:44Z 2018-01-06T15:43:11Z "The following snippet seems to generate non monotonic local_date. I'm using boost 1.55 on linux. #include #include int main() { const boost::local_time::time_zone_ptr theTimeZone( new boost::local_time::posix_time_zone( ""CET+01CEST+01,M3.5.0/02:00,M10.5.0/03:00"") ); boost::local_time::local_date_time myOldValue( boost::local_time::local_microsec_clock::local_time(theTimeZone)); for (size_t i = 0; ; ++i) { const boost::local_time::local_date_time myLocalTime = boost::local_time::local_microsec_clock::local_time(theTimeZone); if (myLocalTime < myOldValue) { std::cout << myOldValue << std::endl; std::cout << myLocalTime << std::endl; std::cout << boost::local_time::local_microsec_clock::local_time(theTimeZone) << std::endl; std::cout << ""===================="" << std::endl; } myOldValue = myLocalTime; } } As you can see the program is not supposed to print anything ever, however this is what I'm getting: 2014-Jul-31 00:24:56.005625 CEST 2014-Jul-31 00:24:55.005631 CEST <== 1 second back 2014-Jul-31 00:24:56.005946 CEST ==================== 2014-Jul-31 00:24:58.005625 CEST 2014-Jul-31 00:24:57.005629 CEST <== 1 second back 2014-Jul-31 00:24:58.005824 CEST ==================== 2014-Jul-31 00:25:02.005624 CEST 2014-Jul-31 00:25:01.005628 CEST <== 1 second back 2014-Jul-31 00:25:02.005838 CEST ==================== 2014-Jul-31 00:25:04.005625 CEST 2014-Jul-31 00:25:03.005630 CEST <== 1 second back 2014-Jul-31 00:25:04.005826 CEST ==================== 2014-Jul-31 00:25:06.005624 CEST 2014-Jul-31 00:25:05.005633 CEST <== 1 second back 2014-Jul-31 00:25:06.005853 CEST ==================== 2014-Jul-31 00:25:07.005625 CEST 2014-Jul-31 00:25:06.005631 CEST <== 1 second back 2014-Jul-31 00:25:07.005846 CEST ==================== 2014-Jul-31 00:25:12.005625 CEST 2014-Jul-31 00:25:11.005631 CEST <== 1 second back 2014-Jul-31 00:25:12.005822 CEST ==================== as you can see when the local_date is near 0.005631 second fraction it goes back of one second and then forward again on the following call. " Gaetano Mendola Boost 1.55.0 10310 serialization/smart_cast.hpp uses dynamic_cast and breaks non-RTTI builds serialization Boost 1.55.0 To Be Determined Bugs Robert Ramey new 2014-08-04T14:30:03Z 2014-08-06T08:17:42Z When serializing through a pointer to a polymorphic base class, dynamic cast is invoked in line 204, thus making it impossible to serialize via base pointer without RTTI. Mika Fischer Boost 1.55.0 10313 Dynamic bitset destruction asserts with small size dynamic_bitset Boost 1.55.0 To Be Determined Bugs jsiek new 2014-08-05T15:14:07Z 2014-08-05T15:14:07Z "I created a dynamic bitset and resized it to 2. When the bitset is destructed it asserts when m_check_invariants returns false. A size of 8 was observed to not exhibit this behavior. This was also observed in the 1.56 beta" Andrew Sasak Boost 1.55.0 10333 iostreams generates many warnings with gcc 4.8 iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-08-09T23:07:13Z 2014-08-09T23:07:13Z See attached log for an example Richard Boost 1.55.0 10353 Interprocess: rbtree_best_fit ABI change from 1.53 to 1.55 interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-08-13T20:40:23Z 2014-08-22T17:46:20Z "I have an issue that seems to be identical to the issue discussed in this thread on the Boost List: http://lists.boost.org/boost-users/2014/01/81159.php Basically, it seems the size of the Imultiset member in header_t of rbtree_best_fit.hpp has changed between Boost 1.53 and Boost 1.55. As mentioned in the thread from the Boost List: >> boost::interprocess::rbtree_best_fit,0> >> >> has size = 56 >> member m_header.m_imultiset has size 32 >> >> In code compiled with boost 1.55: >> >> the same type has size = 72 >> member m_header.m_imultiset has size 48 > > >Wow, that's too big. I think this is related with MSVC Empty Base >Implementation behaviour. I refactored those classes to avoid redundant >simple forwarding functions using inheritance and that broke this for >MSVC compilers. I should add some checks for 32 and 64 bit compilers to >guarantee the minimum size (16 bytes in 32 bit and 32 bytes in 64 bit). " Terence.Darwen@… Boost 1.55.0 10380 filesystem directory iterator throws on increment filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2014-08-19T14:41:56Z 2014-08-20T05:56:31Z "The following code throws an exception: std::for_each( recursive_directory_iterator(path_to_root_dir), recursive_directory_iterator(), []( const directory_entry& de ) { remove_all( de.path() ); } ); if path_to_root_dir contains only a single sub-directory. This happens in the increment operator of the iterator at line 791 (boost/filesystem/operations.hpp: m_stack.push(directory_iterator(m_stack.top()->path())); The sub-directory is successfully deleted. The exception is thrown after the deletion when the iterator is incremented" Richard Boost 1.55.0 10395 boost::prim_minimum_spanning_tree returning incorrect result graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-08-24T19:06:58Z 2014-08-24T19:23:51Z " Prim MST is returning incorrect results for the attached graph. The correct result for this particular graph is 261159288. Boost Kruskal and other third party MST solvers do work." cristiano.sousa126@… Boost 1.55.0 10430 joined_range generates invalid range with recent gcc versions with optimization enabled range Boost 1.55.0 To Be Determined Bugs Neil Groves assigned 2014-08-30T19:40:42Z 2014-09-01T11:54:18Z "This came up in tracking down unit-test failures when trying to build a project with newer compiler versions with C++11 enabled. The unit-test in question was compiled with multiple compiler versions: * gcc 4.3.4 (without C++11 enabled): working at all optimization levels * gcc 4.7.2 (with C++11 enabled): works without optimizations, failed with -O1 or higher * gcc 4.8.4 (with C++11 enabled): works without optimizations, failed with -O1 or higher * clang 3.5.0 (recent build, with C++11 enabled): works at all optimization levels The failure was tracked down to a use of boost::range::joined_range (Boost 1.55.0), effectively declared as: {{{ boost::range::joined_range::iterator, boost::iterator_range> }}} In this form, the joined_range created from two valid ranges winds up ""somewhere else"" when the higher optimization level. I've attached a test case that demonstrates the problem. Compiled with: {{{ g++ -std=c++11 -o join_bug join_bug.cpp }}} works (printing out the expected ASCII values of the joined ranges). Compiled with: {{{ g++ -O1 -std=c++11 -o join_bug join_bug.cpp }}} fails (printing out zero's in my test, though the correct number of them). This test was run with the same compiler versions as above, on both Boost 1.54.0 and Boost 1.55.0, as well as gcc 4.8.2 and clang 3.4 (both for Ubuntu 14.04), with a slightly modified non-C++11 version for the gcc 4.3.4 compiler, all with the same successes/failures. The problem goes away in all tests if the joined_range is declared like so (changing from std::vector::iterator to std::vector::const_iterator): {{{ boost::range::joined_range::const_iterator, boost::iterator_range> }}} I realize this might be a gcc bug, rather than a Boost bug, but I haven't seen this reported elsewhere and would like to get the behaviour tracked since I'm only seeing problems in relation to joined_range... " Oliver Seiler Boost 1.55.0 10447 io_service destructor hangs if serial_port read is queued, even if not running asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-09-03T12:33:31Z 2016-08-08T23:06:46Z "The following program does not terminate. {{{ #include int main() { auto* ios = new boost::asio::io_service; auto* port = new boost::asio::serial_port(*ios); port->open(""COM6""); char c; boost::asio::async_read(*port, boost::asio::buffer(&c, 1), [](boost::system::error_code, int) {}); delete ios; } }}} Despite the fact that the io_service is not running, its destructor hangs if there is a pending async_read from a serial_port. If that read completes (by receiving one byte), the program terminates." Martinho Fernandes Boost 1.55.0 10471 Boost.Geometry fails to compile when OS X AssertMacros.h are included geometry Boost 1.55.0 To Be Determined Bugs Barend Gehrels new 2014-09-06T01:16:16Z 2014-10-14T21:59:51Z "The infamous AssertMacros.h header (see #2115) defines a macro called ""check"", which causes a compilation failure in . The header is automatically included by certain Apple frameworks, so it's a bit unavoidable. Per the resolution to #2115, instances of the word ""check"" should be replaced by something else to avoid this issue. (Damn you, Apple...) Testcase program: {{{ #include #include }}} Compile with ""c++ test.cpp"". Compile errors: {{{ In file included from test.cpp:2: In file included from /opt/local/include/boost/geometry.hpp:17: In file included from /opt/local/include/boost/geometry/geometry.hpp:43: In file included from /opt/local/include/boost/geometry/strategies/strategies.hpp:31: In file included from /opt/local/include/boost/geometry/strategies/intersection.hpp:15: In file included from /opt/local/include/boost/geometry/policies/relate/intersection_points.hpp:19: In file included from /opt/local/include/boost/geometry/algorithms/detail/assign_indexed_point.hpp:20: /opt/local/include/boost/geometry/geometries/concepts/check.hpp:217:1: error: expected unqualified-id { ^ In file included from test.cpp:2: In file included from /opt/local/include/boost/geometry.hpp:17: In file included from /opt/local/include/boost/geometry/geometry.hpp:43: In file included from /opt/local/include/boost/geometry/strategies/strategies.hpp:31: In file included from /opt/local/include/boost/geometry/strategies/intersection.hpp:15: In file included from /opt/local/include/boost/geometry/policies/relate/intersection_points.hpp:19: In file included from /opt/local/include/boost/geometry/algorithms/detail/assign_indexed_point.hpp:21: In file included from /opt/local/include/boost/geometry/algorithms/detail/assign_values.hpp:29: /opt/local/include/boost/geometry/algorithms/append.hpp:217:9: error: no template named 'check' in namespace 'boost::geometry::concept'; did you mean 'dispatch::check'? concept::check(); ^~~~~~~~~~~~~~ dispatch::check /opt/local/include/boost/geometry/geometries/concepts/check.hpp:68:8: note: 'dispatch::check' declared here struct check : not_implemented ^ ... more errors about missing concept::check ... }}} " Robert Xiao Boost 1.55.0 10483 boost::is_sorted docs incorrectly describe predicate range Boost 1.55.0 Boost 1.58.0 Bugs Neil Groves assigned 2014-09-09T13:13:34Z 2015-02-02T01:20:47Z "From the documentation For the non-predicate version the return value is true if and only if for each adjacent elements [x,y] the expression x < y is true and similarly for the predicate version. This isn't the case however. From the standard [alg.sorting] A sequence is sorted with respect to a comparator comp if for any iterator i pointing to the sequence and any non-negative integer n such that i + n is a valid iterator pointing to an element of the sequence, comp(*(i + n), *i) == false. So the docs should say the expression y < x is false I get the following with g++'s underlying is_sorted(): {{{ std::vector v{1, 1}; std::cout << boost::is_sorted(v) << std::endl; // prints 1 }}} Reference for is_sorted at cplusplus.com [sorry not allowed to post a link] backs this up." charlie@… Boost 1.55.0 10492 current_function.hpp Should make use of __FUNCTION__ when compiling with Visual Studio utility Boost 1.55.0 To Be Determined Bugs No-Maintainer new 2014-09-11T12:33:52Z 2014-10-12T13:55:02Z "I would like to use {{{current_function.hpp}}} together with Visual Studio 2013 but {{{BOOST_CURRENT_FUNCTION}}} becomes defined as ""(unknown)""." anonymous Boost 1.55.0 10508 Hang occurs if tcp::socket.connect(endpt, errorcode) is called with reserved IP address asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-09-16T16:16:59Z 2014-09-16T16:40:59Z "boost::asio::ip::tcp::socket.connect( EndPt, ec) hangs in detail/impl/socket_opps.ipp:472 on the call template inline int call_connect(SockLenType msghdr::*, socket_type s, const socket_addr_type* addr, std::size_t addrlen) { return ::connect(s, addr, (SockLenType)addrlen); <== HANGS } if the IP address is Valid but reserved. 127.0.0.1 & any established private network subnet address work fine with either a connection or an errorcode return specifying the connection was refused. " Ron Hansen Boost 1.55.0 10564 iostreams with custom character class iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-09-29T18:52:57Z 2014-09-29T18:52:57Z "I am trying to use iostreams with custom character class with its own traits. Exactly: std::basic_istream boost::iostreams::filtering_stream This gives me bunch of errors cannot assign std::char_traits to CharacterTraits. I have figured out a few places, where the traits does not propagate correctly. I have attached patch files, for places, where I believe, character trait propagation is missing." jur.zikmund@… Boost 1.55.0 10581 Conflict when using boost::interprocess objects when linking to 2 different boost versions interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2014-10-02T07:27:54Z 2014-10-24T08:33:57Z "'''Introduction''': Boost interprocess directory and file naming has changed after boost 1.54. Intreprocess communication does not work between version greater than 1.54 and lower than 1.54. Related bug report: https://svn.boost.org/trac/boost/ticket/9767 '''The Scenario''': Compile a .dll that uses some shared memory object from the boost::interprocess library with version 1.55. (Think of this as an external 3rd party dll which you have no control over). Then make another project, using an older version of boost, lets say boost 1.51. In the new project, open a shared memory object, then call a function from the dll that also opens a shared memory object. This should have opened 2 shared memory objects, one with the 1.55 version and one with the 1.51 version. The problem is that the second memory object will always fail (even if you change the order). '''The Problem''': Boost uses a singleton object to map the open interprocess memory objects. Because of the versions mismatch, the first shared memory object that is created, also creates the map (And with it the file naming convention). '''Solution''': The singleton '''should''' just map the items, but use the functions according to the calling binary and compiled version of the caller. '''Workaround''': I've just changed the names in the singleton object. I figured you can't have redundancy if it's incompatible, so lets have a separate memory mapping. In windows_intermodule_singleton.hpp changing the windows_semaphore_based_map named objects for the 1.55 version will keep the map separated." Yochai Timmer Boost 1.55.0 10632 Problem with range transform with gcc-4.8 optimized range Boost 1.55.0 To Be Determined Bugs Neil Groves new 2014-10-07T15:52:45Z 2014-10-07T15:52:45Z "With gcc4.8, if the option -O is used, the operation "" | transformed(arg1)"" on a transformed range leads to unexpected results. E.g. if ""initialVec"" is a vector containing any values, the following line gives a null resultVec:[[BR]] auto resultVec = initialVec | transformed( arg1 * 2 ) | transformed( arg1 ); This problem is also present with clang (optimized) and visual studio 2013 (in release), but not in debug modes, and not with gcc-4.6. Note that an operation in the second transformed remove this problem: the following code is working as expected:[[BR]] auto resultVec = initialVec | transformed( arg1 * 2 ) | transformed( arg1 * 1 ); This problem has been reproduced with boost 1.49, 1.55 and 1.56." Fabien Nendaz Boost 1.55.0 10670 stl_concept_covering.cpp:failed to compile w/ studio c++ concept_check Boost 1.55.0 To Be Determined Bugs jsiek new 2014-10-16T20:02:09Z 2014-10-16T20:02:09Z "stl_concept_covering.cpp:failed to compile w/ studio c++ with ""stl_concept_covering.cpp"", line 603: Error: FT is not defined. ""stl_concept_covering.cpp"", line 604: Error: T is not defined. " angela.xie@… Boost 1.55.0 10691 "ip/multicast:runtime failure, error in ""ip_multicast_runtime::test"": 22, Invalid argument" asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2014-10-24T00:32:38Z 2014-10-24T00:32:38Z "Problem: asio/ip/multicast[_select] fail to execute with error message "" multicast.cpp(329): error in ""ip_multicast_runtime::test"": 22, Invalid argument"" if compile it with studio 12.4 c++ and g++-4.8.2 on solaris 11.2" angela.xie@… Boost 1.55.0 10702 "tut1 test:""tut1.cpp"", line 40: Error: noncopyable is not a member of boost w/ studio c++" ptr_container Boost 1.55.0 To Be Determined Bugs Thorsten Ottosen new 2014-10-27T23:20:38Z 2014-10-27T23:20:38Z "Problem: ptr_container/tut1 test fails with ""line 40: Error: noncopyable is not a member of boost"" w/ studio c++ and ""tut1.cpp:41:1: error: expected class-name before '{' token "" with g++-4.8.2. Solution: add #include into tut1.cpp. " angela.xie@… Boost 1.55.0 10764 current_exception_diagnostic_information returns an empty string if what returns an empty string. exception Boost 1.55.0 To Be Determined Bugs Emil Dotchevski new 2014-11-06T17:13:14Z 2014-11-06T17:13:14Z "This happens when throwing standard exceptions such as std::runtime_error when an empty string passed to the constructor. This is a problem with Boost 1.55 and some earlier versions but the code in 1.57 looks the same to me." jonathan.lilliemarck@… Boost 1.55.0 10779 error compiling boostlib_locale on HPUX. locale Boost 1.55.0 To Be Determined Bugs Artyom Beilis new 2014-11-10T10:09:06Z 2015-02-13T18:32:56Z "Hi All, I am trying to compile boost libraries 1.55.0 on HPUX platform with compiler version [aCC.A.06.25].. while compiling it's giving me following error. ------------------------------ ""/usr/local/remote/packages/compiler_remote/ansicA.06.25_aCC.A.06.25/opt/aCC/include_std/rw/rwlocale"", line 722: error #2322: object of abstract class type ""boost::locale::calendar_facet"" is not allowed: function ""boost::locale::calendar_facet::create_calendar"" is a pure virtual function _Facet *__facet = new _Facet (); ^ detected during: instantiation of ""_Facet *__rw::__rw_create_named_facet(_Facet *, const char *, size_t) [with _Facet=boost::locale::calendar_facet]"" at line 79 of ""/usr/local/remote/packages/compiler_remote/ansicA.06.25_aCC.A.06.25/opt/aCC/include_std/rw/vendor"" instantiation of ""_Facet *__rw::__rw_create_native_facet(_Facet *) [with _Facet=boost::locale::calendar_facet]"" at line 537 of ""/usr/local/remote/packages/compiler_remote/ansicA.06.25_aCC.A.06.25/opt/aCC/include_std/rw/locimpl"" instantiation of ""__rw::__rw_facet_base *__rw::__rw_facet_maker<_Facet>::_C_maker_func(int, const char *, size_t) [with _Facet=boost::locale::calendar_facet]"" at line 57 of ""/usr/local/remote/packages/compiler_remote/ansicA.06.25_aCC.A.06.25/opt/aCC/include_std/rw/usefacet"" instantiation of ""const _Facet &std::use_facet<_Facet>(const std::locale &) [with _Facet=boost::locale::calendar_facet]"" at line 26 of ""libs/locale/src/shared/date_time.cpp"" ------------------------------------ Can anyone please help me with this. I am using hpux 11.31 ia64 machine. boost version : 1.55.0 aCC compiler version : 06.25" saurabh.csebhu@… Boost 1.55.0 10801 Used uninitialized error in boyer_myrvold_impl.hpp graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-11-19T00:47:37Z 2016-08-09T09:06:33Z "I met an error when using boyer_myrvold_planar_test() function in Boost_1_55_0 to generate the kuratowski subgraph. Error message is listed as follows: ./boost/graph/planar_detail/boyer_myrvold_impl.hpp:1545:11 error: 'z' may be used uninitialized in this function. I added a ""Wno-maybe-uninitialized"" flag to Makefile to remove this error temporarily, but it's not a good method. I'm looking for a better way to fix this. " wanglurg@… Boost 1.55.0 10805 Bugs: problem in push_relabel_max_flow algorithm when using std::numeric_limits::max() as capacity in some edges graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2014-11-19T15:29:51Z 2015-02-13T18:32:27Z " I am having trouble using the push_relabel_max_flow algorithm when I put std::numeric_limits::max() as capacity attribute in some edges. is there a maximum value that I can use as capacities. which ?. I adjunct an example that reproduces the error: /home/madoery/boost_1_55_0/boost/graph/push_relabel_max_flow.hpp:750: typename boost::property_traits::value_type boost::push_relabel_max_flow(Graph&, typename boost::graph_traits::vertex_descriptor, typename boost::graph_traits::vertex_descriptor, CapacityEdgeMap, ResidualCapacityEdgeMap, ReverseEdgeMap, VertexIndexMap) [with Graph = boost::adjacency_list, CapacityEdgeMap = boost::adj_list_edge_property_map, ResidualCapacityEdgeMap = boost::adj_list_edge_property_map, ReverseEdgeMap = boost::adj_list_edge_property_map, boost::detail::edge_desc_impl&, long unsigned int, edgeInfo, boost::detail::edge_desc_impl edgeInfo::*>, VertexIndexMap = boost::vec_adj_list_vertex_id_map, typename boost::property_traits::value_type = double, typename boost::graph_traits::vertex_descriptor = long unsigned int]: Assertion `algo.is_flow()' failed. On the other side, http://lists.boost.org/Archives/boost/2011/01/174683.php treats the problem of using double precision as capacity attributes on the edges. Jeremiah Willcock advices to just replace the == and != operations in is_flow (and not < and >) and asks if the code works correctly in that case. I made the replacement but I had to use precision (epsilon) too high (in the order of 0.2, 0.3) to make the BOOST_ASSERT(algo.is_flow()) to pass. Maybe these are two different problems or not. I am not sure, but they seems to be regarding the same assert that is failing " Pablo Madoery Boost 1.55.0 10809 Seeking breaks iostreams::restriction internal state iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2014-11-21T01:47:49Z 2014-11-21T01:47:49Z "As in the attached test case, calling seekg() on a restricted istream appears to break the internal state such that more characters can be extracted than expected. I've done some digging around, and I think this is because the restriction device does a seek relative to std::ios_base::cur, which returns -1 from the underlying implementation: Calling std::streambuf::pubseekoff() with way = ios_base::cur and which = (ios_base::in | ios_base::out) fails according to the C++ standard section 27.8.2.4. When fixing this, it's worth noting that calling pubseekoff() will also fail with libstdc++ if it's passed (ios_base::in | ios_base::out) when the stream buffer has only an output buffer or input buffer, but not both. Tested with g++-4.6.3 and g++-4.8.? on 64 bit linux Ubuntu. Behaviour is consistent with clang++-libc++, but inconsistent with MSVC." chris42f@… Boost 1.55.0 10815 Boost 1.55 property_tree INFO parser does not round-trip for \t (tab) property_tree Boost 1.55.0 To Be Determined Bugs Sebastian Redl new 2014-11-24T21:12:25Z 2015-02-13T18:31:10Z "Following GTest fails, as embedded tab (\t) has been expanded to a 'real tab' by write_info (note that \n, \0, \r are all escaped properly {{{ TEST(AdHocTest, AHT0051Boost__property_tree__info_parser_tab) { std::stringstream ss; std::string inputRaw, input, output, exp, act; boost::property_tree::ptree ptree; inputRaw = ""key2 \""value with special characters in it {}; #\\n\\t\\\""\\r\""\n""; ss.str(inputRaw); ASSERT_NO_THROW(boost::property_tree::info_parser::read_info(ss, ptree)) << ""parse inputRaw""; EXPECT_EQ(std::string(""value with special characters in it {}; #\n\t\""\r""), ptree.get(""key2"")); ss = std::stringstream(); ASSERT_NO_THROW(boost::property_tree::info_parser::write_info(ss, ptree)) << ""extract input""; input = ss.str(); exp = ""key2 \""value with special characters in it {}; #\\n\\t\\\""\\r\""\n""; act = input; EXPECT_EQ(exp.size(), act.size()); EXPECT_EQ(exp, act); for (size_t ix = 0, diffs = 0; (ix < exp.size()) && (ix < act.size()) && (diffs < 5); ++ix) { if (exp[ix] != act[ix]) { ++diffs; } EXPECT_EQ(exp[ix], act[ix]) << ""ix="" << ix; } } }}} " brewmanz Boost 1.55.0 10899 symbol visibility: cannot catch an exception thrown by boost::throw_exception on mac OS exception Boost 1.55.0 To Be Determined Bugs Emil Dotchevski new 2014-12-26T12:56:32Z 2015-02-02T15:03:38Z " == The problem == The problem showed up with an exception from boost::property_tree, but I believe it is more general. I have a library (named liba in the attached example) which * is built with hidden symbols visibility * uses boost::property_tree in a `deserialize()` function * catch `boost::property_tree::ptree_bad_path` exception if any (so this is not an ""exception crossing dll boundary issue"") This usually works (test_a works on all platforms) except when * we're on mac os * the `deserialize()` function is called from another library which also uses boost::property_tree In such a case, liba fails to catch the `boost::property_tree::ptree_bad_path` exception (test_b fails on mac os, but passes on linux). So, my problem is that on mac os, liba behaves differently depending on whether it's caller uses boost::property_tree or not. == A tentative explanation == I think the problem comes from symbol visibility inconsistency: * because of boost::throw_exception, the exception which is thrown is not a `boost::property_tree::ptree_bad_path` but a subclass `boost::exception_detail::error_info_injector` * in `include/boost/exception/exception.hpp`, `error_info_injector` visibility is forced to be public (this change comes from #4594) {{{ #if defined(__GNUC__) # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) # pragma GCC visibility push (default) # endif #endif template struct error_info_injector: public T, public exception { explicit error_info_injector( T const & x ): T(x) { } ~error_info_injector() throw() { } }; }}} * However, `boost::property_tree::ptree_bad_path` is still hidden: * there is no visibility #pragma in `include/boost/property_tree/exceptions.hpp` forcing it to be public * I build the library with hidden symbols by default * I want to catch the exception within the library, so I do not need to make the symbol public. What seems to happen on mac (see the typeid adresses) when running test_b: * symbol `boost::exception_detail::error_info_injector` is global, and ''the version from libb is used''. * symbol `boost::property_tree::ptree_bad_path` is private, each lib uses its own version * within liba, `boost::exception_detail::error_info_injector` is thrown, but liba fails to upcast it to its own version of `boost::property_tree::ptree_bad_path`, so it catches it as std::exception instead (and throw it again) * then within libb, the exception is caught again, but this time casting it to libb's version `boost::property_tree::ptree_bad_path` works. When calling the `serialize()` function from test_a (which does not use boost::property_tree), there is no symbol confusion and the exception is caught within liba, as expected. If this is right, the root cause is that one class is hidden and the other not. If we make both exception classes public or private, then it works as expected. I'm not sure why test_b passes on linux, it may have something to do with weak symbols: nm shows the public symbols as weak on linux, but not on mac. == Building and running on mac == {{{ $ make clean rm -f src/a.o src/liba.so src/test_a.o src/test_a src/b.o src/libb.so src/test_b.o src/test_b src/*.swp *.swp src/.a* src/.b* $ make all c++ -c -g -Iinclude -o src/test_a.o src/test_a.cc c++ -c -g -fPIC -Da_EXPORTS -Iinclude -I/Users/hcuche/.local/share/qi/toolchains/mac64/boost/include -o src/a.o src/a.cc c++ -shared -Wl -o src/liba.so src/a.o clang: warning: unknown warning option '-Wl' c++ -Lsrc -o src/test_a src/test_a.o -la c++ -c -g -Iinclude -o src/test_b.o src/test_b.cc c++ -c -g -fPIC -fvisibility=hidden -Db_EXPORTS -Iinclude -I/Users/hcuche/.local/share/qi/toolchains/mac64/boost/include -o src/b.o src/b.cc c++ -shared -Wl -o src/libb.so src/b.o src/liba.so clang: warning: unknown warning option '-Wl' c++ -Lsrc -o src/test_b src/test_b.o -lb -la $ DYLD_LIBRARY_PATH=./src ./src/test_a A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x1085f2ed0 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x1085f2f00 A::deserialize caught ptree_bad_path with typeid 0x1085f32d0 test_a: OK got ""A::deserialize caught ptree_bad_path"" $ DYLD_LIBRARY_PATH=./src ./src/test_b B::load typeid(boost::property_tree::ptree_bad_path): 0x10515f3d0 B::load typeid(boost::exception_detail::error_info_injector): 0x10515f400 A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x105197ed0 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x10515f400 A::deserialize caught std::exception with typeid 0x1051982d0 A::load caught ptree_bad_path with typeid 0x1051982d0 test_b: KO got ""B::load caught ptree_bad_path"" $ c++ --version Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.5.0 Thread model: posix }}} == Building and running on linux with gcc == {{{ $ make clean rm -f src/*.o src/*.so src/test_a src/test_b src/.a* src/.b* ._* src/._* include/._* $ make all g++ -c -g -Iinclude -o src/test_a.o src/test_a.cc g++ -c -g -fPIC -Da_EXPORTS -Iinclude -I/home/sbarthelemy/.local/share/qi/toolchains/linux64/boost/include -o src/a.o src/a.cc g++ -shared -Wl -o src/liba.so src/a.o g++ -Lsrc -o src/test_a src/test_a.o -la g++ -c -g -Iinclude -o src/test_b.o src/test_b.cc g++ -c -g -fPIC -fvisibility=hidden -Db_EXPORTS -Iinclude -I/home/sbarthelemy/.local/share/qi/toolchains/linux64/boost/include -o src/b.o src/b.cc g++ -shared -Wl -o src/libb.so src/b.o src/liba.so g++ -Lsrc -o src/test_b src/test_b.o -lb -la $ LD_LIBRARY_PATH=./src ./src/test_a A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x7f1912652c60 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x7f1912652c20 A::deserialize caught ptree_bad_path with typeid 0x7f1912652b80 test_a: OK got ""A::deserialize caught ptree_bad_path"" $ LD_LIBRARY_PATH=./src ./src/test_b B::load typeid(boost::property_tree::ptree_bad_path): 0x7fefc97dfce0 B::load typeid(boost::exception_detail::error_info_injector): 0x7fefc97dfca0 A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x7fefc95cdc60 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x7fefc97dfca0 A::deserialize caught ptree_bad_path with typeid 0x7fefc95cdb80 test_b: OK got ""A::deserialize caught ptree_bad_path"" $ g++ --version g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }}} == Building and running on linux with clang == {{{ $ make clean rm -f src/*.o src/*.so src/test_a src/test_b src/.a* src/.b* ._* src/._* include/._* $ CXX=clang++ make all clang++ -c -g -Iinclude -o src/test_a.o src/test_a.cc clang++ -c -g -fPIC -Da_EXPORTS -Iinclude -I/home/sbarthelemy/.local/share/qi/toolchains/linux64/boost/include -o src/a.o src/a.cc clang++ -shared -Wl -o src/liba.so src/a.o clang++ -Lsrc -o src/test_a src/test_a.o -la clang++ -c -g -Iinclude -o src/test_b.o src/test_b.cc clang++ -c -g -fPIC -fvisibility=hidden -Db_EXPORTS -Iinclude -I/home/sbarthelemy/.local/share/qi/toolchains/linux64/boost/include -o src/b.o src/b.cc clang++ -shared -Wl -o src/libb.so src/b.o src/liba.so clang++ -Lsrc -o src/test_b src/test_b.o -lb -la $ LD_LIBRARY_PATH=./src ./src/test_a A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x7f8bfa09e800 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x7f8bfa09e830 A::deserialize caught ptree_bad_path with typeid 0x7f8bfa09ec00 test_a: OK got ""A::deserialize caught ptree_bad_path"" $ LD_LIBRARY_PATH=./src ./src/test_b B::load typeid(boost::property_tree::ptree_bad_path): 0x7f1d50790920 B::load typeid(boost::exception_detail::error_info_injector): 0x7f1d50790950 A::deserialize typeid(boost::property_tree::ptree_bad_path): 0x7f1d5057d800 A::deserialize typeid(boost::exception_detail::error_info_injector): 0x7f1d5057d830 A::deserialize caught ptree_bad_path with typeid 0x7f1d5057dc00 test_b: OK got ""A::deserialize caught ptree_bad_path"" $ clang++ --version Ubuntu clang version 3.3-5ubuntu4~precise1 (branches/release_33) (based on LLVM 3.3) Target: x86_64-pc-linux-gnu Thread model: posix }}}" Sébastien Barthélémy Boost 1.55.0 11033 boost::iostreams::copy: conversion from 'std::streamsize' to 'int' iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2015-02-16T15:22:22Z 2015-02-16T15:22:22Z "When using in VS 2013 Update 2, I've got boost\iostreams\copy.hpp(128): warning C4244: 'argument' : conversion from 'std::streamsize' to 'int', possible loss of data I'm passing `ifstream` through `copy` to Poco SHA1, and the files are more than 2 GB long. It is not easy to tell if hashes for the files are correct, but from source code it seems that they are not. The strange row ""size_(buffer_size) // Cast for SunPro 5.3."" looks like it was made deliberately to fix some other bug. Trying to hotfix this bug I run into a problem, that the type should be std::streamsize and std::size_t simultaneosly. size_t is required by std::allocator::allocate. I've found similar problem here: https://svn.boost.org/trac/boost/ticket/7873 Unfortunately I don't understand the code well enough to workaround that allocator parameter issue." polkovnikov.ph@… Boost 1.55.0 11034 boost::iostreams::copy: conversion from 'std::streamsize' to 'int' iostreams Boost 1.55.0 To Be Determined Bugs Jonathan Turkanis new 2015-02-16T15:24:26Z 2015-02-16T15:24:26Z "When using in VS 2013 Update 2, I've got boost\iostreams\copy.hpp(128): warning C4244: 'argument' : conversion from 'std::streamsize' to 'int', possible loss of data I'm passing `ifstream` through `copy` to Poco SHA1, and the files are more than 2 GB long. It is not easy to tell if hashes for the files are correct, but from source code it seems that they are not. The strange row ""size_(buffer_size) // Cast for SunPro 5.3."" looks like it was made deliberately to fix some other bug. Trying to hotfix this bug I run into a problem, that the type should be std::streamsize and std::size_t simultaneosly. size_t is required by std::allocator::allocate. I've found similar problem here: https://svn.boost.org/trac/boost/ticket/7873 Unfortunately I don't understand the code well enough to workaround that allocator parameter issue." polkovnikov.ph@… Boost 1.55.0 11037 last_write_time doesn't work on Windows on files with custom access rights filesystem Boost 1.55.0 To Be Determined Bugs Beman Dawes new 2015-02-16T16:07:02Z 2015-02-16T16:14:47Z "last_write_time uses CreateFile internally with some minimal rights. Anyway, it doesn't have rights to read the last write time of ""System Volume Information"", even though such data are available i.e. for Windows Explorer. The right way to get descriptor for such file or folder is FindFirstFile. Here's an example based on the answer from StackOverflow by Hans Passant: std::size_t last_write_time(boost::filesystem::path const & path) { WIN32_FIND_DATAW info; auto hdl = FindFirstFileW(path.wstring().c_str(), &info); if (hdl == INVALID_HANDLE_VALUE) return std::time_t(-1); std::time_t retval = to_time_t(info.ftLastWriteTime); FindClose(hdl); // better use BOOST_SCOPE_EXIT two lines higher return retval; }" anonymous Boost 1.55.0 11069 io_service hangs for 5 minutes asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2015-03-04T10:56:37Z 2015-03-06T14:43:31Z "Everything said below is applicable to Linux, 64-bit, CentOS 6.6, compiled by g++ 4.4. I have an io_service object which is runned by several threads. According to the logic at the program finish all sockets which belong to this io_service are closed and these threads begin to exit one by one. Just before threads exits, it posts on the io_service a callback which joins this thread from another thread and cleans up some associated data. Everything runs perfect until only one thread is left. Occasionally this thread is not running any posted event for exactly 5 minutes. It is just waiting for something. After 5 minutes it wakes up, joins all the the threads which were posted, and successfully exits. It doesn't happen all the time, but approx. every 50 program executions I get this situations. According to asio sources, epoll reactor has some timeout which equals to exactly 5 minutes. It seems that there is a bug somewhere. P.S.: Meanwhile the main program thread waits for condition_variable which is set by the last thread running io_service, which signals that all the threads exited." dmitrmax@… Boost 1.55.0 11070 async_connect never calls back on mac with -fvisibility=hidden asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2015-03-04T14:50:25Z 2015-03-18T16:21:07Z "See the attached file for a minimal code to reproduce. I have tested this on mac os yosemite with ""Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)"". To test: {{{ mkdir build cd build cmake .. make ./main }}} Result: The program never returns Expected: The program finishes (possibly with a ""connection refused"" error) What I do is to create a socket in the main binary (without using it) and do an async_connect in a library with hidden symbols. This code works if I comment the -fvisibility=hidden line in the CMakeLists.txt or if I comment the socket creation in main(). This seems to be related to boost::asio::detail::service_registry::keys_match which compares service types. It relies on typeinfo to do that (unless BOOST_ASIO_NO_TYPEID is set). For that to work, typeid_wrapper is forced to default visibility (see #pragma at boost/asio/detail/service_registry.hpp:32), but in recent mac os versions it seems that it is not enough anymore. It seems that a symbol Foo is exported if and only if Foo AND T are set to default visibility. So, in this case, we have two typeinfos for the same type typeid_wrapper> and they are not merged at dynamic linking because the symbols are hidden. One possible fix is to set default visibility to stream_socket_service and ip::tcp. This makes my example work, but it should be needed also for other services and protocols as well. I have made a patch for for this, but I don't know if this is the right way to fix it." blastrock Boost 1.55.0 11276 Ability to hold already type erased object into a type erased reference. type_erasure Boost 1.55.0 To Be Determined Bugs Steven Watanabe new 2015-05-08T11:34:55Z 2015-05-09T00:29:28Z "I would like to ask for an enhancement to this fantastic library, that is making me so happy in the absence of non-library solutions in c++ :) This problem came up in my code: {{{ class my_concept : public any { using base = any; public: using base::base; }; class my_concept_ref : public any { using base = any; public: template my_concept_ref(Args &&... args) : base(std::forward(args)...) {} }; //client code vector vec; // vec.push_back(my_concrete_model{}); my_concept_ref get_a_type_erased_type_in_a_ref(vector & vec) { return vec[0]; } //Throws bad_cast: auto & want_my_model = any_cast(get_a_type_erased_type_in_a_ref()); //I must do this: auto & will_give_me_my_model = any_cast(any_cast( get_a_type_erased_type_in_a_ref()); }}} The problem here is that when the constructor for my_concept_ref takes an already type erased type from the vector (my_concept), it wraps that concrete type, which is a model of my_concept, but it was already type_erased, and not the internal concrete model (my_concrete_model). What could be implemented is automatic unwrapping of a type erased type so that I can do this: {{{ //Throws bad_cast: auto & want_my_model = any_cast(get_a_type_erased_type_in_a_ref()); }}} I think this should work. There is no easy workaround but to cast twice. I think the runtime concept constructor should check wether the class being taking in the constructor is actually already a type erased one based on detecting any. I do not want to use in my code both my_concept & and my_concept_ref depending on wether I wrapped my concrete class or not in a type erased wrapper. This would give the library more uniformity and makes sense conceptually, because my_concept & can only be used in case I wrapped my type in a my_concept &, which is not always the case. Great work, by the way! I am trying to make heavy use of the library and so far it is serving me very well. " germandiago Boost 1.55.0 11292 Matrix Memory problem after using lu_factorize uBLAS Boost 1.55.0 To Be Determined Bugs Gunter new 2015-05-13T08:16:37Z 2015-05-13T08:16:37Z "Discovered that after using lu_factorize the values of the matrix have changed! {{{ #include #include #include #include #include #include #include using namespace std; using namespace boost::numeric; int main() { ublas::matrix X(3,3); X.clear(); X(0,0) = 0.995182407377577; X(0,1) =-0.006473367705848; X(0,2) =-0.002032391957706; X(1,0) =-0.006473367705848; X(1,1) = 0.995182407377577; X(1,2) =-0.002032391957706; X(2,0) =-0.002032391957706; X(2,1) =-0.002032391957706; X(2,2) = 0.936175146339137; cout< #include #include #include #include #include #include using namespace std; using namespace boost::numeric; int main() { ublas::matrix X(3,3); X.clear(); X(0,0) = 0.995182407377577; X(0,1) =-0.006473367705848; X(0,2) =-0.002032391957706; X(1,0) =-0.006473367705848; X(1,1) = 0.995182407377577; X(1,2) =-0.002032391957706; X(2,0) =-0.002032391957706; X(2,1) =-0.002032391957706; X(2,2) = 0.936175146339137; cout< #include #include #include #include #include #include using namespace std; using namespace boost::numeric; int main() { ublas::matrix X(3,3); X.clear(); X(0,0) = 0.995182407377577; X(0,1) =-0.006473367705848; X(0,2) =-0.002032391957706; X(1,0) =-0.006473367705848; X(1,1) = 0.995182407377577; X(1,2) =-0.002032391957706; X(2,0) =-0.002032391957706; X(2,1) =-0.002032391957706; X(2,2) = 0.936175146339137; cout< #include #include #include #include #include #include using namespace std; using namespace boost::numeric; int main() { ublas::matrix X(3,3); X.clear(); X(0,0) = 0.995182407377577; X(0,1) =-0.006473367705848; X(0,2) =-0.002032391957706; X(1,0) =-0.006473367705848; X(1,1) = 0.995182407377577; X(1,2) =-0.002032391957706; X(2,0) =-0.002032391957706; X(2,1) =-0.002032391957706; X(2,2) = 0.936175146339137; cout< works for making temperatures absolute. However, it does not define a specialisation of the base_unit_info, so name_string and symbol_string are unavailable and some methods fails as a result. Please consider making absolute<> provide a base_unit_info specialisation which delegates to the wrapped unit type's base_unit_info, but adds an ""absolute "" prefix to both and can replace the ostream operator which works partially for the symbol case, but not the unit name which is completely absent. This will make absolute<> behave the same as a normal unwrapped unit." Roger Leigh Boost 1.55.0 11521 Cannot create basic_vectorstream> in Boost 1.55+ interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2015-08-01T23:59:07Z 2015-08-20T23:06:48Z "Moving from Boost 1.54 to 1.55 (and 1.58) I now get this error during compilation (VS2010): void GzipDecompression::Decompress(const unsigned char * src, int length) { if(src) { // Create an input-stream source for the data buffer so we can used the boost filtering buffer std::ifstream inputstream; typedef boost::iostreams::basic_array_source Device; boost::iostreams::stream_buffer buffer((char *)src, length); // Inflate using the GZIP filter filtering_streambuf in; in.push(gzip_decompressor()); in.push(buffer); // Get the result into a vector boost::interprocess::basic_vectorstream> vectorStream; copy(in, vectorStream); std::vector output(vectorStream.vector()); } } error C2243: 'type cast' : conversion from 'boost::interprocess::basic_vectorstream *' to 'volatile const std::basic_streambuf<_Elem,_Traits> *' exists, but is inaccessible c:\boost\boost_1_55_0\boost\iostreams" anonymous Boost 1.55.0 11626 graph: segfault with custom container example graph Boost 1.55.0 To Be Determined Bugs Jeremiah Willcock new 2015-09-07T17:10:05Z 2015-09-07T17:25:33Z Experimenting with using a custom container for boost graph and started with the example 'ordered_out_edges.cpp'. This example compiles fine, but has a segfault accessing string edge properties of the custom container. Back trace and other info are attached. blobfish@… Boost 1.55.0 11718 No debug output when karma.hpp is included before qi.hpp spirit Boost 1.55.0 To Be Determined Bugs Joel de Guzman new 2015-10-11T06:28:15Z 2016-06-17T10:18:24Z "In case karma.hpp is included macro karma\nonterminal\debug_handler.hpp::BOOST_SPIRIT_DEBUG_NODE(...) is defined. In case qi.hpp is included macro qi\nonterminal\debug_handler.hpp::BOOST_SPIRIT_DEBUG_NODE(...) is defined. both macros are secured by !defined(BOOST_SPIRIT_DEBUG_NODE). Therefore macro is defined only once which is fine. In case BOOST_SPIRIT_DEBUG is defined expectation is that both macro implementations define equal code. But this is not the case: - If karma.hpp is included before qi.hpp resulting code is: #define BOOST_SPIRIT_DEBUG_NODE(r) r.name(#r); - If qi.hpp is included before karma.hpp resulting code is: #define BOOST_SPIRIT_DEBUG_NODE(r) r.name(#r); debug(r) Therefore debug output is only available when header files are included in the right order. A simple macro extension should solve the issue." anonymous Boost 1.55.0 11767 More -Wunused-local-typedef warnings when building Boost 1.55.0 with Apple LLVM version 7.0.0 (clang-700.1.76) asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2015-10-28T09:04:33Z 2015-10-28T09:04:33Z "This relates to ticket 8980 which was fixed for g++ I've checked the code for 1.59 and it looks still the same issue there. I would recommend that line 58: {{{ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) }}} is changed to {{{ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) || __clang__ }}} Certainly this removes the errors from my machine but i've been unable to ascertain whether or not this would cause massive issues on other versions of llvm or indeed how to use macros to get the version of llvm in use." christopher.dawes@… Boost 1.55.0 11813 Microseconds get cut off in ISO string representation if all zero (posix_time::to_iso_string) date_time Boost 1.55.0 To Be Determined Bugs az_sw_dude new 2015-11-21T14:33:16Z 2015-11-21T20:30:32Z " {{{ #include #include #include int main() { boost::posix_time::ptime timestamp = boost::posix_time::microsec_clock::local_time(); std::string sTime( boost::posix_time::to_iso_string( timestamp )); std::cout << ""Timestamp: "" << sTime << std::endl; return 0; } }}} This outputs for example: ''Timestamp: 20151121T141522.999982'' Now, if microseconds are all zero the output I'd expected was[[BR]] ''Timestamp: 20151121T141523.000000''[[BR]] but actually is[[BR]] ''Timestamp: 20151121T141523'' Now, when trying to cut off the microseconds fraction (for whatever reason) by doing {{{ std::string sFraction = sTime.substr( 16, 21 ); }}} you may end up with the following error: {{{ Something unexpected happened: 'basic_string::substr: __pos (which is 16) > this->size() (which is 15)' }}} I saw this behavior in Boost 1.55.0, but when I checked the current sources online, I couldn't see any difference, so I think this would occur in the current version, too." Marcel Glacki Boost 1.55.0 11816 can not move asio socket on vs2010 asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2015-11-23T09:25:37Z 2015-12-06T09:14:12Z " io_service svc; tcp::socket sk(svc); auto sk2 = std::move(sk); compile failed on vs2010,and I tried on vs2012 it works." luguanyu Boost 1.55.0 12045 Bug in condition_algorithm_8a::wait when using timed wait interprocess Boost 1.55.0 To Be Determined Bugs Ion Gaztañaga new 2016-03-07T11:13:46Z 2016-03-19T15:47:00Z "There's a bug in condition_algorithm_8a::wait In the beginning of the method it's using data.get_sem_block_lock().wait(); This may cause the wait to wait forever, even if you're using the timed wait version of the method. Happens to me when a ""Client"" process holds the lock and then dies, this causes the wait() to wait forever. What should have happened, is the it would time out, and then i could detect the failure, and do something about it. " yochait@… Boost 1.55.0 12395 Asio Serial_port does not work after unplug and plug the cable back (reconnection) asio Boost 1.55.0 To Be Determined Bugs chris_kohlhoff new 2016-08-16T13:13:30Z 2016-08-16T13:13:30Z "After unplug and plug the cable during runtime, the write_some operation returns the number of bytes written but if you check the other side no bytes were sent. If we restart the runtime, it works again. The workaround I am trying to implement is if I have any timeout conditions I will release the resources and open the port again. " paulorbhell@… Boost 1.55.0 12679 "Merging heaps causes them to ""forget"" pending lazy updates." heap Boost 1.55.0 To Be Determined Bugs timblechmann new 2016-12-12T07:11:49Z 2016-12-14T05:03:27Z "In my opinion, a reasonable behavior for the code below would be to print out: 99, 2, 1, In reality, though, the output is: 2, 99, 1, This means that the lazy_update() is somehow forgotten in the process of merging the two heaps. {{{ boost::heap::fibonacci_heap q1, q2; std::vector::handle_type> handles; handles.push_back(q1.push(0.f)); handles.push_back(q1.push(1.f)); handles.push_back(q2.push(2.f)); q1.update_lazy(handles[0], 99.f); q1.merge(q2); while (!q1.empty()) { std::cout << q1.top() << "", ""; q1.pop(); } }}} " shirpeled+boost@… Boost 1.55.0 12789 "Instantiating bimap with all three ""additional"" template parameter fails to compile." bimap Boost 1.55.0 To Be Determined Bugs Matias Capeletto new 2017-01-25T15:21:48Z 2017-01-25T15:21:48Z "The following test program fails to compile. {{{#!c++ #include #include void test() { boost::bimap, std::allocator> map; } }}} The compile error from g++ 4.9.2 starts with: {{{ jhaigh@growler:~/tmp/tmp$ g++ -std=c++11 bimap_error.cpp In file included from /usr/include/boost/bimap/bimap.hpp:61:0, from /usr/include/boost/bimap.hpp:13, from bimap_error.cpp:1: /usr/include/boost/bimap/detail/bimap_core.hpp: In instantiation of ‘class boost::bimaps::detail::bimap_core, std::allocator >’: /usr/include/boost/bimap/bimap.hpp:133:7: required from ‘class boost::bimaps::bimap, std::allocator >’ bimap_error.cpp:5:106: required from here /usr/include/boost/bimap/detail/bimap_core.hpp:410:7: error: no class template named ‘rebind’ in ‘boost::bimaps::detail::manage_additional_parameters, std::allocator >::case_SHA::allocator {aka struct boost::bimaps::with_info}’ ... }}} Boost thinks my with_info parameter is an allocator! The full compiler output will be attached, but I think this is enough to see the problem. It looks like the cause is the case_SHA struct in boost/bimap/detail/manage_additional_parameters that deals with the case when all three additional template parameters are given to bimap: {{{#!c++ template< class AP1, class AP2, class AP3 > struct manage_additional_parameters { ... struct case_SHA { typedef AP1 set_type_of_relation; typedef AP2 allocator; typedef BOOST_DEDUCED_TYPENAME AP2::value_type additional_info; }; }}} AP2 is used for both the allocator type and the additional_info type. I think allocator should be typedefed to AP3, not AP2." jonathan.haigh@… Boost 1.55.0 8582 Improve string algorithm Stacking string_algo Boost 1.55.0 To Be Determined Feature Requests Marshall Clow new 2013-05-17T17:47:12Z 2013-05-17T18:04:32Z "The documentation for the string algorithm library states: ""Algorithm stacking: Copy versions return a transformed input as a result, thus allow a simple chaining of transformations within one expression (i.e. one can write trim_copy(to_upper_copy(s))). Mutable versions have void return, to avoid misuse. "" I'm not sure what they mean by misuse but if all of the mutable version returned a reference to the object you are manipulating then you could chain them together without paying the price of copying the string over and over again. " rlogel@… Boost 1.55.0 8625 Add function to indicate if `swap` is no-throw swap Boost 1.55.0 Boost 1.55.0 Feature Requests joseph.gauterin new 2013-05-28T14:24:02Z 2013-05-28T14:24:02Z "While writing a library for Boost, I found the need for this function: {{{ #include //! Detect if a type's swap (found via ADL for //! non-built-ins) throws. template < typename T, typename U = T > inline constexpr bool is_swap_nothrow() noexcept { using std::swap; return noexcept( swap(std::declval(), std::declval()) ); } }}} while writing my container's swap. You would probably use the macros for ""inline,"" ""constexpr,"" operator ""noexcept,"" and the ""noexcept"" flag, but the function is pretty much useless unless all of those features are fully defined. The function has to be shielded from pre-C++11 compiles, of course. " Daryle Walker Boost 1.55.0 9253 Support for serializing std::u16string serialization Boost 1.55.0 To Be Determined Feature Requests Robert Ramey new 2013-10-15T19:45:50Z 2014-02-04T01:26:01Z "Hi: I would like to use the boot serialization library with the C++11 std::u16string type. When I use it with a text archive I get the following error. Could you elaborate on the plans by when we will be having support for this. For now, we can get workaround the issue by writing our own non-intrusive ""load"" and ""save"" methods for u16string, but would prefer built in serialization support for it like std::string. Please find below the stack trace for the error. Thanks boost/include/boost/serialization/access.hpp: In instantiation of 'static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::basic_string]': boost/include/boost/serialization/serialization.hpp:102:5: required from 'void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::basic_string]' boost/include/boost/serialization/serialization.hpp:161:9: required from 'void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::text_oarchive; T = std::basic_string]' boost/include/boost/archive/detail/oserializer.hpp:148:5: required from 'void boost::archive::detail::oserializer::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::text_oarchive; T = std::basic_string]' boost/include/boost/archive/detail/oserializer.hpp:101:1: required from 'class boost::archive::detail::oserializer >' boost/include/boost/archive/detail/oserializer.hpp:253:13: required from 'static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' boost/include/boost/archive/detail/oserializer.hpp:308:9: required from 'static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, const T&) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' boost/include/boost/archive/detail/oserializer.hpp:314:9: required from 'static void boost::archive::detail::save_non_pointer_type::invoke(Archive&, T&) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' boost/include/boost/archive/detail/oserializer.hpp:525:5: required from 'void boost::archive::save(Archive&, T&) [with Archive = boost::archive::text_oarchive; T = std::basic_string]' boost/include/boost/archive/detail/common_oarchive.hpp:69:9: required from 'void boost::archive::detail::common_oarchive::save_override(T&, int) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' boost/include/boost/archive/basic_text_oarchive.hpp:113:9: required from 'void boost::archive::basic_text_oarchive::save_override(T&, int) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' boost/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from 'Archive& boost::archive::detail::interface_oarchive::operator<<(T&) [with T = std::basic_string; Archive = boost::archive::text_oarchive]' main.cpp:39:15: required from here boost/include/boost/serialization/access.hpp:151:9: error: 'class std::basic_string' has no member named 'serialize' boost/include/boost/serialization/access.hpp: In instantiation of 'static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::basic_string]': boost/include/boost/serialization/serialization.hpp:102:5: required from 'void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::basic_string]' boost/include/boost/serialization/serialization.hpp:161:9: required from 'void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::text_iarchive; T = std::basic_string]' boost/include/boost/archive/detail/iserializer.hpp:188:5: required from 'void boost::archive::detail::iserializer::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::archive::text_iarchive; T = std::basic_string]' boost/include/boost/archive/detail/iserializer.hpp:120:1: required from 'class boost::archive::detail::iserializer >' boost/include/boost/archive/detail/iserializer.hpp:387:13: required from 'static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' boost/include/boost/archive/detail/iserializer.hpp:439:9: required from 'static void boost::archive::detail::load_non_pointer_type::invoke(Archive&, T&) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' boost/include/boost/archive/detail/iserializer.hpp:592:5: required from 'void boost::archive::load(Archive&, T&) [with Archive = boost::archive::text_iarchive; T = std::basic_string]' boost/include/boost/archive/detail/common_iarchive.hpp:66:9: required from 'void boost::archive::detail::common_iarchive::load_override(T&, int) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' boost/include/boost/archive/basic_text_iarchive.hpp:98:9: required from 'void boost::archive::basic_text_iarchive::load_override(T&, int) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' boost/include/boost/archive/text_iarchive.hpp:115:9: required from 'void boost::archive::text_iarchive_impl::load_override(T&, int) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' boost/include/boost/archive/detail/interface_iarchive.hpp:60:9: required from 'Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = std::basic_string; Archive = boost::archive::text_iarchive]' main.cpp:55:15: required from here boost/include/boost/serialization/access.hpp:151:9: error: 'class std::basic_string' has no member named 'serialize' Thanks" learner.cpp@… Boost 1.55.0 9382 flat_stable associative containers. container Boost 1.55.0 To Be Determined Feature Requests Ion Gaztañaga new 2013-11-13T10:35:34Z 2018-05-24T20:45:45Z "I think it would be interesting to have flat associative containers based on the stable_vector implementation. From my understanding of the flat_ containers and stable_vector we may have a good mix of access performance and insert performance. Maybe it's not a real need thanks to C++11 optimization (move, RVO...), I'm still discovering the new standard. Congratulation for the job done in the container lib, it's impressive to see what new implementations can bring. Vincent" vincent.fericelli@… Boost 1.55.0 9557 BOOST_FOREACH with iterators? foreach Boost 1.55.0 To Be Determined Feature Requests Eric Niebler new 2014-01-09T00:02:17Z 2014-01-09T00:02:17Z "I love BOOST_FOREACH and use it all the time. The normal signature is BOOST_FOREACH( T & t, Collection){...} Would it be possible to also permit BOOST_FOREACH( T *, Collection){..>} This would make it even more useful to me. Robert Ramey" Robert Ramey Boost 1.55.0 9577 trim_copy doesn't support string_ref algorithm Boost 1.55.0 To Be Determined Feature Requests Marshall Clow assigned 2014-01-15T19:07:55Z 2014-03-31T20:00:27Z "{{{ boost::string_ref z = "" AA BB ""; boost::string_ref b = boost::trim_copy(z); }}} does not compile" ml@… Boost 1.55.0 9583 Support of wide character filenames in boost::interprocess::file_lock interprocess Boost 1.55.0 To Be Determined Feature Requests Ion Gaztañaga new 2014-01-16T09:12:54Z 2014-01-16T09:16:51Z "boost::interprocess::file_lock is unable to handle paths with wide character filenames. This feature is already commented in the list of future improvements I attach one patch to add this support for Windows platform (you can use boost::filesystem::c_str() and it will hide if it is char* or wchar_t* for you :)) " jmalo@… Boost 1.55.0 9588 Add a parallel_invoke algorithm. thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-01-18T10:53:12Z 2014-01-21T18:03:46Z "Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_invoke algorithm. The main difference is that the algorithm could take an Executor as parameter." viboes Boost 1.55.0 9589 Add a parallel_sort algorithm. thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-01-18T10:53:57Z 2014-01-21T18:03:55Z "Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_sort algorithm. The main difference is that the algorithm could take an Executor as parameter." viboes Boost 1.55.0 9590 Add a parallel_reduce algorithm. thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-01-18T10:55:43Z 2014-01-21T18:04:06Z " Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_reduce algorithm. The main difference is that the algorithm could take an Executor as parameter. " viboes Boost 1.55.0 9591 Add a parallel_for algorithm. thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-01-18T10:58:07Z 2014-01-22T12:07:39Z " Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_for algorithm. The main difference is that the algorithm could take an Executor as parameter. " viboes Boost 1.55.0 9592 Add a parallel_for_each algorithm thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-01-18T11:01:52Z 2014-01-21T18:04:27Z "Base on http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3429.pdf and TBB Intel library add a parallel_for_each algorithm. The main difference is that the algorithm could take an Executor as parameter. " viboes Boost 1.55.0 9608 Reset on Report and Custom String timer Boost 1.55.0 To Be Determined Feature Requests Beman Dawes new 2014-01-26T19:38:56Z 2014-01-26T19:38:56Z "It might be nice if there's a way for the timer to reset on report. And for report to take a string argument so the output could include what the time is about." Olaf van der Spek Boost 1.55.0 9685 Boost.Locale does not link against static ICU on Windows locale Boost 1.55.0 To Be Determined Feature Requests Artyom Beilis assigned 2014-02-19T23:06:28Z 2016-12-08T14:40:25Z "There seems to be no support for linking against the static ICU libraries (sicuXX.lib) on Windows. Is there any plans to add it (?), or is there an inherent problem? I would be willing to write that support if there is a bit of guidance on how to go about it in the Jamfile." stathis@… Boost 1.55.0 9715 Converting std:exception_ptr to boost:exception_ptr exception Boost 1.55.0 To Be Determined Feature Requests Emil Dotchevski new 2014-02-26T09:47:25Z 2014-02-26T09:47:47Z "Please provide a way to convert std::exception_ptr to boost::exception_ptr (if std::exception_ptr is available of course). This would important for users who do not want to wrap all of their throws in enable_current_exception() and/or use std::exception_ptr in other parts of their code, but forced to use boost::exception_ptr in their public interface of other boost libraries. See also: http://stackoverflow.com/questions/22010388/converting-stdexception-ptr-to-boostexception-ptr Would it be possible to typedef std::exception_ptr as boost::exception_ptr if boost is compiled with C++11? " anonymous Boost 1.55.0 9724 Add move semantics for ssl::stream<> asio Boost 1.55.0 To Be Determined Feature Requests chris_kohlhoff new 2014-02-28T10:08:32Z 2018-03-01T10:13:17Z "Hi, ''boost::asio::basic_stream_socket<>'' implements move semantics. However, ''boost::asio::ssl::stream<>'' does not. I don't know if this feature is in the roadmap yet, but for c++11 and later users, this could be very handy. " anonymous Boost 1.55.0 9755 Simple way to get hash. hash Boost 1.55.0 To Be Determined Feature Requests Daniel James new 2014-03-07T12:25:16Z 2014-03-07T12:25:16Z "When writing custom hash_value functions, it is often useful to forward to the hash of another value. However, there is currently no short and simple way to do this. Consider: template struct C { some_complex_mpl_expression::type value; friend std::size_t hash_value() { // First attempt: requires knowledge of the type of the value to hash. return boost::hash::type>()(this->value); // Second attempt: two lines, not recommended. using namespace boost; return hash_value(this->value); // Third attempt: works, but requires three lines of code and doesn't yield the same hash as the first two attempts. std::size_t seed = 0; boost::hash_combine(seed, this->value); return seed; } }; I propose the addition of a simple function to calculate the hash of any arbitrary value, defined below: template std::size_t get_hash(T const& v) { return hash()(v); } This would allow me to write the above hash_value function with a single line of simple and correct code: friend std::size_t hash_value() { return boost::get_hash(this->value); } " Rainer Deyke Boost 1.55.0 9758 boost::geometry::index::rtree does not compile with CoordinateSystem geographic< geometry Boost 1.55.0 To Be Determined Feature Requests Barend Gehrels new 2014-03-08T20:30:42Z 2018-04-07T07:12:34Z "boost::geometry::index::rtree does not compile with CoordinateSystem geographic< CoordinateSystem cartesian is ok Example program: {{{ typedef bg::model::point geo_point_ok; typedef bg::model::point > geo_point; typedef std::pair geo_vg_value; void test() { double lon=10.0, lat=60.0; geo_point pt(on, lat); rtree.insert(std::make_pair(pt, wp->id)); std::vector result; geo_point here(targetLat, targetLat); rtree.query(bgi::nearest(here, 20), std::back_inserter(result)); } }}} " ola.lykkja@… Boost 1.55.0 9769 Add conversion from boost::exception_ptr to std::exception_ptr when available exception Boost 1.55.0 To Be Determined Feature Requests Emil Dotchevski new 2014-03-11T06:48:51Z 2014-09-12T17:12:34Z "Having the conversion from boost::exception_ptr to std::exception_ptr, when the compiler supports it std::exception_ptr, is needed to implement this ticket #9710 ""Support std::exception_ptr in boost::promise"". Do you think that it is worth adding it to Boost.Exception? Could this conversion be done more efficiently using the internals of the library?" viboes Boost 1.55.0 9797 Scanning files without updating file counter when initializing from settings container log Boost 1.55.0 Boost 1.56.0 Feature Requests Andrey Semashev new 2014-03-20T09:42:06Z 2014-03-20T10:11:02Z "When setting up a text file backend programmatically I can call scan_for_files() with the update_counter parameter set to false. However when initializing logging from a settings container, default_text_file_sink_factory::create_sink() always calls scan_for_files() with the update_counter parameter set to true. In my project I need to be able to initialize a text file backend from a settings container, and scanning files with update_counter set to false." robert.hegner@… Boost 1.55.0 9810 boost serialization: deserialization from boost txt archive fails on -nan for double serialization Boost 1.55.0 To Be Determined Feature Requests Robert Ramey reopened 2014-03-27T19:20:37Z 2016-03-14T21:31:49Z "A double gets correctly serialized to ""-nan"". Deserializing it leads to 'boost::archive::archive_exception' what(): input stream error when used with a text archive." florian.burkart@… Boost 1.55.0 9953 lazy_enable_if is not sfinae friendly core Boost 1.55.0 To Be Determined Feature Requests Peter Dimov new 2014-04-25T10:53:02Z 2017-07-08T20:37:35Z "The following code fails to compile, even though boost::result_of itself is sfinae friendly. {{{ template < typename T > typename boost::lazy_enable_if_c< boost::is_class::value, boost::result_of >::type test(int){} template < typename > void test(...) {} struct A{}; // boost::result_of is a valid type that doesn't have a member called ""type"" int main(int argc, const char * argv[]) { test(0); // test(int) meant to be a substitution failure return 0; } }}} I'm not sure if this is a bug/flaw, or a lack of feature, or maybe this kind of use is deliberately disallowed for some reason, but it could be very useful if {{{lazy_enable_if_c}}} etc support uses when {{{typename T::type}}} itself may cause a substitution failure. Proposing to change implementation of {{{lazy_enable_if_c}}} and {{{lazy_disable_if_c}}} to: {{{ template struct lazy_enable_if_c : T {}; // inherits from T template struct lazy_enable_if_c {}; template struct disable_if_c : T {}; // inherits from T template struct disable_if_c {}; }}} " hui.li@… Boost 1.55.0 10009 Boost Asio should provide also thread-safe sockets asio Boost 1.55.0 To Be Determined Feature Requests chris_kohlhoff new 2014-05-06T14:51:27Z 2016-12-01T09:09:52Z "The feature I'm requesting is strictly related to the well-known problem reported in ticket #8538, but I'm not reporting it as a bug since the documentation explicitly states that the Asio's sockets are ''not'' thread-safe ''by design'': the user ''must'' use strands at top level to ensure a correct behavior in a multi-threaded environment. If I've correctly understood, the rationale for such design is that in a single threaded environment, one should pay no cost for synchronization. I disagree with this design decision for several reasons. == The multi-threaded environments are more important == I believe that the environments where asio is seriously (heavily) used are multi-threaded (there is an asio-based thread pool): this means that the optimization is made for the simpler cases (where the cost for a not-contended lock acquisition is negligible); IMHO this is wrong. This adds an additional (significative) overhead to users which have necessarily to: 1. use strands (through strand::wrap() as suggested in the docs) ''or'' 2. use mutexes (or other lock types) and carry always a reference to them with the relative socket ''or'' 3. wrap asio's socket with a custom class that internally uses locking. == strand::wrap() is not always that useful == I believe that the solution officially recommended to ""solve the problem"" (wrapping the callbacks with strand::wrap()) is theoretically a bad idea since it causes the serialization (which is ''almost'' like what a mutex does) of the callbacks invocation: this is ''deeply'' wrong because it is an anti-pattern: the fundamental principle of synchronization is that ONLY the data has to be ""locked"", NOT the code. Using strand::wrap() ( ~= locking the CODE ) could lead to serious performance bottlenecks if the callbacks' code is not ''carefully'' written (one could unconsciously do a heavy computation (or sync I/O) through several levels of function calls). So, within this model, writing an efficient code will mean to be careful and to necessarily re-schedule all non-trivial tasks: that is not so easy sometimes.[[br]] What if, for example, one wants to close 100 sockets in a callback? Using strand::wrap() would mean to use a common strand for all the 100 sockets (= to serialize all the callbacks for these sockets): this is an ''unacceptable'' cost to pay. Instead, using a strand for each socket and rescheduling a close() request using strand::post() is much better but would mean always carrying back a reference of the relative strand for each socket: this is same problem of the alternative 2: no one would be happy to do this.[[br]] It seems that the most attractive alternative is the third one. == The non-thread-safe sockets are not something one would expect from Asio == I'm pretty sure that I'm not the only one who, before reading ''carefully'' the documentation, was expecting that the sockets were ''of course'' thread-safe: we are dealing with a high-level library for asynchronous I/O. The situation is analogue to C++11's atomics: they, by default, use FULL barriers because this way is simpler to use them; advanced users (that really know what they're doing) instead, could always specify the exact type of barrier they need. I think Asio is roughly at the same level of abstraction of standard C++ libraries (if not at higher one), so I think it should follow the same philosophy. == Synchronization is already used in Asio's internals == Even if the official docs declare the asio's sockets as non-thread-safe, actually ''there are'' synchronization mechanisms in asio's reactors (epoll and kqueue) which allow the sockets to ''almost work'' in a multi-threaded environment except when destructive operations like close() are used. In these cases, the subtle race described in #8538 appears since the mutex protecting the access to the descriptor_data node ''has to be'' released before ""freeing it"" because the mutex itself is a member of the (same) node. That mutex makes me suspect that ''maybe'' an attempt has been made to solve the synchronization problem at the reactor level but it failed since the socket's lifetime is bigger than the descriptor_data node which has to die when the descriptor is closed. Since the reactors has no access to the upper level socket services (such thing will break the isolation of the abstraction layers), the only solution seems to use a top-level synchronization mechanism. == What is my purpose to improve Asio == I purpose a simple patch (the attached file) that adds a lock contended only among the async and the destructive operations at the top-level classes (the *_socket_service classes). I think this solution is a good compromise because all the code it adds is under an #ifdef: who wants to work easily with asio's sockets has simply to specify it at compile-time; the others could still pay the ""zero"" cost in single-threaded applications. Even if I'd prefer the define to work in the opposite way, I'm purposing this change because has a minor impact, conserves the old behavior unless specified and so, I hope it has a greater chance to be accepted. == Just a final remark == I'd just like to say that, even if it probably doesn't emerge from my comments, I'm an Asio's fan: overall, it is really a great boost-style library and I use it intensively. That's the reason why I'm spending some much energies trying to improve it. " Vladislav Valtchev Boost 1.55.0 10022 json_parser_write inconditionally converts CP1252 to escaped unicode property_tree Boost 1.55.0 To Be Determined Feature Requests Sebastian Redl new 2014-05-08T12:29:46Z 2014-05-08T12:40:16Z "See function 'create_escapes' in property_tree/detail/json_parser_write.hpp. I supply a property_tree containing UTF-8 encoded values, encoded in a custom way from data in different code pages. I want JSON with real UTF-8 encoding, which the JSON standard just allows (as far as I googled). So here the encoding of 'special' characters to ""\uXXXX"" should be turned off. All values the Ch has are directly translated to a unicode number, but when Ch=char this only works correct when the char data is in code page 1252. Currently the option to encode the characters nor the used code page are parameters here. I needed to locally adapt the code like in http://stackoverflow.com/questions/10260688/boostproperty-treejson-parser-and-two-byte-wide-characters" anonymous Boost 1.55.0 10027 Allow template parameters with types rather than hardcode typename in BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE (and friends) fusion Boost 1.55.0 To Be Determined Feature Requests Joel de Guzman new 2014-05-08T23:40:27Z 2014-05-08T23:40:27Z "Right now, the macro `BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE` creates {{{ template struct MyStruct { ... }; }}} from {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (A)(B), MyStruct, (A, foo) (B, bar) ) }}} But I want to put the class `template class Vector` into a Boost Fusion Struct. So the struct should allow template parameters that are not typenames. I would like to be able to write the following: {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (int DIM)(typename B), MyStruct, (Vector, foo) (B, bar) ) // the above becomes // template // struct MyStruct { ... }; MyStruct<3, double> struct; }}} This does not currently work. The following is a working (but cumbersome) workaround (using C++11): {{{ BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE( (DIM)(B), MyStructImpl, (Vector, foo) (B, bar) ) template using MyStruct = MyStructImpl>; MyStruct<3, double> struct; }}} Maybe for backwards compatibility my proposed version of `BOOST_FUSION_DEFINE_TPL_STRUCT_INLINE` where template parameters are declared as `(int DIM)(typename B)` should be named `BOOST_FUSION_DEFINE_FLEXIBLE_TPL_STRUCT_INLINE`." Jonas Lippuner Boost 1.55.0 10078 Incomplete API with respect to file related dates (cration, modification, access) filesystem Boost 1.55.0 To Be Determined Feature Requests Beman Dawes assigned 2014-05-29T09:38:36Z 2014-05-29T12:27:29Z "The following features are missing: - read file's creation date - read file's last access date - read file's creation date with a precision higher than seconds - read file's last access date with a precision higher than seconds - read file's last access date with a precision higher than seconds - allow to detect capabilities of the underlying filesystem (e.g. support for creation and last access date that are not supported by all systems, or finding out date precision supported by the current filesystem) Possible implementation notes: - How to get high precision file date on Linux http://stackoverflow.com/questions/13382695/how-to-get-last-modification-time-of-a-file-with-epoch-time-format-precision-mi - How to get high precision file date on Windows http://msdn.microsoft.com/en-us/library/aa364946.aspx Example of current use of this feature in existing applications: ls --full-time " David Lastovicka Boost 1.55.0 10162 ASIO's spawn should accept a stack allocator parameter asio Boost 1.55.0 To Be Determined Feature Requests chris_kohlhoff new 2014-06-30T17:46:23Z 2017-07-07T09:46:42Z "It is possible to pass coroutine attributes to ""spawn"", but not stack allocators. Stack allocators are for the moment the only way to have valgrind-aware stacks. Without it, it is nearly impossible to use valgrind as soon as you have a coroutine. So it is quite critical." vdavid@… Boost 1.55.0 10175 Integrating build asio as a library into the boost build system asio Boost 1.55.0 To Be Determined Feature Requests chris_kohlhoff new 2014-07-03T00:08:11Z 2014-07-03T00:08:11Z "It would be nice if the boost build system had an option ""--with-asio"" to build asio as a shared library. Yes, it's possible to build it manually, but it would be better to be able to build it like the rest of the boost libraries. In fact, there's at least one scenario where proper behavior isn't acheived unless it's built as a shared library. See #10174." Wade Berrier Boost 1.55.0 10199 When requested mpi threading level cannot be provided, some sort of error should be reported mpi Boost 1.55.0 To Be Determined Feature Requests Matthias Troyer new 2014-07-15T18:17:53Z 2014-07-15T18:17:53Z "When mpi::environment requests a threading level with one of the constructors: {{{ explicit environment(threading::level, bool = true); environment(int &, char **&, threading::level, bool = true); }}} there is no guarantee that the requested threading level is actually available. Boost::mpi receives the actual threading level provided, but ignores it. Instead, I suggest that an exception should be thrown when the provided level of threading support is less than requested. This would, for example, catch the common scenario where the MPI library was only compiled for single-threaded programs." ClaytonGDavis@… Boost 1.55.0 10214 robust interprocess mutex enhancments proposal interprocess Boost 1.55.0 To Be Determined Feature Requests Ion Gaztañaga new 2014-07-18T07:37:36Z 2014-07-18T07:37:36Z "As we discus with '''Ion Gaztanaga''', I post here my proposal for future enhancements of '''robust interprocess mutex'''. there is code posted on : codereview.stackexchange.com with question : questions/57083/portable-c-boostiterprocessmutex-an-another-try I'll follow also '''Niall Douglas''' considerations about use timestamp. Ladislav." lsopko@… Boost 1.55.0 10241 Please relax template constraints of boost::math::binomial_coefficient math Boost 1.55.0 To Be Determined Feature Requests John Maddock new 2014-07-24T15:46:22Z 2014-07-24T15:46:22Z "boost::math::binomial_coefficient may up to now only be used with floating point types. See also ticket #3100. This constraint has two problems: It yields in inaccurate calculations, i. e. {{{ static_cast(boost::math::binomial_coefficient(60, 30)); }}} is 118264581564861408 but should be 118264581564861424. (long long unsigned and double are both 8 byte on my machine.) And it does not make sense for very large or arbitrary-precision integer types: boost::math::binomial_coefficient would work great if you let it do so. At the moment it is not possible just to release integer types as template argument, you have to add an extra implementation, i. e. this one with unsigned k and n as input: {{{ Inttype result = 1; k = std::min(k, n-k); for (unsigned i = 1; i < k+1; ++i) { result *= Inttype(n-k+i); result /= Inttype(i); } }}}" der-storch-85@… Boost 1.55.0 10277 reference_wrapper & implicit conversion to parent types bind Boost 1.55.0 To Be Determined Feature Requests Peter Dimov new 2014-07-30T03:02:00Z 2014-08-02T14:58:51Z "I propose a change to reference_wrapper which enables implicit conversion to references and reference_wrappers of base types. One motivation for this is an unconventional use of reference_wrapper: Many common library functions in code have a non-trivial set of arguments, some of which being non-const references. When reading code that uses these functions, it is often difficult to tell what side-effects a library function has from call to call. Having a coding policy that mutable references must be reference_wrappers and having calling code use ref() enables readers of the callsites to clearly identify which arguments have the possibility of having side-effects. However, this is currently not possible without creating a custom implementation of reference_wrapper. I have attached a proposed modification to the boost 1.55.0 implementation, as well as a simple file testing the extended capability." Christopher Boost 1.55.0 10316 Thread: add subscription operator if the value provide it. thread Boost 1.55.0 To Be Determined Feature Requests viboes assigned 2014-08-06T08:51:17Z 2014-09-29T08:19:58Z "I would like to be able to do {{{ typedef boost::synchronized_value< boost::container::flat_map > ValueIndex; ValueIndex index; index[0] = 1; }}} and would expect that last line to be equivalent to {{{ auto locked_index = index.synchronize(); (*locked_index)[0] = 1; }}} I'm not totally sure it's possible to do but it would help." mjklaim@… Boost 1.55.0 10548 Spirit.Lex does not support scoped enum spirit Boost 1.55.0 To Be Determined Feature Requests Hartmut Kaiser new 2014-09-27T01:55:54Z 2014-09-27T02:20:38Z "Currently the class boost::spirit::lex::lexer store the variable next_token_id as a std::size_t, but the scoped enumeration types (c++11) are not implicitly convertible to integral types. This generetas a lot of errors, I have not a deep knowledge of Spirit.Lex source code, but probably it is necessary to change the code not only in the lexer class, but also in other points. Sorry, but I am not able to patch the code. I attach a very simple example which shows this issue." mattia.penati@… Boost 1.55.0 11039 filesystem_error exception uses wrong encoding for what() filesystem Boost 1.55.0 To Be Determined Feature Requests Beman Dawes new 2015-02-16T16:20:19Z 2015-02-16T16:20:19Z "If one tries to access locked file on Windows with RU_ru locale, he'll get an exception with ""отказано в доступе"" (access denied) returned by its what() method. It's written in 1251 encoding, and it's very inconvenient to work with. I think, that there should be at least wwhat() method to get wstring of exception in Unicode." polkovnikov.ph@… Boost 1.55.0 8755 Boost.-Signals VS2013 compilation error signals Boost 1.55.0 Boost 1.56.0 Patches Douglas Gregor new 2013-07-01T23:24:18Z 2014-01-20T17:41:07Z The `BOOST_WORKAROUND` macros at `boost/signals/detail/named_slot_map.hpp:130` and `libs/signals/src/named_slot_map.cpp:27 `needs to be increased to `<= 1800` in order to encompass the Visual Studio 2013 Preview compiler. Lars Viklund Boost 1.55.0 9428 Lib program_options build fail for mingw Building Boost Boost 1.55.0 To Be Determined Patches new 2013-11-24T08:28:49Z 2014-01-17T17:02:24Z "Library program_options (boost 1.55, same applies to earlier boost versions) does not build for mingw (4.6.2). Don't know if MinGW is fully supported by boost, but some libraries do seem to have adaptation for it. Solution seems straight-forward. File ...\libs\program_options\src\parsers.cpp: #if !defined(_WIN32) || defined(__COMO_VERSION__) extern char** environ; #else // SMAL patch for MinGW #if defined(_WIN32) && defined(__MINGW32__) extern char** environ; #endif (SMAL is a soon-to-be released open-source sw)" Jan Rosendahl Boost 1.55.0 9505 Replace plain throw with BOOST_THROW_EXCEPTION tokenizer Boost 1.55.0 To Be Determined Patches jsiek new 2013-12-17T16:11:10Z 2013-12-17T16:11:10Z "Hello, could you please have a look at the pull request here: https://github.com/boostorg/tokenizer/pull/1 Thanks, Gregor" Gregor Jasny Boost 1.55.0 9510 std::swap should be pulled in from in C++11 swap Boost 1.55.0 To Be Determined Patches joseph.gauterin new 2013-12-19T17:06:03Z 2013-12-19T17:06:03Z included and removed in swap.hpp as in c++11 std::swap is present in sambitbolt@… Boost 1.55.0 9674 qt5: support build Boost 1.55.0 To Be Determined Patches Vladimir Prus new 2014-02-17T08:27:47Z 2014-02-17T08:27:47Z Support `` for both qt4 and qt5 by moving the feature declaration to a separate module. frank.richter@… Boost 1.55.0 9825 mutable_heap wan't to construct Compare in assert in increase and decrease function heap Boost 1.55.0 To Be Determined Patches timblechmann new 2014-04-01T12:01:42Z 2014-04-01T12:01:42Z if Compare class don't have default Constructor and code use increase or decrease function then code don't compile. Piotr Smulewicz Boost 1.55.0 9939 "Patch to add ""no exceptions"" support to dynamic_bitset" dynamic_bitset Boost 1.55.0 Boost 1.56.0 Patches acharles assigned 2014-04-22T22:09:13Z 2014-08-21T14:47:23Z "This patch adds support for compiling with exceptions disabled by using BOOST_TRY/BOOST_CATCH etc. " Boleslaw Ciesielski Boost 1.55.0 10037 process_jam_log can't open output file when using library_test_all.sh Regression Testing USE GITHUB Boost 1.55.0 To Be Determined Patches René Rivera new 2014-05-10T17:01:03Z 2014-05-10T17:01:03Z "When I run tools/regression/src/library_test_all.sh on Boost 1.55, it fails to generate proper reports for many libraries. process_jam_log outputs messages like this: {{{ *****Warning - can't open output file: c:/Arbete\boost\boost_1_55_0\../../bin.v2/libs/atomic/test/native_api.test/qcc-arm_4.4.2_0x/debug/link-static/target-os-qnxnto/threading-multi\test_log.xml }}} The ""../../"" shouldn't be there as it escapes BOOST_ROOT. The problem seems to be that paths in bjam.log are relative to sub-directories of BOOST_ROOT/libs. The function parse_skipped_msg_aux() appears to handle the case where paths are relative to immediate sub-directories of BOOST_ROOT, such as BOOST_ROOT/status. The attached patch extends it to handle arbitrarily deep sub-directories. " Niklas Angare Boost 1.55.0 10063 Option should exist to include ublas entirely from headers without linking to serialization uBLAS Boost 1.55.0 Boost 1.56.0 Patches Gunter new 2014-05-21T05:38:31Z 2014-05-21T05:38:31Z "If you include certain ublas files which you wish to include as headers only without linking to prebuilt libs, you get link errors wanting to link to prebuild serialization library. This problem occurred for example when I included the following in my application: {{{ #include #include #include #include #include #include #include #include #include #include }}} The attached patch introduces an option BOOST_UBLAS_DISABLE_SERIALIZATION which (if defined using a #define) excludes the serialization code. The serialization code is unwanted on my platform for ublas objects, as the platform is obscure and difficult to build the serialization library for it. " Andrew Medlin Boost 1.55.0 10122 Recent Python versions trigger compiler error on AIX when compiling modules/regex.c: conflicting types for 'fgetpos64' build Boost 1.55.0 To Be Determined Patches Vladimir Prus new 2014-06-13T13:08:43Z 2014-06-13T13:08:43Z "Since bugs.python.org/issue11184, recent Python releases (like Python-2.7.6) now have proper large-file support for AIX, defining _LARGE_FILES in , exposed to the user via . Now, bootstrapping boost.build for AIX using such a Python release causes the compiler errors shown in attached files when compiling modules/regex.c. The problem with modules/regex.c is: * `modules/regex.c` first includes `""../mem.h""` * `mem.h` includes `` includes `` Due to nothing relevant being defined yet, `` defines `_LARGE_FILE_API` * `stdlib.h` includes `` * `sys/types.h` does {`typedef long fpos_t;`}, because `_LARGE_FILES` is not defined If `_LARGE_FILES` were defined before, `sys/types.h` would have done {`typedef long long fpos_t;`} here. * `sys/types.h` does {`typedef long long fpos64_t;`} due to `_LARGE_FILE_API` being defined * `modules/regex.c` includes `""../native.h""` includes `""function.h""` includes `""frames.h""` includes `""lists.h""` includes `` includes [``, ``] * `pyconfig.h` defines `_LARGE_FILES` * `stdio.h` does not redefine the `fpos_t` things * `stdio.h` does {`#define fgetpos fgetpos64`} due to `_LARGE_FILES` being defined now * `stdio.h` declares {`extern int fgetpos(FILE*,fpos_t);`}, but remember `fgetpos` is defined to `fgetpos64` * `stdio.h` declares {`extern int fgetpos64(FILE*,fpos64_t);`} due to `_LARGE_FILE_API` being defined This problem is the same for the other functions the compilers yell about. Also, the same errors occur with current git master. For the fix: It is important to have all the ABI specific precompiler macros being defined before including any system header. Actually, the first thing `""jam.h""` does is to include ``. But with `modules/regex.c` first including `""../mem.h""` including ``, this rule is not followed. So the fix here is: {{{ --- a/src/engine/mem.h +++ b/src/engine/mem.h @@ -8,6 +8,8 @@ #ifndef BJAM_MEM_H #define BJAM_MEM_H +#include ""jam.h"" + #ifdef OPT_BOEHM_GC /* Use Boehm GC memory allocator. */ }}} While the fix for this very problem is quite simple, it doesn't look like if `` being included first everywhere else in build.git/src/engine is on purpose actually... Thank you!" Michael Haubenwallner Boost 1.55.0 10513 Use operator | and |= for set addition if | and |= are called ICL Boost 1.55.0 To Be Determined Patches Joachim Faulhaber new 2014-09-17T23:33:25Z 2014-09-17T23:33:25Z "As mentioned in the document (http://www.boost.org/doc/libs/1_56_0/libs/icl/doc/html/boost_icl/function_reference/addition.html), a set union semantics is often attached operators |= and |. This is the case, for example, when using boost::dynamic_bitset, which does not provide operators += and + for set union semantics. However, the original implementation of operators |= and | still uses += and + for the underlying set container. This makes operators |= and | less useful. Furthermore, we can't use boost::dynamic_bitset for icl objects currently. I think this is an unnecessary limitation. To make the code more consistent with the statement above, a proper fix would be changing += and + into |= and | when users call the |= and | operators. The patch is on: https://github.com/boostorg/icl/pull/4" clan@… Boost 1.55.0 11335 units: [patch] Improve precision of mmHg conversion to Pascal units Boost 1.55.0 To Be Determined Patches Matthias Schabel new 2015-05-22T20:10:49Z 2015-05-22T20:10:49Z "See attached patch. The conversion factor used by the existing code only used three decimal places. However, the standardised conversion factor is 9 decimal places, and is also used in GNU units. Changing to use the full 133.322387415 significantly improves accuracy. I can't put a link in the report since it makes the ticket get rejected as spam, but see the first paragraph of the ""Millimeter of mercury"" wikepedia page, and GNU units for reference. Defect is in the latest boost back to at least 1.55. Please consider applying the attached patch. Thanks, Roger" Roger Leigh Boost 1.55.0 9530 Building Boost with minGW Building Boost Boost 1.55.0 To Be Determined Support Requests new 2013-12-29T05:47:06Z 2013-12-31T01:33:15Z "Hey, I use CodeBlocks(minGW) and I'm having problems with building boost. ""C:\Program Files (x86)\CodeBlocks\MinGW\bin"" is in the Path variable and I was able to build b2 and bjam with ""bootstrap.bat gcc"" but after ""b2 toolset=gcc --build-type=complete"" I get some errors. output: {{{ link.jam: No such file or directory Building the Boost C++ Libraries. Performing configuration checks - 32-bit : yes - arm : no - mips1 : no - power : no - sparc : no - x86 : yes - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add ""using mpi ;"" to your user-config.jam - zlib : no - iconv (libc) : no - iconv (separate) : no - icu : no - icu (lib64) : no - g++ -shared-* supported : yes - message-compiler : no - compiler-supports-ssse3 : yes - compiler-supports-avx2 : yes - gcc visibility : yes - long double support : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add ""using mpi ;"" to user-config.jam. note: to suppress this message, pass ""--without-mpi"" to bjam. note: otherwise, you can safely ignore this message. warning: No python installation configured and autoconfiguration note: failed. See http://www.boost.org/libs/python/doc/building.html note: for configuration instructions or pass --without-python to note: suppress this message and silently skip all Boost.Python targets - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) - zlib : no - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) - zlib : no (cached) C:/libs/boost_1_55_0/tools/build/v2/build\virtual-target.jam:1099: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target: libboost_exception-mgw47-mt-1_55.a error: previous virtual target { common%common.copy-libboost_exception-mgw47-mt-1_55.a.STATIC_LIB { gcc%gcc.archive-libboost_exception-mgw47-mt-1_55.a.STATIC_LIB { gcc%gcc.compile.c++-clone_current_exception_non_intrusive.o.OBJ { clone_current_exception_non_intrusive.cpp.CPP } } } } error: created from ./stage-proper error: another virtual target { common%common.copy-libboost_exception-mgw47-mt-1_55.a.STATIC_LIB { gcc%gcc.archive-libboost_exception-mgw47-mt-1_55.a.STATIC_LIB { gcc%gcc.compile.c++-clone_current_exception_non_intrusive.o.OBJ { clone_current_exception_non_intrusive.cpp.CPP } } } } error: created from ./stage-proper error: added properties: -shared-libgcc -shared-libstdc++ error: removed properties: none C:/libs/boost_1_55_0/tools/build/v2/build\virtual-target.jam:484: in actualize-no-scanner from module object(file-target)@5267 C:/libs/boost_1_55_0/tools/build/v2/build\virtual-target.jam:134: in class@virtual-target.actualize from module object(file-target)@5267 C:/libs/boost_1_55_0/tools/build/v2\build-system.jam:720: in load from module build-system C:\libs\boost_1_55_0\tools\build\v2/kernel\modules.jam:289: in import from module modules C:\libs\boost_1_55_0\tools\build\v2/kernel/bootstrap.jam:139: in boost-build from module C:\libs\boost_1_55_0\boost-build.jam:17: in module scope from module }}} " anonymous Boost 1.55.0 10074 Linker Error in Debug mode VS2010, chrono lib Building Boost Boost 1.55.0 To Be Determined Support Requests new 2014-05-27T10:41:25Z 2014-05-27T10:41:25Z "When the current release of boost 1.55 for MSVC 32 bit is installed, my project includes chrono and compiles fine in release mode. In debug mode, haveing set the same directories for the libraries, the linker stopps with the following error: 1>LINK : fatal error LNK1104: Datei ""libboost_chrono-vc100-mt-sgd-1_52.lib"" kann nicht geöffnet werden. (sorry for the german, but it means that the file cannot be opened.) And acutally it is not there, because it should be version 1_55 and not 1_52. I have not installed a previous version before. I'm linking static. best regards, Thomas" thomas.schreiber.privat@… Boost 1.55.0 10101 Failed to build Boost.Build engine Building Boost Boost 1.55.0 To Be Determined Support Requests new 2014-06-07T03:33:42Z 2014-07-06T09:58:02Z "I tried to run bootstrap.bat to build boost, but got the following information: Failed to bootstrap the build engine Please consult bootstrap.log for furter diagnostics." wu_tj@… Boost 1.55.0 10568 It would be better to improve naming mechanism of the latest log file log Boost 1.55.0 To Be Determined Support Requests Andrey Semashev new 2014-09-30T12:27:21Z 2014-10-01T06:23:08Z "Currently if some format is used for log file name, latest log file name is constructed with that format. For example, if we use a format which includes date and sequential number in the log file name, such log files are being generated: file_2014-09-26_00.log file_2014-09-26_01.log file_2014-09-26_02.log (this is the latest log file) It would be better to have such log files: file_2014-09-26_00.log file_2014-09-26_01.log file.log (this is the latest log file always) In this case, it would be easier to determine latest log file." anih@… Boost 1.55.0 10656 build static boost libraries with -fPIC Building Boost Boost 1.55.0 To Be Determined Support Requests new 2014-10-14T20:27:00Z 2014-10-24T16:50:14Z "I am trying to build static boost libraries with -fPIC compliler option. I am using RHEL6 with GCCv4.4. I am using the following command ""./bootstrap.sh CXXFLAGS=-fPIC"". After this is use ""./b2"" Is this the proper procedure? Thanks, Raymond." raymond_desantos@… Boost 1.55.0 12903 division by 0 polygon Boost 1.55.0 To Be Determined Support Requests Lucanus Simonson new 2017-03-14T03:23:08Z 2017-03-15T03:03:23Z "Input for Voronoi: points.push_back(point(1, 1)); points.push_back(point(3, 1)); points.push_back(point(1, 3)); points.push_back(point(3, 3)); points.push_back(point(-1, 1)); points.push_back(point(1, -1)); points.push_back(point(5, 1)); points.push_back(point(3, -1)); points.push_back(point(-1, 3)); points.push_back(point(1, 5)); points.push_back(point(5, 3)); points.push_back(point(3, 5)); VD vd; construct_voronoi(points.begin(), points.end(), &vd); I get a division by 0. Is this normal? What are the restrictions on the points?" anonymous Boost 1.55.0 13589 boost_1_55_0 bootstrap mingw failed Building Boost Boost 1.55.0 To Be Determined Support Requests James E. King, III new 2018-06-11T01:47:06Z 2018-09-21T09:02:10Z "command that i used {{{ cd C:\deps\boost_1_55_0\ bootstrap.bat mingw }}} Error output {{{ Building Boost.Build engine 'gcc' is not recognized as an internal or external command, operable program or batch file. Failed to build Boost.Build engine. Please consult bootstrap.log for furter diagnostics. }}} bootstrap.log {{{ ### ### Using 'mingw' toolset. ### C:\deps\boost_1_55_0\tools\build\v2\engine>if exist bootstrap rd /S /Q bootstrap C:\deps\boost_1_55_0\tools\build\v2\engine>md bootstrap C:\deps\boost_1_55_0\tools\build\v2\engine>gcc -DNT -o bootstrap\jam0.exe command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c }}} " Rie Boost 1.56.0 1974 ambiguous call to ref in vector_of_vector.hpp when using bind.hpp uBLAS Boost 1.56.0 To Be Determined Bugs Gunter reopened 2008-05-30T14:13:00Z 2018-02-17T15:32:15Z When bind.hpp and numeric/ublas/vector_of_vector.hpp are both included, instantiating and using a generalized_vector_of_vector causes an ambiguous call to the overloaded function 'boost::numeric::ublas::ref'. See attached code for a simple example and attached patch for the simple proposed fix. Will Moss Boost 1.56.0 6824 warning: delete called on boost::error_info... that has virtual functions but non-virtual destructor exception Boost 1.56.0 To Be Determined Bugs Emil Dotchevski reopened 2012-04-23T21:19:52Z 2015-02-27T22:09:52Z "When compiling boost 1.49.0 thread.hpp with clang with -Wall, I receive warnings: /Users/richardpowell/boost/include/boost/checked_delete.hpp:34:5: warning: delete called on 'boost::error_info' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor] delete x; =-=-= More details: $ cat test2.cpp #include $ clang++ --version Apple clang version 4.0 (tags/Apple/clang-421.0.11) (based on LLVM 3.1svn) Target: x86_64-apple-darwin11.3.0 Thread model: posix $ clang++ -g -I. -Wall -I ~/boost/include -c test2.cpp In file included from test2.cpp:1: In file included from /Users/richardpowell/boost/include/boost/thread.hpp:13: In file included from /Users/richardpowell/boost/include/boost/thread/thread.hpp:17: In file included from /Users/richardpowell/boost/include/boost/thread/pthread/thread_data.hpp:10: In file included from /Users/richardpowell/boost/include/boost/shared_ptr.hpp:17: In file included from /Users/richardpowell/boost/include/boost/smart_ptr/shared_ptr.hpp:30: /Users/richardpowell/boost/include/boost/checked_delete.hpp:34:5: warning: delete called on 'boost::error_info' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor] delete x; ^ /Users/richardpowell/boost/include/boost/smart_ptr/detail/shared_count.hpp:95:13: note: in instantiation of function template specialization 'boost::checked_delete >' requested here boost::checked_delete( p ); ^ /Users/richardpowell/boost/include/boost/smart_ptr/shared_ptr.hpp:183:44: note: in instantiation of function template specialization 'boost::detail::shared_count::shared_count >' requested here explicit shared_ptr( Y * p ): px( p ), pn( p ) // Y must be complete ^ /Users/richardpowell/boost/include/boost/exception/info.hpp:170:42: note: in instantiation of function template specialization 'boost::shared_ptr >::shared_ptr >' requested here shared_ptr p( new error_info_tag_t(v) ); ^ /Users/richardpowell/boost/include/boost/exception/info.hpp:191:16: note: in instantiation of function template specialization 'boost::exception_detail::set_info' requested here return exception_detail::set_info(x,v); ^ /Users/richardpowell/boost/include/boost/exception/detail/exception_ptr.hpp:181:21: note: in instantiation of function template specialization 'boost::operator<<' requested here (*this) << original_exception_type(&typeid(e)); ^ /Users/richardpowell/boost/include/boost/exception/detail/exception_ptr.hpp:160:13: note: in instantiation of function template specialization 'boost::unknown_exception::add_original_type' requested here add_original_type(e); ^ 1 warning generated. " Richard Powell Boost 1.56.0 9348 b2 cannot find Jamroot when run at the root of a mounted partition. Building Boost Boost 1.56.0 To Be Determined Bugs new 2013-11-06T16:10:31Z 2014-08-28T15:30:04Z "When boost is extracted to the root of a partion (in this case, one mounted as a folder in windows) B2 fails to build boost when attempting to stage with the following error: ''notice: could not find main target stage notice: assuming it is a name of file to create. error: Project target requested but not yet assigned for module' See the following mailing list thread for details [http://lists.boost.org/boost-build/2013/11/27147.php] " darthpjb@… Boost 1.56.0 9824 boost::filesystem::is_empty() doesn't work with symlinks on Windows filesystem Boost 1.56.0 To Be Determined Bugs Beman Dawes assigned 2014-04-01T09:17:13Z 2015-09-10T13:03:43Z "See the original information on this problem in this Stackoverflow question: hxxp://stackoverflow.com/questions/22668337/boostfilesystemis-empty-returns-false-for-symlinks The person who reported that problem/asked the question on Stackoverflow also set up a github project that demonstrates the problem: hxxps://github.com/monsdar/BoostSymLinkError Basically, the `filesystem::is_empty()` function doesn't follow a symlink, so it will return false even if the target of the symlink has a length greater than 0. The V2 filesystem library worked for this situation. The difference is that V2 used the `stat()` function in the VC++ library, while the V3 filesystem library uses the Win32 `GetFileAttributesExW()` API. The latter does not follow symlinks and returns a file size of 0 regardless of the size of the symlink target. Attached is a diff for libs/filesystem/src/operations.cpp which uses the `stat()` technique very similar to what was used in filesystem V2. A few differences: - `_wstat()` is used instead of `stat()` to accommodate UNICODE filenames - a bit test using `_S_IFDIR` is used to determine if the path is a directory instead of `S_ISDIR()` because the VC++ library doesn't include a `S_ISDIR()` or `_S_ISDIR()` macro. This patch is only lightly tested (MSVC++ 12.0, 32-bit, on Win7 x64, filenames with ASCII characters only). I'm not sure what the motivations for changing to the `GetFileAttributesExW()` API in filesystem V3 were, so I'm not sure if there's a fundamental flaw in using `_wstat()` that would prevent using it in V3. " michael.burr@… Boost 1.56.0 10129 boost::arg and boost::is_placeholder not documented bind Boost 1.56.0 To Be Determined Bugs Peter Dimov new 2014-06-18T07:14:22Z 2014-06-18T07:14:22Z "Boost.Bind default placeholders (anonymous namespace)`::_1`, (anonymous namespace)`::_2` etc. can be not used either by directly creating objects of type `boost::arg<1>`, `boost::arg<2>` etc. or by resorting to user-defined placeholders properly labelled as such via `boost::_is_placeholder`. This comes handy when `BOOST_BIND_NO_PLACEHOLDERS` is set and in general when the `_1` syntax is not welcome for whatever reason. The problem is that both `boost::arg` and `boost::is_placeholder` are not documented, i.e. they officially do not exist. This, in particular, renders Boost.Bind effectively unusable when `BOOST_BIND_NO_PLACEHOLDERS` is in effect. This is a request that these constructs be documented. More info on the subject on http://lists.boost.org/Archives/boost/2014/03/212333.php" Joaquín M López Muñoz Boost 1.56.0 10222 root map not correctly computed by strong_components graph Boost 1.56.0 To Be Determined Bugs Jeremiah Willcock new 2014-07-21T19:52:23Z 2014-07-23T11:16:22Z " I think in boost::graph strong_components does not compute the root map as claimed in the documentation, i.e., that it maps each vertex to the root of the corresponding scc. For a counter-example consider the following graph (attached as a MWE): a <-> b <-> c Suppose the algorithm starts with node a. The protocol of the algorithm is as follows, the first column being the discovery time, the second being the content of the root map, and * indicating uninitialized values: 1) a -> (0, a), b -> (*, *), c -> (*, *) // discovered a 2) a -> (0, a), b -> (1, b), c -> (*, *) // discovered b 3) a -> (0, a), b -> (1, b), c -> (2, c) // discovered c 4) a -> (0, a), b -> (1, b), c -> (1, b) // finished c 5) a -> (0, a), b -> (0, b), c -> (1, b) // finished b 6) a -> (0, a), b -> (0, a), c -> (1, b) // finished a The value of the root map for c is 1, correct would be 0. The output of the example is as follows:[[BR]] The example graph:[[BR]] a --> b [[BR]] b --> a c [[BR]] c --> b [[BR]] [[BR]] Vertex a is in component 0 and has root 0[[BR]] Vertex b is in component 0 and has root 0[[BR]] Vertex c is in component 0 and has root 1[[BR]] " Alex Boost 1.56.0 10275 darwin.jam fails to detect installed SDK on MacOS 10.9 with XCode 5.1 installed Building Boost Boost 1.56.0 To Be Determined Bugs new 2014-07-30T00:07:25Z 2016-05-23T14:23:22Z "On MacOS 10.9 / XCode 5.1, the SDKs are installed to a new location instead of ""/Developer/"": /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/ as a result the boost's darwin.jam fails to locate the available SDKs. The following command line will output errors: ./b2 macosx-version-min=10.7 errors: tools/build/src/build/feature.jam:493: in validate-value-string from module feature error: ""10.7"" is not a known value of feature error: legal values: ... The workaround is create a soft link to new SDK location and everything works fine: cd / sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/ Developer FYI: The XCode5 installs iOS sdks under: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/ so darwin.jam should search both /Developer/ and these new SDK locations for installed SDKs. " randy du Boost 1.56.0 10276 For clang toolset Boost 1.56 needs to always specify -Wno-c99-extensions build Boost 1.56.0 To Be Determined Bugs Vladimir Prus new 2014-07-30T00:57:38Z 2014-07-30T00:57:38Z "See mailing list for discussion, but essentially 1.56 Preprocessor turns on variadic macro support for clang which spews many megabytes of warnings on clang versions 3.2, 3.3, and 3.4. This is unacceptable for a 1.56 release, it would be embarrassing. Adding the above warning suppression makes the problem go away. Niall" Niall Douglas Boost 1.56.0 10304 1.56 rc1 ASIO doesn't compile with mingw32 asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-08-02T18:03:04Z 2014-08-02T18:03:04Z "This is from the most recent mingw, the one with GCC 4.8. Yes I agree mingw is broken :( {{{ In file included from ./boost/asio/detail/win_object_handle_service.hpp:180:0, from ./boost/asio/windows/object_handle_service.hpp:25, from ./boost/asio/windows/basic_object_handle.hpp:27, from ./boost/asio.hpp:108, from ./boost/afio/afio.hpp:24, from libs\afio\test\test_functions.hpp:32: ./boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'void boost::asio::detail::win_object_handle_service::move_construct(boost::asio::detail::win_object_handle_service::implementation_type&, boost::asio::detail::win_object_handle_service::implementation_type&)': ./boost/asio/detail/impl/win_object_handle_service.ipp:106:5: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); ^ ./boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'void boost::asio::detail::win_object_handle_service::move_assign(boost::asio::detail::win_object_handle_service::implementation_type&, boost::asio::detail::win_object_handle_service&, boost::asio::detail::win_object_handle_service::implementation_type&)': ./boost/asio/detail/impl/win_object_handle_service.ipp:158:5: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); ^ ./boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'void boost::asio::detail::win_object_handle_service::destroy(boost::asio::detail::win_object_handle_service::implementation_type&)': ./boost/asio/detail/impl/win_object_handle_service.ipp:200:7: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); ^ ./boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'boost::system::error_code boost::asio::detail::win_object_handle_service::close(boost::asio::detail::win_object_handle_service::implementation_type&, boost::system::error_code&)': ./boost/asio/detail/impl/win_object_handle_service.ipp:251:7: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); ^ ./boost/asio/detail/impl/win_object_handle_service.ipp: In member function 'boost::system::error_code boost::asio::detail::win_object_handle_service::cancel(boost::asio::detail::win_object_handle_service::implementation_type&, boost::system::error_code&)': ./boost/asio/detail/impl/win_object_handle_service.ipp:302:7: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); ^ ./boost/asio/detail/impl/win_object_handle_service.ipp: In static member function 'static void boost::asio::detail::win_object_handle_service::wait_callback(PVOID, BOOLEAN)': ./boost/asio/detail/impl/win_object_handle_service.ipp:402:5: error: '::UnregisterWaitEx' has not been declared ::UnregisterWaitEx(impl->wait_handle_, NULL); ^ }}} " Niall Douglas Boost 1.56.0 10314 Update 59fd3b6 on May 17 to cray.jam breaks cray build Building Boost Boost 1.56.0 To Be Determined Bugs new 2014-08-05T16:49:11Z 2015-03-31T14:49:05Z " Download the 1.56 boost beta. do: ./bootstrap.sh ./b2 --with-serialization --with-system --with-filesystem --with-date_time --with-program_options --with-test -d2 toolset=cray stage Get lots of errors like ... CC -c -O2 -march=bdver1 -mfpmath=sse -mfma4 -mavx -funroll-all-loops -mprefer-avx128 -fprefetch-loop-arrays --param prefetch-latency=300 -minline-all-stringops -ffast-math -fno-finite-math-only -dynamic -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I""."" -o ""bin.v2/libs/date_time/build/cray/release/threading-multi/gregorian/greg_month.o"" ""libs/date_time/src/gregorian/greg_month.cpp"" CC-2115 crayc++: ERROR in command line ""-march=bdver1"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""-mfpmath=sse"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""-mfma4"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""-mavx"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""-mprefer-avx128"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""--param"" is an invalid command-line option. CC-2115 crayc++: ERROR in command line ""-minline-all-stringops"" is an invalid command-line option. ...failed cray.compile.c++ bin.v2/libs/date_time/build/cray/release/threading-multi/gregorian/greg_month.o... cray.compile.c++ bin.v2/libs/date_time/build/cray/release/threading-multi/gregorian/greg_weekday.o " Richard Dale Boost 1.56.0 10322 documentation for erase method of multisets is wrong intrusive Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2014-08-08T00:21:52Z 2015-03-01T04:31:47Z "This is a documentation bug. The page [[http://www.boost.org/doc/libs/1_56_0/doc/html/boost/intrusive/multiset.html#idp34712280-bb|here]] states that `erase(const_reference value)` ""erases the element pointed to by `pos`"". First of all, this is a typo because `pos` is not an argument. One would assume that the element to be erased is the one referenced by `value`. It turns out that this is wrong: this overload erases not just one element (the given one), but in fact, **all** elements of the multiset with key equivalent to the given one (according to the container's internal comparator method). This is immediately apparent by looking at the definition of `erase(const_reference value)` inside `bstree.hpp`. Most likely this affects the documentation for the other multiset variants as well (avl, etc)." Matei David Boost 1.56.0 10325 Win32: including file_lock.hpp results in compilation error interprocess Boost 1.56.0 Boost 1.57.0 Bugs Ion Gaztañaga new 2014-08-08T07:02:19Z 2014-09-07T21:00:29Z "Today I switched from Boost 1.55.0 to 1.56.0 and now get the following error just for including file_lock.hpp: '''error: invalid conversion from 'boost::interprocess::winapi::farproc_t {aka int (__attribute__((__stdcall__)) *)()}' to 'void*' [-fpermissive]''' {{{ In file included from d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\errors.hpp:37:0, from d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\exceptions.hpp:20, from d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\sync\file_lock.hpp:20, from src\init.cpp:38: d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\detail\win32_api.hpp: In instantiation of 'static void* boost::interprocess::winapi::function_address_holder::get(unsigned int) [with int Dummy = 0]': d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\detail\win32_api.hpp:1614:20: required from here d:\mingw\mingw32\i686-w64-mingw32\include\boost\interprocess\detail\win32_api.hpp:1541:31: error: invalid conversion from 'boost::interprocess::winapi::farproc_t {aka int (__attribute__((__stdcall__)) *)()}' to 'void*' [-fpermissive] return FunctionAddresses[id]; ^ }}} Used compiler: gcc version 4.8.1 (rev5, Built by MinGW-W64 project) OS: Win8.1 x64 IDE: Qt Creator 3.1.2 (Qt 5.3.1) I verified that the project compiles fine, if the file_lock stuff is commented out. I'm going to watch this thread, so I don't supply my email address." anonymous Boost 1.56.0 10329 Examples declare unused variable 'sefl' asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-08-08T13:42:41Z 2014-08-08T13:42:41Z "C++11 example: http://www.boost.org/doc/libs/1_56_0/doc/html/boost_asio/example/cpp11/http/server/connection.cpp declares a variable 'self' as shared_from_this() but never uses it. Inside the lambda, shared_from_this() is used directly." Richard Boost 1.56.0 10330 Boost 1.56 bootstrap.bat failed for intel-win32 Building Boost Boost 1.56.0 To Be Determined Bugs new 2014-08-09T08:24:14Z 2014-08-28T08:07:19Z "New boost.1.56.0 bootstrap.bat fails on Windows with old toolset and with new intel-win32 toolset I used # unzip boost_1_56_0.zip # ./bootstrap.bat intel-win32 Building Boost.Build engine Failed to build Boost.Build engine. Please consult bootstrap.log for furter diagnostics. You can try to obtain a prebuilt binary from . . . Also, you can file an issue at http://svn.boost.org Please attach bootstrap.log in that case. From attached bootstrap.log: . . . boost_1_56_0\tools\build\src\engine>.\bootstrap\jam0 -f build.jam --toolset=intel-win32 ""--toolset-root= "" -win32 clean Invalid option: -w usage: .\bootstrap\jam0 [ options ] targets... For boost v1.55.0 I used tar.gz archive and ./bootstrap.bat --with-toolset=intel-win but for 1.56.0 it doesn't work. According to recommendation for Ticket #10136 I use *.zip on Windows, but bootstrap.bat doesn't work for intel-win32 " Elmira Semenova Boost 1.56.0 10332 »indexed« range adaptor's source-breaking change not mentioned in release notes range Boost 1.56.0 To Be Determined Bugs Neil Groves assigned 2014-08-09T20:45:26Z 2014-09-01T11:54:45Z "The »indexed« range adaptor has changed in v1.56.0 in source-breaking ways. I get the change and that it was necessary for range-based for loops, but this means that you now have to `#if BOOST_VERSION < …` around it. See [[http://boost.codepad.org/VE1QSmSz|this example]] (distilled from actual code). Why the ticket? Because the change hasn't been mentioned at all in the [[http://www.boost.org/users/history/version_1_56_0.html|release notes]]." Moritz Bunkus Boost 1.56.0 10336 compilation error in iterator_range and unordered_map range Boost 1.56.0 To Be Determined Bugs Neil Groves assigned 2014-08-10T08:07:32Z 2015-01-31T14:52:10Z "I get a compilation error with vc10, iterator_range and a (const) unordered_map (the beta candidate 2 was still ok I think): {{{#!cpp #include ""stdafx.h"" #include #include int _tmain(int /*argc*/, _TCHAR* /*argv*/[]) { typedef boost::unordered_map Container; typedef Container::const_iterator ContainerIterator; typedef boost::iterator_range ContainerIteratorRange; const Container cnt; ContainerIteratorRange rng(cnt.cbegin(), cnt.cend()); return 0; } }}} This gives C2248: 'boost::unordered::iterator_detail::c_iterator::iterator' cannot access private typedef declared in class etc. Eric: Niebler: Well, this is unfortunate. It's broken also on msvc-12 and clang trunk, but strangely not on gcc. I thought it might be due to this change in Boost.Range: github.com/boostorg/range/commit/264017e2a9bdbfcc24517ce05f8ef96df0a8c45b But reverting that doesn't have any effect. It works on Boost 1.55, so this is definitely a regression. Can you please file a bug? Neil, can you take a look? A possible fix: github.com/boostorg/range/pull/19 " gast128@… Boost 1.56.0 10350 asio build broken for /dev/poll in 1.56 asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-08-13T13:53:43Z 2014-08-13T13:53:43Z Commit c06aa74f08a46dda05493f61d2b85cb7818e6f96 (see ticket #9528) breaks build on SunOS (possibly any /dev/poll system), because it removes get_descriptors, but leaves calls to it in include/boost/asio/detail/impl/dev_poll_reactor.ipp. filip@… Boost 1.56.0 10354 inconsistent declaration of do_length in boost/detail/utf8_codecvt_facet.hpp due to missing BOOST_WORKAROUND filesystem Boost 1.56.0 To Be Determined Bugs Beman Dawes reopened 2014-08-13T21:16:29Z 2014-09-05T13:57:36Z "First, the output when trying to build boost in AIX using xlC xlC_r -c -DBOOST_ALL_NO_LIB=1 -DNDEBUG -qcpluscmt -O3 -qstrict -q64 -qfuncsect -qeh -qrtti -I""."" -o ""bin.v2/libs/filesystem/build/vacpp-11/release/... utf8_codecvt_facet.o"" ""libs/filesystem/src/utf8_codecvt_facet.cpp"" ""./boost/detail/utf8_codecvt_facet.ipp"", line 173.5: 1540-0400 (S) ""boost::archive::detail::utf8_codecvt_facet::do_length(const std::mbstate_t &, const char *, const char *, std::size_t) const"" has a conflicting declaration. ""./boost/detail/utf8_codecvt_facet.hpp"", line 174.17: 1540-0424 (I) ""do_length"" is declared on line 174 of ""./boost/detail/utf8_codecvt_facet.hpp"". The problem is that there is a mismatch in the declaration of the function between * boost/detail/utf8_codecvt_facet.hpp * boost/detail/utf8_codecvt_facet.ipp {{{ #!cpp // boost/detail/utf8_codecvt_facet.hpp virtual int do_length( const std::mbstate_t &, const char * from, const char * from_end, std::size_t max_limit ) const }}} {{{ #!cpp // boost/detail/utf8_codecvt_facet.ipp int utf8_codecvt_facet::do_length( BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, const char * from, const char * from_end, std::size_t max_limit ) const #if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) throw() #endif }}} The solution is to add BOOST_CODECVT_DO_LENGTH_CONST and the BOOST_WORKAROUND macro in boost/detail/utf8_codecvt_facet.hpp Also, unless BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, BOOST_WORKAROUND will always evaluate to 1 for any version of xlC, adding a throw() declaration. Maybe it should be replaced with {{{ #!cpp #if BOOST_WORKAROUND(__IBMCPP__, <=600) }}} Last, I've filed this in filesystem component following what was done for https://svn.boost.org/trac/boost/ticket/7660 since there is no specific entry for boost/detail in the component list. It fits as well in serialization, program_options, etc. " Juan Alday Boost 1.56.0 10356 Massive Warnings Wall whenu using signal2 call operator - VS2013U3 signals2 Boost 1.56.0 To Be Determined Bugs Frank Mori Hess new 2014-08-14T14:39:29Z 2016-04-28T18:02:13Z " {{{ #include void foo() { boost::signals2::signal signal; signal(); } }}} On VS2013 Update3 I get this output on compilation: {{{ 1>------ Build started: Project: test_distributed_value, Configuration: Debug x64 ------ 1> main.cpp 1>C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(348): warning C4996: 'std::_Uninitialized_copy0': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' 1> C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0' 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(192) : see reference to function template instantiation '_FwdIt std::uninitialized_copy,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(_InIt,_InIt,_FwdIt)' being compiled 1> with 1> [ 1> _FwdIt=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> , _InIt=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_rai(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,const boost::integral_constant &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_rai(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,const boost::integral_constant &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,std::random_access_iterator_tag)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *,std::random_access_iterator_tag)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::copy_impl,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_>*>(I,I,boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> , I=boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> * 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(282) : while compiling class template member function 'boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::move_to_new_buffer(unsigned __int64,const boost::false_type &)' 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/auto_buffer.hpp(304) : see reference to function template instantiation 'boost::variant,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_> *boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>::move_to_new_buffer(unsigned __int64,const boost::false_type &)' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/slot_call_iterator.hpp(40) : see reference to class template instantiation 'boost::signals2::detail::auto_buffer,boost::signals2::detail::default_grow_policy,std::allocator<_Ty>>' being compiled 1> with 1> [ 1> _Ty=boost::signals2::detail::void_shared_ptr_variant 1> ] 1> C:\Users\jlamotte\Documents\sdk\boost\boost\include\boost-1_56\boost/signals2/detail/slot_call_iterator.hpp(44) : see reference to class template instantiation 'boost::signals2::detail::slot_call_iterator_cache' being compiled ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== Build Summary ------------- 00:01.496 - Success - Debug x64 - test_distributed_value.vcxproj Total build time: 00:01.496 ========== Build: 1 succeeded or up-to-date, 0 failed, 2 skipped, Completed at 14/08/2014 16:08:05 ========== }}} " mjklaim@… Boost 1.56.0 10360 Since 1.56, any_range use static cast of reference instead of implicit conversion range Boost 1.56.0 To Be Determined Bugs Neil Groves assigned 2014-08-15T13:54:28Z 2014-12-19T12:47:57Z "Since 1.56, when dereferencing, any_range tries to use static cast of reference instead of implicit conversion like in 1.55. Here is an example that works with 1.55 but fails to compile with 1.56. {{{ #include #include #include struct A {}; int main() { std::vector > v; boost::any_range, boost::forward_traversal_tag, std::shared_ptr, std::ptrdiff_t> r(v); } }}} " vdavid@… Boost 1.56.0 10361 Dead link for Boost Build in getting started guide Getting Started Guide Boost 1.56.0 To Be Determined Bugs Dave Abrahams new 2014-08-16T02:05:20Z 2014-08-16T02:05:20Z "http://www.boost.org/doc/libs/1_56_0/more/getting_started/unix-variants.html#prepare-to-use-a-boost-library-binary Links to http://www.boost.org/doc/libs/1_56_0/tools/build/index.html Which does not exist" david stone Boost 1.56.0 10362 Invalid directory in Boost Build getting started Getting Started Guide Boost 1.56.0 To Be Determined Bugs Dave Abrahams new 2014-08-16T02:08:47Z 2014-08-16T02:08:47Z "http://www.boost.org/doc/libs/1_56_0/more/getting_started/unix-variants.html#install-boost-build Says to go to the path tools/build/v2/ But tools/build/ does not contain a directory /v2/" david stone Boost 1.56.0 10364 Release 1.56 broke random::uniform_real_distribution random Boost 1.56.0 To Be Determined Bugs No-Maintainer new 2014-08-16T17:59:53Z 2016-02-17T14:40:18Z "Multiprecision random uniform_real_distribution stopped working correctly with 1.56. It worked fine with 1.55, and the attached code is one of the examples that Boost documentation shows for this class. I have this problem manifesting on Mac OS X 10.9.4 under all the compilers I got: native clang from Xcode-5.1.1, clang++-mp-3.4 (macports clang v3.4.2), g++ v4.8.3. Attaching the complete source file that demonstrates the problem (35 lines of code), and the compiler output (748 lines of text)." mouse008@… Boost 1.56.0 10367 kqueue on OSX broke support for read-only file descriptors asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-08-17T23:57:16Z 2014-08-22T13:58:27Z "Prior 1.56, we were successfully using `boost::asio::posix::stream_descriptor` with libpcap (file descriptor retrieved via `pcap_get_selectable_fd`). My understanding, that change https_github.com_boostorg_asio_commit_660e9fe30204e0ada0d1fd40c48015810d2647dc (replace _ with /) required all file-descriptors to be both readable and writeable (e.g., register_descriptor always registers EVFILT_READ and EVFILT_WRITE events). In the case of libpcap, the file descriptor only works in one direction (read) and attempt to register EVFILT_WRITE event results in `assign: Invalid argument` error." alexander.afanasyev@… Boost 1.56.0 10368 Boost.Ref: undocumented breaking change: void cref(const T&&) = delete bind Boost 1.56.0 To Be Determined Bugs Peter Dimov new 2014-08-18T08:39:29Z 2014-08-30T17:44:11Z "Boost 1.56.0 adds 'template void cref(T const&&) = delete' which is an undocumented addition and breaks code like: std::find_if(..., ..., boost::cref( some_predicate(...) ) );" Geurt Vos Boost 1.56.0 10370 Iterating over ptr_map type is largely broken in 1.56 ptr_container Boost 1.56.0 To Be Determined Bugs Thorsten Ottosen new 2014-08-18T12:51:47Z 2014-08-19T20:42:13Z "Iteration over map fails on most types, except for value. Not sure which version this failure began, but definitely present in 1.56 The following simple snippet will fail: typedef boost::ptr_map test_map_type; test_map_type test_map; BOOST_FOREACH(test_map_type::const_reference r, test_vector ) { } Will also fail with reference, iterator, const_iterator. boost::tie also fails. Can iterate by value, but this does not help with my application since the mapped type will be an abstract type (so no clone allocator for mapped type)" scottbgoldblatt@… Boost 1.56.0 10376 VS2013: new compiler warnings since v1.56.0 asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-08-19T07:02:38Z 2014-10-13T20:07:48Z "There are two new level 3 compiler warnings in asio, when compiling with Visual Studio 2013 x64. 1>D:\source\VS2013\libsrc\boost_1_56_0\boost/asio/detail/impl/socket_ops.ipp(1968): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data 1>D:\source\VS2013\libsrc\boost_1_56_0\boost/asio/detail/impl/socket_ops.ipp(2172): warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data " lex21@… Boost 1.56.0 10382 1.56.0 Graph adjacency_list has compile errors on g++ 4.6.4 graph Boost 1.56.0 To Be Determined Bugs Jeremiah Willcock new 2014-08-20T05:11:53Z 2014-10-18T13:11:21Z "The following code will generate compile errors on g++ 4.6.4 but works on g++ 4.7 and 4.8. The problem looks to be in detail/adjacency_list.hpp:319-21 where the = default; specification is unable to generate a valid implementation so the move operators become implicitly deleted. {{{ #include ""boost/graph/adjacency_list.hpp"" int main(int argc, char** argv) { using boost::adjacency_list; using boost::vecS; using boost::directedS; typedef adjacency_list Graph; std::vector< std::pair > testVec; auto graph = Graph( begin(testVec), end(testVec), testVec.size()); return 0; } }}} " Conrad Mercer Boost 1.56.0 10397 compilation error with mfc-iteratior-support: ambiguous symbol range Boost 1.56.0 To Be Determined Bugs Neil Groves assigned 2014-08-25T08:19:11Z 2014-08-30T14:33:50Z "Hi, moving parts of range_const_iterator to the namespace range_detail in file boost/range/const_iterator.hpp leads to ambiguity in /range/detail/mfc.hpp line 747: (MSVC 11 on Windows Server 2008 R2/x64) 25>..\src\libs\boost\boost\boost/range/mfc.hpp(747): error C2872: 'range_const_iterator' : ambiguous symbol 25> could be '..\src\libs\boost\boost\boost/range/const_iterator.hpp(67) : boost::range_const_iterator' 25> or '..\src\libs\boost\boost\boost/range/const_iterator.hpp(40) : boost::range_detail::range_const_iterator' 25> ..\src\libs\boost\boost\boost/range/detail/microsoft.hpp(135) : see reference to class template instantiation 'boost::range_detail_microsoft::customization::meta' being compiled 25> with 25> [ 25> Tag=CEbsValueArray::mfc_range_base_type, 25> X=CTypedPtrArray 25> ] 25> ..\src\libs\boost\boost\boost/range/begin.hpp(111) : see reference to class template instantiation 'boost::range_detail_microsoft::const_iterator_of' being compiled 25> with 25> [ 25> T=CTypedPtrArray 25> ] ... The problem can be resolved by changing the name of boost::range_detail::range_const_iterator to boost::range_detail::range_const_iterator_helper I expect other begin/end adapters to run into the same problem. Tobias " Tobias Loew Boost 1.56.0 10407 MSC Warning disable: Use pop instead push endian Boost 1.56.0 Boost 1.57.0 Bugs Beman Dawes new 2014-08-27T06:27:03Z 2014-10-16T06:44:51Z "In file endian/detail/disable_warnings_pop.hpp: {{{ #pragma warning(push) }}} should be changed to {{{ #pragma warning(pop) }}} This ""pop"" is related with ""push"" done in ""disable_warnings.hpp""" anonymous Boost 1.56.0 10422 Counting Iterator return-type causes lifetime issues iterator Boost 1.56.0 To Be Determined Bugs jeffrey.hellrung new 2014-08-29T17:18:40Z 2014-09-30T15:33:22Z "The counting_iterator upon integers has a dereference member function which is a reference to an integral value held in the iterator. Since an iterator may be destroyed, the reference can be invalid. An example where this occurs was provided by a user of Boost.Range. The application used counting_range with reversed and transformed adaptors. The result was garbage since the reversed dereference member function does *boost::prior(this->base()); Hence it returns a reference to a temporary iterator that results from the ""prior"" function." Neil Groves Boost 1.56.0 10432 32-bit offset_ptr crashes on 64-bit platform interprocess Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2014-08-31T13:13:20Z 2014-09-18T03:12:12Z "There seem to be problems with handling offset_ptrs with 32-bit offsets on a 64-bit platform. The attached code sample tries to create a file mapping with managed_external_buffer using 32-bit offset_ptrs. The program crashes sometimes when trying to initialize the mapping (see the attached valgrind log for one of such crashes). The offset_ptr is declared as follows: {{{ typedef boost::interprocess::offset_ptr< void, std::ptrdiff_t, std::int32_t > void_pointer; }}} My theory is that there are incorrect offset conversions somewhere in Boost.Interprocess which sometimes result in incorrect pointers and a subsequent crash. This may not happen on every run of the program because the mapping address of the file region can change between runs. One of the problems with 32-bit offset_ptrs is that its implementation performs implicit casts of the offset to std::size_t (see calls to offset_ptr_to_raw_pointer and offset_ptr_to_offset), which makes incorrect result if the offset type is unsigned and smaller than std::size_t. I didn't find any restrictions on the offset type in the docs or the code, and by default the offset type is unsigned. IMO, the code should be corrected to perform sign extension of the offset or restrict the offset type to be signed integers. This should be documented as well. However, even if my program uses a signed offset type, it still crashes, so there have to be other issues elsewhere. I tested this on Kubuntu 14.04 x86_64. " Andrey Semashev Boost 1.56.0 10440 boyer_moore.hpp fails on Linux w/ gcc-4.7.2, OK with Mac clang algorithm Boost 1.56.0 To Be Determined Bugs Marshall Clow new 2014-09-02T03:51:37Z 2014-09-02T14:07:46Z "I have a simple find-string-in-file program that uses boyer_moore matching. On Mac, it compiles and works OK. (Not sure if Mac is really using gcc; that's the command name, but ""gcc -v"" says ""Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)"" At any rate, the same code, with a freshly-compiled Boost-1.56.0 on Debian 7, gcc-4.7.2, fails to compile: {{{ g++ -g -I. -I/usr/local/include -c -o find.o find.cc In file included from /usr/local/include/boost/range/iterator.hpp:24:0, from /usr/local/include/boost/range/begin.hpp:24, from /usr/local/include/boost/algorithm/searching/boyer_moore.hpp:18, from find.cc:5: /usr/local/include/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if_c, boost::range_mutable_iterator >’: /usr/local/include/boost/range/iterator.hpp:69:17: required from ‘struct boost::range_iterator’ /usr/local/include/boost/algorithm/searching/boyer_moore.hpp:243:5: required by substitution of ‘template typename boost::range_iterator::type boost::algorithm::boyer_moore_search(CorpusRange&, const PatternRange&) [with PatternRange = const unsigned char*; CorpusRange = const unsigned char*]’ find.cc:26:106: required from here /usr/local/include/boost/mpl/eval_if.hpp:60:31: error: no type named ‘type’ in ‘boost::mpl::eval_if_c, boost::range_mutable_iterator >::f_ {aka struct boost::range_mutable_iterator}’ make: *** [find.o] Error 1 }}} (On Mac also, I compiled a fresh copy of Boost-1.56.0 using the native compiler.) " boost@… Boost 1.56.0 10444 MPI archive failure mpi Boost 1.56.0 To Be Determined Bugs Matthias Troyer new 2014-09-02T16:33:09Z 2014-09-02T16:33:09Z "Loading a serialized archive from MPI results in crashes/asserts. Compiler: MSVC 11.0 update 4 Platform: Windows, x64 Other notes: BOOST_MPI_HOMOGENEOUS is enabled When I load a boost::mpi archive (that was either sent over MPI or even packed within the same process), I end up with a crash (assert in debug versions). I think I've traced the problem to packed_oarchive.hpp. When saving, the compiler chooses the templated ""save_override"" function for archive::version_type. When loading, it chooses the specialized ""load_override"" for archive::version_type. I think this is because of missing ""const"" on the argument ""t"" for the versions of save_override specialized for archive::class_id_type & archive::version_type (since archive::version_type is actually const, the compiler can't use the non-const overload & defaults to the templated function) The root issue is that it saves 4 bytes for archive::version_type, but loads only 1. All future operations on the archive are thus mis-aligned (bad sizes are loaded for containers, etc.). I always use the homogeneous optimization, so I'm not sure if it is limited to this case. The same application code worked fine in 1.54.0. The new save_override/load_override functions for archive::version_type & archive::class_id_type were introduced somewhere between 1.54.0 & 1.56.0. (I did have to manually apply a fix to 1.54.0 for the zero-length loads in binary_buffer_imprimitive.hpp, but that issue has been resolved)." brian.ventre@… Boost 1.56.0 10449 directed_graph copy constructor graph Boost 1.56.0 To Be Determined Bugs Jeremiah Willcock new 2014-09-03T13:48:12Z 2016-02-24T10:05:39Z "The copy constructor of directed_graph is broken. This is virtually identical to ticket #4197: Steps to reproduce: #include typedef boost::directed_graph<> Graph; Graph g; Graph h( g ); " philip.pfaffe@… Boost 1.56.0 10450 Undefined behavior in boost::filesystem::detail::directory_iterator_construct filesystem Boost 1.56.0 To Be Determined Bugs Beman Dawes new 2014-09-03T14:16:11Z 2018-04-05T21:10:19Z "boost/libs/filesystem/src/operations.cpp:2178:28: runtime error: reference binding to null pointer of type 'struct error_code' The problem is this line: it.increment(*ec); ec is 0 when directory_iterator_construct is called from operations.hpp:793 {{{ explicit directory_iterator(const path& p) : m_imp(new detail::dir_itr_imp) { detail::directory_iterator_construct(*this, p, 0); } }}} {{{ [...undefined behavior sanitiser noise...] #3 0x00005555566e623c in boost::filesystem::detail::directory_iterator_construct (it=..., p=..., ec=ec@entry=0x0) at functional/boost/libs/filesystem/src/operations.cpp:2178 #4 0x00005555566b3cfe in directory_iterator (p=..., this=0x7fffffffd7e0) at functional/boost/boost/filesystem/operations.hpp:793 #5 recursive_directory_iterator (opt=boost::filesystem::none, dir_path=..., this=0x7fffffffd760) at functional/boost/boost/filesystem/operations.hpp:1037 [...my code...] }}}" egrindha@… Boost 1.56.0 10457 'boost::locale::date_time_duration' : assignment operator could not be generated locale Boost 1.56.0 To Be Determined Bugs Artyom Beilis new 2014-09-04T16:00:39Z 2014-09-04T16:00:39Z "boost/locale/date_time.hpp: warning C4512: 'boost::locale::date_time_duration' : assignment operator could not be generated This is generated with MSVC12 warning level 4. Compiling with treat warnings as error is problematic. The fix is simple, just add a deleted assignment operator: {{{ /// Get ending point /// date_time const &end() const { return e_; } #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1800)) // prevent warning C4512: assignment operator could not be generated BOOST_DELETED_FUNCTION(date_time_duration& operator=(date_time_duration const&)) #endif private: date_time const &s_; date_time const &e_; }}}" r.korthaus@… Boost 1.56.0 10458 boost::parameter::aux::default_: assignment operator could not be generated parameter Boost 1.56.0 To Be Determined Bugs Daniel Wallin new 2014-09-04T16:05:49Z 2014-09-04T16:05:49Z "boost/parameter/aux_/default.hpp: warning C4512: 'boost::parameter::aux::default_' : assignment operator could not be generated This is generated with MSVC12 warning level 4. Compiling with treat warnings as error is problematic." r.korthaus@… Boost 1.56.0 10462 throw exception inherits two std::exception exception Boost 1.56.0 To Be Determined Bugs Emil Dotchevski new 2014-09-04T18:53:33Z 2014-09-10T06:41:28Z " {{{ // example class my_exception: public std::exception { }; try { boost::throw_exception(my_exception()); } catch( my_exception & e) {... } }}} Inheritance of e {{{ -> ... clone_impl > -> -> my_exception -> -> -> std::exception ... -> std::exception }}}" gilles.guerre-chaley@… Boost 1.56.0 10490 "boost::geometry::difference produces a ""possible loss of data"" warning in MSVC" geometry Boost 1.56.0 To Be Determined Bugs Barend Gehrels new 2014-09-11T01:24:28Z 2014-09-11T01:24:28Z "Using the boost::geometry::difference function causes MSVC to emit the warning: {{{ c:\boost\include\boost-1_56\boost\geometry\algorithms\detail\sections\sectionalize.hpp(612): warning C4244: 'initializing' : conversion from 'double' to 'const coordinate_type', possible loss of data }}} (full compiler output is attached) This is reproducible using the sample from the [http://www.boost.org/doc/libs/1_56_0/libs/geometry/doc/html/geometry/reference/algorithms/difference.html docs]. Versions of boost prior to 1.56 do not exhibit the problem. This was reproduced using Visual Studio 2010 and 2013. " anonymous Boost 1.56.0 10505 Use gcc/clang built-in endianity macros (too) predef USE GITHUB Boost 1.56.0 To Be Determined Bugs René Rivera reopened 2014-09-15T10:11:45Z 2017-10-04T03:35:24Z "Endian detection in `boost/predef/other/endian.h` does consider the gcc/clang built-in `__BYTE_ORDER__` macros and consequently fails to detect endianity of some (usually mobile) platforms. E.g. on Android I get `_BYTE_ORDER` defined to `_LITTLE_ENDIAN`, but `_LITTLE_ENDIAN` is '''not''' defined, leading to all three conditions (`_BYTE_ORDER == _BIG_ENDIAN`, `_BYTE_ORDER == _LITTLE_ENDIAN` and `_BYTE_ORDER == _PDP_ENDIAN` being satisfied and yielding conflicting definitions. The `__BYTE_ORDER__` is provided by gcc and clang compilers themselves and therefore should always be there no matter how broken the rest of standard library is. What I am not sure is whether they should be used in preference to any other method or as a fallback (in which case definedness of the `_BIG_ENDIAN`, `_LITTLE_ENDIAN` etc. macros also has to be tested before trying to use them)" Jan Hudec Boost 1.56.0 10507 Tools: Wave missing wave Boost 1.56.0 To Be Determined Bugs Hartmut Kaiser new 2014-09-15T16:48:17Z 2015-07-29T18:20:38Z "The documentation states that the Wave tool is distributed with boost but as of version 1.56 there is no tools/wave directory (referenced in Jamfile.v2) so that running the build tool in the tools/ directory fails: (from the tools directory) {{{ b2 --user-config=/var/tmp/portage/dev-libs/boost-1.56.0/work/boost_1_56_0-abi_x86_64.amd64/user-config.jam gentoorelease -j4 -q -d+2 -sICU_PATH=/usr --without-mpi --without-context --without-coroutine pch=off --boost-build=/usr/share/boost-build --prefix=""/var/tmp/portage/dev-libs/boost-1.56.0/image/usr"" --layout=system threading=multi link=shared Performing configuration checks - has_icu builds : yes (cached) error: Unable to find file or target named error: 'wave/build//wave' error: referred to from project at error: '../tools' error: could not resolve project reference 'wave/build' }}} " tiagogehring@… Boost 1.56.0 10514 Cannot copy const sub_range to non-const range Boost 1.56.0 To Be Determined Bugs Neil Groves new 2014-09-18T04:25:48Z 2015-02-02T20:28:45Z "The following code does not compile with Visual Studio 2013 using Boost 1.56.0: {{{ #!c++ typedef std::vector vec_t; typedef boost::sub_range range_t; vec_t vec(10); range_t r(vec.begin(), vec.end()); const range_t & r_ref = r; range_t v = r_ref; }}} The following error results: {{{ boost/range/iterator_range_core.hpp(69) : error C2440: 'static_cast' : cannot convert from 'std::_Vector_const_iterator>>' to 'std::_Vector_iterator>>' No constructor could take the source type, or constructor overload resolution was ambiguous c:\build\ng-10.5-x64\API\inc\boost/range/sub_range.hpp(184) : see reference to function template instantiation 'IteratorT boost::iterator_range_detail::iterator_range_impl::adl_begin>(const boost::range_detail::sub_range_base &)' being compiled with [ IteratorT=std::_Vector_iterator>> , ForwardRange=vec_t ] c:\build\ng-10.5-x64\API\inc\boost/range/sub_range.hpp(187) : see reference to function template instantiation 'IteratorT boost::iterator_range_detail::iterator_range_impl::adl_begin>(const boost::range_detail::sub_range_base &)' being compiled with [ IteratorT=std::_Vector_iterator>> , ForwardRange=vec_t ] c:\build\ng-10.5-x64\API\inc\boost/range/sub_range.hpp(184) : while compiling class template member function 'boost::sub_range::sub_range(const boost::sub_range &)' sub_range_test.cpp(11) : see reference to function template instantiation 'boost::sub_range::sub_range(const boost::sub_range &)' being compiled sub_range_test.cpp(9) : see reference to class template instantiation 'boost::sub_range' being compiled boost/range/iterator_range_core.hpp(75) : error C2440: 'static_cast' : cannot convert from 'std::_Vector_const_iterator>>' to 'std::_Vector_iterator>>' No constructor could take the source type, or constructor overload resolution was ambiguous c:\build\ng-10.5-x64\API\inc\boost/range/sub_range.hpp(186) : see reference to function template instantiation 'IteratorT boost::iterator_range_detail::iterator_range_impl::adl_end>(const boost::range_detail::sub_range_base &)' being compiled with [ IteratorT=std::_Vector_iterator>> , ForwardRange=vec_t ] c:\build\ng-10.5-x64\API\inc\boost/range/sub_range.hpp(187) : see reference to function template instantiation 'IteratorT boost::iterator_range_detail::iterator_range_impl::adl_end>(const boost::range_detail::sub_range_base &)' being compiled with [ IteratorT=std::_Vector_iterator>> , ForwardRange=vec_t ] }}} So it looks as though having a `const` `sub_range` implies that it uses `const_iterator`s, which doesn't seem appropriate. Code of this nature compiled using Boost 1.55.0. " Braden McDaniel Boost 1.56.0 10515 Range: doc: incorrect return type range Boost 1.56.0 Boost 1.58.0 Bugs Neil Groves assigned 2014-09-18T07:51:57Z 2015-02-02T01:22:17Z "This page: http://www.boost.org/doc/libs/1_56_0/libs/range/doc/html/range/reference/adaptors/reference/filtered.html reads: {{{ Range Return Type: boost::filtered_range }}} But the code shows that it has two template parameters. {{{ namespace boost { namespace range_detail { template< class P, class R > struct filtered_range : }}} Maybe other similar pages lack parameters, I don't know, but they all seem to have a single one documented." akim demaille Boost 1.56.0 10534 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-09-24T09:34:38Z 2018-05-09T08:27:22Z "With msvc-12.0 toolset (VS2013 Update 3): boost_1_56_0\boost/asio/detail/impl/socket_ops.ipp(1363): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings which leads to build failure if 'treat warnings as errors' option is on." Valentin Shtronda Boost 1.56.0 10540 missing std::nullptr_t support in boost/type_traits/is_pointer.hpp ptr_container Boost 1.56.0 To Be Determined Bugs Thorsten Ottosen new 2014-09-25T13:50:55Z 2014-09-25T16:21:15Z "...leads to a failures when inserting a nullptr into a boost::ptr_vector: {{{ $ cat test.cc #include ""boost/ptr_container/nullable.hpp"" #include ""boost/ptr_container/ptr_vector.hpp"" void f(boost::ptr_vector> & v) { v.insert(v.begin(), nullptr); } $ g++ -std=c++11 -c test.cc In file included from .../boost_1_56_0/boost/ptr_container/nullable.hpp:21:0, from test.cc:1: .../boost_1_56_0/boost/mpl/eval_if.hpp: In instantiation of ‘struct boost::mpl::eval_if_c, boost::range_mutable_iterator >’: .../boost_1_56_0/boost/range/iterator.hpp:69:17: required from ‘struct boost::range_iterator’ .../boost_1_56_0/boost/range/begin.hpp:106:61: required by substitution of ‘template typename boost::range_iterator::type boost::range_adl_barrier::begin(const T&) [with T = std::nullptr_t]’ .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:421:43: required from ‘typename boost::disable_if >::type boost::ptr_sequence_adapter::insert(boost::ptr_sequence_adapter::iterator, const Range&) [with Range = std::nullptr_t; T = boost::nullable; VoidPtrSeq = std::vector >; CloneAllocator = boost::heap_clone_allocator; typename boost::disable_if >::type = void; boost::ptr_sequence_adapter::iterator = boost::void_ptr_iterator<__gnu_cxx::__normal_iterator > >, int>]’ test.cc:4:32: required from here .../boost_1_56_0/boost/mpl/eval_if.hpp:60:31: error: no type named ‘type’ in ‘boost::mpl::eval_if_c, boost::range_mutable_iterator >::f_ {aka struct boost::range_const_iterator}’ typedef typename f_::type type; ^ In file included from .../boost_1_56_0/boost/ptr_container/ptr_vector.hpp:20:0, from test.cc:2: .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp: In instantiation of ‘typename boost::disable_if >::type boost::ptr_sequence_adapter::insert(boost::ptr_sequence_adapter::iterator, const Range&) [with Range = std::nullptr_t; T = boost::nullable; VoidPtrSeq = std::vector >; CloneAllocator = boost::heap_clone_allocator; typename boost::disable_if >::type = void; boost::ptr_sequence_adapter::iterator = boost::void_ptr_iterator<__gnu_cxx::__normal_iterator > >, int>]’: test.cc:4:32: required from here .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:421:43: error: no matching function for call to ‘begin(std::nullptr_t&)’ insert( before, boost::begin(r), boost::end(r) ); ^ .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:421:43: note: candidates are: In file included from .../boost_1_56_0/boost/range/functions.hpp:18:0, from .../boost_1_56_0/boost/ptr_container/detail/reversible_ptr_container.hpp:29, from .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:20, from .../boost_1_56_0/boost/ptr_container/ptr_vector.hpp:20, from test.cc:2: .../boost_1_56_0/boost/range/begin.hpp:97:55: note: template typename boost::range_iterator::type boost::range_adl_barrier::begin(T&) inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( T& r ) ^ .../boost_1_56_0/boost/range/begin.hpp:97:55: note: template argument deduction/substitution failed: .../boost_1_56_0/boost/range/begin.hpp:106:61: note: template typename boost::range_iterator::type boost::range_adl_barrier::begin(const T&) inline BOOST_DEDUCED_TYPENAME range_iterator::type begin( const T& r ) ^ .../boost_1_56_0/boost/range/begin.hpp:106:61: note: substitution of deduced template arguments resulted in errors seen above In file included from .../boost_1_56_0/boost/ptr_container/ptr_vector.hpp:20:0, from test.cc:2: .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:421:58: error: no matching function for call to ‘end(std::nullptr_t&)’ insert( before, boost::begin(r), boost::end(r) ); ^ .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:421:58: note: candidates are: In file included from .../boost_1_56_0/boost/range/functions.hpp:19:0, from .../boost_1_56_0/boost/ptr_container/detail/reversible_ptr_container.hpp:29, from .../boost_1_56_0/boost/ptr_container/ptr_sequence_adapter.hpp:20, from .../boost_1_56_0/boost/ptr_container/ptr_vector.hpp:20, from test.cc:2: .../boost_1_56_0/boost/range/end.hpp:91:55: note: template typename boost::range_iterator::type boost::range_adl_barrier::end(T&) inline BOOST_DEDUCED_TYPENAME range_iterator::type end( T& r ) ^ .../boost_1_56_0/boost/range/end.hpp:91:55: note: template argument deduction/substitution failed: .../boost_1_56_0/boost/range/end.hpp:100:61: note: template typename boost::range_iterator::type boost::range_adl_barrier::end(const T&) inline BOOST_DEDUCED_TYPENAME range_iterator::type end( const T& r ) ^ .../boost_1_56_0/boost/range/end.hpp:100:61: note: template argument deduction/substitution failed: }}} What would fix this is: {{{ --- boost/type_traits/is_pointer.hpp 2014-07-09 20:04:22.000000000 +0200 +++ boost/type_traits/is_pointer.hpp 2014-09-25 15:37:45.895757102 +0200 @@ -72,6 +72,10 @@ BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl::value) +#if !defined( BOOST_NO_CXX11_NULLPTR ) +BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_pointer,::std::nullptr_t,true) +#endif + #if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false) BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false) }}}" Stephan Bergmann Boost 1.56.0 10543 circular_buffer::rotate() incorrectly assumes that circular_buffer::pointer is a simple pointer type circular_buffer Boost 1.56.0 To Be Determined Bugs Jan Gaspar new 2014-09-26T11:36:48Z 2015-12-11T13:28:07Z "Dear maintainer, I am trying to use a boost::circular_buffer inside a shared memory segment, along with Boost.Interprocess. This implies that the type of the stored pointer is an offset_ptr, and not just a T *. In circular_buffer/base.hpp, the rotate method uses a const_cast from the member of a const iterator, assuming that ""pointer"" is indeed a simple pointer type. This however fails when it is instead a structure, such as boost::interprocess::offset_ptr. The patch I am attaching below solves the issue for me, by allowing the right template specialization to kick in. I did not test it with different pointer types as I am a bit short on time, but by reading the code alone, it should work also with plain pointers." Matteo Settenvini Boost 1.56.0 10547 [boost/date_time/gregorian/gregorian.hpp] Purify detected UMRs date_time Boost 1.56.0 To Be Determined Bugs az_sw_dude new 2014-09-26T20:15:49Z 2014-09-26T20:15:49Z "Hello, We ran Purify on one of the boost tests: boost_1_56_0/libs/date_time/test/gregorian/testgreg_durations.cpp . The test succeded, but there were UMRs (Uninitialized memory reads)detected in short boost::date_time::wrapping_int2::add(short) [... /boost_1_56_0/boost/date_time/wrapping_int.hpp:124] and in boost::date_time::month_functor::get_offset(boost::gregorian::date const&) const [.../boost_1_56_0/boost/date_time/adjust_functors.hpp:91] The compiler was gcc version 4.1.0 for Linux " Yevgeny Kalinsky Boost 1.56.0 10559 1_56 tar file has directories with wrong permissions, will not install Building Boost Boost 1.56.0 To Be Determined Bugs new 2014-09-28T19:09:51Z 2014-09-28T19:09:51Z "Many of the untarred directories in the tar file have the incorrect following permissions: drwx------ where group and other permissions are absent, please fix with a recursive chmod to all found directories (find -type d -exec chmod -R a+rx {} \;) to have group and other permissions resulting in the following ls -l drwxr-xr-x Without that, boost will not install and has many permissions errors. Thanks." geoffwattles@… Boost 1.56.0 10560 [documentation] wrong path mentioned in getting started guide Getting Started Guide Boost 1.56.0 To Be Determined Bugs Dave Abrahams new 2014-09-29T14:04:09Z 2014-09-29T14:04:09Z "In http://www.boost.org/doc/libs/1_56_0/more/getting_started/unix-variants.html#install-boost-build , it says ""Go to the directory tools/build/v2/"" But, there exists no ""v2"" directory inside the ""build"" directory. Kindly fix that." Siddhant Saraf Boost 1.56.0 10561 Bugs in dual seekable mode iostreams Boost 1.56.0 To Be Determined Bugs Jonathan Turkanis new 2014-09-29T14:16:45Z 2014-10-06T13:16:25Z "Currently there are no tests for dual seekable streams. So the first thing to do is to add some tests. See dual_seekable_test.cpp attached. These tests uncover the following bugs: 1. The functions test_seekable_in_chars and test_seekable_in_chunks in test/detail/verification.hpp use seekp in several places where seekg should be used. This has no effect when there is a single head but does not work when the stream is dual seekable. A new verification function test_dual_seekable was added and tested. See attached verification.hpp. 2. indirect_streambuf::seek_impl does not work for dual seeking. The problem is that both heads are modified for both input and output operations. Since the modification is the same (just resetting the pointers) everything works when there is a single head. This is a duplicate of https://svn.boost.org/trac/boost/ticket/7681. Solved in the attached indirect_streambuf.hpp 3. The function shared_buffer() does not consider dual_seekable stream buffers as shared. Solved in the attached indirect_streambuf.hpp 4. The function init_put_area() does not consider the existing input position. This is a duplicate of https://svn.boost.org/trac/boost/ticket/8572. Solved in the attached indirect_streambuf.hpp With the attached versions of verification.hpp and indirect_streambuf.hpp all previously existing tests passed. I recommend adding the new tests in dual_seekable_test.cpp. " jlodos@… Boost 1.56.0 10567 is not inside asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-09-30T08:19:55Z 2014-09-30T08:19:55Z According to the document, include should implicitly include , but actually it is missing in asio.hpp and has to be included explicitly. I am not sure whether this is intended or not. If it is intended, then the document needs to be updated. rivercheng@… Boost 1.56.0 10571 type_index tests configuration issues for Oracle Studio c++ asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-10-01T22:07:51Z 2014-10-01T22:07:51Z "Problems: 1.type_index library tests failed to compile with error message ""../../../boost/type_index/stl_type_index.hpp"", line 165: Error: abi is not defined."" with studio 12.4 (c++) on Solaris 11.2. 2.nortti test flags are incorrect for studio c++. Solution for problem 1: in boost/type_index/stl_type_index.hpp 42:#ifdef __GNUC__ 43 # include // abi::__cxa_demangle 44 #endif replace line 42 with #if defined __GNUC__ || (defined(__SUNPRO_CC) && __SUNPRO_CC_COMPAT!=5) 154:#if defined(_MSC_VER) 155: std::string ret = data_->name(); 156: std::string::size_type pos_beg = ret.find(cvr_saver_name); 157: if (pos_beg == std::string::npos) { 158: return ret; 159: } replace line 154 with #if defined(_MSC_VER) || (defined(__SUNPRO_CC) && (__SUNPRO_CC_COMPAT==5)) in boost/type_index/detail/compile_time_type_info.hpp 120: #elif defined(__PRETTY_FUNCTION__) \ 121: || defined(__GNUC__) \ 122: || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \ 123: || (defined(__ICC) && (__ICC >= 600)) \ 124: || defined(__ghs__) \ 125: || defined(__DMC__) insert ""|| defined(__SUNPRO_CC) \"" into between line 121, 122 || defined(__GNUC__) \ || defined(__SUNPRO_CC) \ || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \ solution for problem 2: add -features=no%rtti for nortti test" angela.xie@… Boost 1.56.0 10572 Error: get_descriptors is not a member of boost::asio::detail::reactor_op_queue. asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-10-01T23:25:29Z 2014-10-01T23:25:29Z "Problem: asio tests(for example basic_datagram_socket test) failed with error message "".../boost/boost_1_56_0/boost/asio/detail/impl/dev_poll_reactor.ipp"", line 116: Error: get_descriptors is not a member of boost::asio::detail::reactor_op_queue."" with studio 12.4 c++ on sparc/solaris 11.2 and ../boost/asio/detail/impl/dev_poll_reactor.ipp:116:24: error: 'class boost::asio::detail::reactor_op_queue' has no member named 'get_descriptors' with g++4.8.2 on sparc/solaris 11.2. " anonymous Boost 1.56.0 10593 boost::locale::generator::generate throws unhelpful error if iconv doesn't support UTF-16 locale Boost 1.56.0 To Be Determined Bugs Artyom Beilis new 2014-10-04T01:53:09Z 2014-10-04T01:53:09Z This actually happens on some older libc's. You end up with an exception complaining about iconv not supporting ANSI_X3.4-1968, when in fact the issue is a lack of support for UTF-16, which should be either ignorable or reported more accurately. Gah, I'm too tired to explain the issue in more detail right now; poke me and I'll expand later if necessary. Rodger Combs Boost 1.56.0 10627 Regression in xmldoc/ex_month_add.xml date_time Boost 1.56.0 To Be Determined Bugs az_sw_dude new 2014-10-07T09:19:00Z 2014-10-07T09:19:00Z "xmldoc/ex_month_add.xml example is incomplete. {{{ error: 'add_month' was not declared in this scope add_month mf(1); ^ }}} I think that this regression due to accidental removal of {{{ typedef boost::date_time::month_functor add_month; }}} in this [29259] changeset" Nikita Kniazev Boost 1.56.0 10629 Interprocess Vector resize causes crash interprocess Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2014-10-07T11:21:32Z 2014-10-07T11:21:32Z "Our existing code that has worked through many versions of Boost has failed in Boost 1.56.0. I've reduced our code down to a specific example that replicates the issue in the following development environment: (1) Windows 7 64-bit (2) VS2010 and VS2013 (generating X64 code) The example code produces a tree-like structure. Each node contains an interprocess vector that contains child nodes. The depth of the tree is 3 (parent, child, grandchild). The parent (root) node contains '''D''' child nodes, each child node contains '''D''' grandchild nodes, and the children of the grandchild nodes are left empty. The example program crashes when using a dimension, '''D''', of 43, but is fine for 42 and less. The tree is constructed in a depth-first process so there will be some resizing of the vectors in the child and parent nodes after the grandchild nodes have been created and added to the structure. The crash generates the following error: ''Assertion failed: ptr != 0, file D:\boost64\include\boost-1_56\boost/interprocess/allocators/allocator.hpp, line 268'' The crash can be prevented by reserving the correct amount of space ahead of node insertion. Sample code is available: github.com/peter-durrant/sandbox/tree/master/boost_interprocess_vector_broken (CPP file attached)" peter.durrant@… Boost 1.56.0 10630 iostreams/test/code_converter_test does not compile with Xcode 6 iostreams Boost 1.56.0 To Be Determined Bugs Jonathan Turkanis new 2014-10-07T12:54:02Z 2014-10-27T14:17:19Z "Apparently the bundled std::codecvt template has changed in a way incompatible with code_converter_test. {{{ ./b2 toolset=darwin variant=release address-model=32 -a -q architecture=x86 -sNO_BZIP2=1 libs/iostreams/test//code_converter_test ... darwin.compile.c++ bin.v2/libs/iostreams/test/code_converter_test.test/darwin-4.2.1/release/address-model-32/architecture-x86/code_converter_test.o In file included from libs/iostreams/test/code_converter_test.cpp:17: In file included from ./boost/iostreams/code_converter.hpp:35: ./boost/iostreams/detail/codecvt_helper.hpp:217:25: error: implicit instantiation of undefined template 'std::__1::codecvt' struct codecvt_helper : std::codecvt { ^ }}} This same error occurs with debug and 64-bit builds. This is not a regression: the same failure occurs with Boost 1.55.0." nat@… Boost 1.56.0 10633 mingw project was migrated to mingw-w64 6 mos to a year ago Documentation Boost 1.56.0 To Be Determined Bugs Daniel James new 2014-10-07T18:36:38Z 2015-02-01T22:06:37Z "http://www.boost.org/users/history/version_1_56_0.html under compilers tested, windows you have listed mingw. mingw is no longer maintained and has been migrated to mingw-w64. you might be confusing mingw-w64 with mingw which are different projects. it gives folks the wrong idea as to which compiler to use. the current state of mingw-w64 is that a number of cross compilers (auto builds, mostly for linux and darwin) are generated by the build system. the personal donsheng daily builds seem stable: sf.net mingw-w64 prohject, toolchains targeting win32 and win64, personal builds, dongsheng daily MSYS can be used for a build environment but it must be configured. I have a configuration for that, but it needs to be submitted to the project yet when it gets completed. interestingly enough, this bug tracking system rejects my posting of the compiler URLs as spam and says I should have completed the captcha, but no captcha was given. I am using firefox on win7x64. at best, ""mingw"" might be a misnomer." jmichae3@… Boost 1.56.0 10659 svg_mapper output is offset for int-based point type geometry Boost 1.56.0 To Be Determined Bugs Barend Gehrels new 2014-10-15T15:45:23Z 2014-10-15T15:50:39Z "Based on the example from the [http://www.boost.org/doc/libs/1_56_0/libs/geometry/doc/html/geometry/reference/io/svg/svg_mapper.html documentation] I find the following oddity: Simply change the following line {{{ typedef boost::geometry::model::d2::point_xy point_type; }}} into {{{ typedef boost::geometry::model::d2::point_xy point_type; }}} Nota bene: All values in the example code are integral numbers, anyway. Yet, the resulting output is different, see attached files. In case of int, the entire graphic is considerably offset to the north." Volker Schöch Boost 1.56.0 10660 svg_mapper crash geometry Boost 1.56.0 To Be Determined Bugs Barend Gehrels new 2014-10-15T15:56:42Z 2014-10-15T15:56:42Z "When I slightly modify the example from the [http://www.boost.org/doc/libs/1_56_0/libs/geometry/doc/html/geometry/reference/io/svg/svg_mapper.html documentation], the code crashes with an obscure (for me) exception deep in the callstack. Running this code: {{{ std::ostringstream svg; // Specify the basic type typedef boost::geometry::model::d2::point_xy point_type; // Declare some geometries and set their values point_type a; boost::geometry::assign_values(a, -100, -100); // Declare a stream and an SVG mapper boost::geometry::svg_mapper mapper(svg, 1000, 1000); // Add geometries such that all these geometries fit on the map mapper.add(a); // Draw the geometries on the SVG map, using a specific SVG style mapper.map(a, ""fill-opacity:0.5;fill:rgb(153,204,0);stroke:rgb(153,204,0);stroke-width:2"", 5); // Destructor of map will be called - adding // Destructor of stream will be called, closing the file }}} ... throws this exception: {{{ Microsoft C++ exception: boost::numeric::negative_overflow at memory location 0x00000000001E9D60. }}} ... at this call-stack: {{{ tcaddin.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 154 C++ tcaddin.dll!boost::numeric::def_overflow_handler::operator()(boost::numeric::range_check_result r) Line 164 C++ tcaddin.dll!boost::numeric::convdetail::generic_range_checker,boost::numeric::convdetail::LE_PrevLoT >,boost::numeric::convdetail::GE_SuccHiT >,boost::numeric::def_overflow_handler>::validate_range(double s) Line 294 C++ tcaddin.dll!boost::numeric::convdetail::rounding_converter,boost::numeric::convdetail::generic_range_checker,boost::numeric::convdetail::LE_PrevLoT >,boost::numeric::convdetail::GE_SuccHiT >,boost::numeric::def_overflow_handler>,boost::numeric::raw_converter >,boost::numeric::Trunc >::convert(double s) Line 494 C++ tcaddin.dll!boost::numeric_cast(double arg) Line 54 C++ tcaddin.dll!boost::geometry::strategy::transform::ublas_transformer::apply,boost::geometry::model::point >(const boost::geometry::model::d2::point_xy & p1, boost::geometry::model::point & p2) Line 115 C++ tcaddin.dll!boost::geometry::detail::transform::transform_point::apply,boost::geometry::model::point,boost::geometry::strategy::transform::map_transformer >(const boost::geometry::model::d2::point_xy & p1, boost::geometry::model::point & p2, const boost::geometry::strategy::transform::map_transformer & strategy) Line 58 C++ tcaddin.dll!boost::geometry::resolve_strategy::transform::apply,boost::geometry::model::point,boost::geometry::strategy::transform::map_transformer >(const boost::geometry::model::d2::point_xy & geometry1, boost::geometry::model::point & geometry2, const boost::geometry::strategy::transform::map_transformer & strategy) Line 358 C++ tcaddin.dll!boost::geometry::resolve_variant::transform,boost::geometry::model::point >::apply >(const boost::geometry::model::d2::point_xy & geometry1, boost::geometry::model::point & geometry2, const boost::geometry::strategy::transform::map_transformer & strategy) Line 391 C++ tcaddin.dll!boost::geometry::transform,boost::geometry::model::point,boost::geometry::strategy::transform::map_transformer >(const boost::geometry::model::d2::point_xy & geometry1, boost::geometry::model::point & geometry2, const boost::geometry::strategy::transform::map_transformer & strategy) Line 454 C++ tcaddin.dll!boost::geometry::dispatch::svg_map >::apply >(std::basic_ostream > & stream, const std::basic_string,std::allocator > & style, int size, const boost::geometry::model::d2::point_xy & point, const boost::geometry::strategy::transform::map_transformer & strategy) Line 87 C++ tcaddin.dll!boost::geometry::svg_map,boost::geometry::strategy::transform::map_transformer >(std::basic_ostream > & stream, const std::basic_string,std::allocator > & style, int size, const boost::geometry::model::d2::point_xy & geometry, const boost::geometry::strategy::transform::map_transformer & strategy) Line 213 C++ tcaddin.dll!boost::geometry::svg_mapper,1>::map >(const boost::geometry::model::d2::point_xy & geometry, const std::basic_string,std::allocator > & style, int size) Line 334 C++ [...] }}} " Volker Schöch Boost 1.56.0 10669 Assertion failed in broadcast with BOOST_MPI_HOMOGENEOUS defined mpi Boost 1.56.0 To Be Determined Bugs Matthias Troyer new 2014-10-16T16:34:54Z 2014-10-16T16:34:54Z "When running a program that does a very simple broadcast of a map from the root proc (0) to another proc (1), I get this error: {{{ Assertion failed: (position+l<=static_cast(buffer_.size())), function load_impl, file /Users/sbateman/tmp/boost_mpi_test/boost_1_56_0/boost/mpi/detail/binary_buffer_iprimitive.hpp, line 110. }}} This only happens when I compile Boost with BOOST_MPI_HOMOGENEOUS defined (i.e., uncommented) in boost/mpi/config.hpp. If I leave that line commented out, the program completes successfully. I've attached a source file (test.cpp) that reproduces this error. I tested this on a Mac system with OS X 10.9.5 and compiler version: {{{ Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn) Target: x86_64-apple-darwin13.4.0 }}} and also on a Linux system with compiler version: {{{ gcc version 4.8.2 20131016 (Cray Inc.) (GCC) Target: x86_64-suse-linux }}}" sam.bateman@… Boost 1.56.0 10674 Boost 1.56 freezes app on some systems with Windows 7 asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-10-18T23:01:11Z 2014-10-18T23:26:12Z "I am the developer of qBittorrent. It uses libtorrent-rasterbar which in turn uses Boost (mostly Asio). I recently made a new release. I compiled against Boost 1.56. However I got some complaints from users that the GUI freezes for 5-20secs frequently. All these users are using Windows 7. However I am using Windows XP and I am unable to reproduce. To make the long story short, I provided different test builds based on Boost.Asio and we pinpointed the commit that introduced the freezing problem. Here is the relevant issue from our bug tracker: **url removed** Here is the offending commit: **url removed** If you need any more info, I'll try to provide it." sledgehammer_999 Boost 1.56.0 10683 Boost.Iostreams: typos in the doc iostreams Boost 1.56.0 To Be Determined Bugs Jonathan Turkanis new 2014-10-21T14:35:23Z 2014-11-04T09:13:27Z "http://www.boost.org/doc/libs/1_56_0/libs/iostreams/doc/tutorial/shell_comments_filters.html reads ""unix2dos_stdio_filter can be used in place of shell_comments_input_filter and shell_comments_output_filter"" It should read (first id is changed): ""shell_comments_stdio_filter can be used in place of shell_comments_input_filter and shell_comments_output_filter""" akim demaille Boost 1.56.0 10689 static_assert.hpp: unrecognized #pragma GCC system_header static_assert Boost 1.56.0 To Be Determined Bugs John Maddock new 2014-10-23T14:10:52Z 2014-10-23T14:10:52Z "I am using boost 1.55.0 within my code. Whenever boost's boost/static_assert.hpp is included the compiler complains about unrecognized pragma. The compiler in question is TI DSP for TMS3200C67x processor, invoked with the --gcc option. This option makes it to predefine the __GNUC__ macro, hence, due to conditional preprocessing ""#pragma GCC system_header"" line is being subjected to compilation. This pragma is not supported by the TI compiler causing it to emit a warning. The issue will be resolved once the same solution as for https://svn.boost.org/trac/boost/ticket/7094 is applied in the static_asssert.hpp file." Wojciech Migda Boost 1.56.0 10692 "No ""/lib"" directory or precompiled library binaries [1.56.0]" Getting Started Guide Boost 1.56.0 To Be Determined Bugs Beman Dawes new 2014-10-24T13:14:18Z 2014-10-24T14:59:16Z "The current release has no ""lib"" directory which should contain precompiled library binaries. The directory is missing in both Windows and Unix distributions. - The directory is mentioned in several steps on the getting started page (http://www.boost.org/doc/libs/1_56_0/more/getting_started/windows.html). - Without the binaries I'm unable to compile due to the missing ""libboost_system-vc120-mt-gd-1_56.lib"" file. Any help greatly appreciated." Richard Livingston Boost 1.56.0 10706 boost::spirit::basic_istream_iterator does not satisfy single pass iterator requirements spirit Boost 1.56.0 To Be Determined Bugs Joel de Guzman new 2014-10-28T15:13:58Z 2014-10-28T15:23:42Z "It is not possible, for example, to use boost::iterator_range with spirit::basic_istream_iterator {{{ clang++ -v clang version 3.6.0 (trunk 216817) Target: x86_64-apple-darwin14.0.0 Thread model: posix }}} {{{ using namespace boost; size (iterator_range ()); }}} {{{ In file included from /opt/local/include/boost/spirit/include/qi.hpp:16: In file included from /opt/local/include/boost/spirit/home/qi.hpp:14: In file included from /opt/local/include/boost/spirit/home/qi/action.hpp:14: In file included from /opt/local/include/boost/spirit/home/qi/action/action.hpp:14: In file included from /opt/local/include/boost/spirit/home/qi/meta_compiler.hpp:14: In file included from /opt/local/include/boost/spirit/home/support/meta_compiler.hpp:19: In file included from /opt/local/include/boost/proto/proto.hpp:16: In file included from /opt/local/include/boost/proto/functional.hpp:14: In file included from /opt/local/include/boost/proto/functional/range.hpp:17: In file included from /opt/local/include/boost/proto/functional/range/size.hpp:12: In file included from /opt/local/include/boost/range/size.hpp:21: In file included from /opt/local/include/boost/range/size_type.hpp:20: /opt/local/include/boost/range/concepts.hpp:158:26: error: no matching constructor for initialization of 'boost::spirit::basic_istream_iterator >' Iterator i2(++i); ^ ~~~ /opt/local/include/boost/concept/usage.hpp:16:43: note: in instantiation of member function 'boost::range_detail::SinglePassIteratorConcept > >::~SinglePassIteratorConcept' requested here ~usage_requirements() { ((Model*)0)->~Model(); } ^ /opt/local/include/boost/concept/detail/general.hpp:38:42: note: in instantiation of member function 'boost::concepts::usage_requirements > > >::~usage_requirements' requested here static void failed() { ((Model*)0)->~Model(); } ^ /opt/local/include/boost/range/concepts.hpp:156:13: note: in instantiation of member function 'boost::concepts::requirement > > >::************>::failed' requested here BOOST_CONCEPT_USAGE(SinglePassIteratorConcept) ^ /opt/local/include/boost/concept/usage.hpp:29:7: note: expanded from macro 'BOOST_CONCEPT_USAGE' BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements)); \ ^ /opt/local/include/boost/concept/assert.hpp:43:5: note: expanded from macro 'BOOST_CONCEPT_ASSERT' BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) ^ /opt/local/include/boost/concept/detail/general.hpp:78:51: note: expanded from macro 'BOOST_CONCEPT_ASSERT_FN' &::boost::concepts::requirement_::failed> \ ^ /opt/local/include/boost/spirit/home/support/iterators/istream_iterator.hpp:56:18: note: candidate constructor not viable: no known conversion from 'boost::spirit::multi_pass, boost::spirit::iterator_policies::default_policy >' to 'std::basic_istream > &' for 1st argument explicit basic_istream_iterator(std::basic_istream& x) ^ /opt/local/include/boost/spirit/home/support/iterators/istream_iterator.hpp:59:9: note: candidate constructor not viable: no known conversion from 'boost::spirit::multi_pass, boost::spirit::iterator_policies::default_policy >' to 'const boost::spirit::basic_istream_iterator >' for 1st argument basic_istream_iterator(basic_istream_iterator const& x) ^ /opt/local/include/boost/spirit/home/support/iterators/istream_iterator.hpp:53:9: note: candidate constructor not viable: requires 0 arguments, but 1 was provided basic_istream_iterator() ^ 1 error generated. }}}" Nikki Chumakov Boost 1.56.0 10716 Pool allocators fail to compile under g++4.7, 4.8 and 4.9 pool Boost 1.56.0 To Be Determined Bugs Chris Newbold new 2014-10-30T06:28:07Z 2014-10-30T06:28:07Z "Hi, Usage of either boost::pool_allocator or boost::fast_pool_allocator with std::allocate_shared can cause compile errors on the g++4.7, 4.8, 4.9. There is much more detailed information on the stack overflow question I made: [http://stackoverflow.com/questions/26396293/boost-pool-allocators-wont-compile-with-stdallocate-shared-in-g] Code exhibiting the error: {{{ #include ""boost/pool/pool.hpp"" #include ""boost/pool/pool_alloc.hpp"" #include int main(int argc, char** argv) { auto fails = std::allocate_shared( boost::fast_pool_allocator() ); auto works = std::allocate_shared(boost::fast_pool_allocator(), 5); } }}} Simply put boost allocators are still specified using the c++98 style and this causes g++ to fail for the versions of g++ mentioned above. However it should be noted that g++ 5.0 does compile correctly and this implies that updating is not necessarily mandatory. I have made this ticket so that the appropriate people can make a determination about whether to fix this or not. Also note that changing to the c++11 allocator style seems to be straightforward. " Conrad Mercer Boost 1.56.0 10728 Error in example of boost::accumulators accumulator Boost 1.56.0 To Be Determined Bugs Eric Niebler new 2014-10-31T16:24:55Z 2015-02-13T18:36:39Z "The first example (Hello, World!) in http://www.boost.org/doc/libs/1_56_0/doc/html/accumulators/user_s_guide.html does not compile because of an error on line 22: {{{ std::cout << ""Moment: "" << accumulators::moment<2>(acc) << std::endl; }}} should be: {{{ std::cout << ""Moment: "" << moment<2>(acc) << std::endl; }}}" anonymous Boost 1.56.0 10731 make_permissions is case-inconsistent and requires unnecessary conversions filesystem Boost 1.56.0 To Be Determined Bugs Beman Dawes new 2014-10-31T23:02:48Z 2017-04-30T17:21:15Z "There exist two notable issues with the internal function make_permissions in operations.cpp (Windows only): a) The usage of the macro BOOST_FILESYSTEM_STRICMP implies case-insensitive comparison, but for compilers different from _MSC_VER it actually calls the case-sensitive function std::strcmp. b) The code uses up to four code-conversions (wchar_t->char) to invoke the comparison function, all of the following form: {{{ BOOST_FILESYSTEM_STRICMP(p.extension().string().c_str(), "".exe"") }}} It seems that there exist a simple and consistent way to solve these problems: Replace the macro BOOST_FILESYSTEM_STRICMP by boost::algorithm::iequals and do not perform code conversion. Essentially the make_permissions code could be changed to the following form - assuming an additional inclusion of {{{ #include ""boost/algorithm/string/predicate.hpp"" }}} and removal of the BOOST_FILESYSTEM_STRICMP macro definition (which is no-where else used): {{{ perms make_permissions(const path& p, DWORD attr) { perms prms = fs::owner_read | fs::group_read | fs::others_read; if ((attr & FILE_ATTRIBUTE_READONLY) == 0) prms |= fs::owner_write | fs::group_write | fs::others_write; if (boost::algorithm::iequals(p.extension().c_str(), L"".exe"") || boost::algorithm::iequals(p.extension().c_str(), L"".com"") || boost::algorithm::iequals(p.extension().c_str(), L"".bat"") || boost::algorithm::iequals(p.extension().c_str(), L"".cmd"")) prms |= fs::owner_exe | fs::group_exe | fs::others_exe; return prms; } }}} Given that boost::algorithm::iequals allows to provide a std::locale object as additional argument, one could improve that solution even more by providing the same locale as that from path_locale() within path.cpp. Unfortunately there is no access within operations.cpp to that function (which is within an unnamed namespace), so realizing this second improvement would require a larger surgery. " daniel.kruegler@… Boost 1.56.0 10744 wrong error code when doing async_connect and the connection is refused asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-11-04T08:56:02Z 2014-11-09T13:41:54Z "When executing the following example the error_code provided is not correctly recognized as connection_refused. This is because the error_code supplied is provided by '''GetLastError''' and the error_code expected is provided by '''WSAGetLastError'''. {{{ #!div style=""font-size: 80%"" {{{#!cpp #include #include ""boost/asio.hpp"" using namespace boost::asio; int main(int argc, const char* argv[]) { io_service io_service; ip::tcp::socket::endpoint_type endpoint(ip::address_v4::from_string(""127.0.0.1""), 9999); ip::tcp::socket tcp_socket(io_service); tcp_socket.async_connect(endpoint, [](const boost::system::error_code& ec) { if (ec.value() != boost::asio::error::connection_refused) { std::cout << ""Expected error code "" << boost::asio::error::connection_refused << "" but got "" << ec.value() << std::endl; } else { std::cout << ""got error code "" << ec.value() << std::endl; } }); io_service.run(); return 0; } }}} }}} It seems that that this behavior change to earlier boost version has something to-do with this commit: [[github.com/boostorg/asio/commit/0484963a55bf109353922e1d5fdc2a218995d9e7]] On linux system this example works fine" Martin Bonetti Boost 1.56.0 10756 AddressSanitizer container overflow in deadline_timer asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-11-05T23:46:44Z 2015-06-16T14:58:39Z "I am scheduling 3 ASIO deadline timers back-to-back, wrapping them in a single strand. There is a single thread that services io_service->run(). I see the following ""container-overflow"" violation: {{{ ================================================================= ==16399==ERROR: AddressSanitizer: container-overflow on address 0x60c000017550 at pc 0x0001088e1b3a bp 0x00010ea96510 sp 0x00010ea95cd0 READ of size 8 at 0x60c000017550 thread T2 #0 0x1088e1b39 in __asan_memcpy (/opt/local/libexec/llvm-3.6/lib/clang/3.6.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib+0x24b39) #1 0x1084a286a in boost::date_time::counted_time_rep::time_count() const (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x10056186a) #2 0x1084a264e in boost::date_time::counted_time_system >::is_less(boost::date_time::counted_time_rep const&, boost::date_time::counted_time_rep const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x10056164e) #3 0x10808ccec in boost::date_time::base_time > >::operator<(boost::posix_time::ptime const&) const (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x10014bcec) #4 0x10823e079 in boost::asio::time_traits::less_than(boost::posix_time::ptime const&, boost::posix_time::ptime const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002fd079) #5 0x108297b9a in boost::asio::detail::timer_queue::down_heap(unsigned long) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100356b9a) #6 0x108296b02 in boost::asio::detail::timer_queue::remove_timer(boost::asio::detail::timer_queue::per_timer_data&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100355b02) #7 0x1083bc9ef in boost::asio::detail::timer_queue::get_ready_timers(boost::asio::detail::op_queue&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x10047b9ef) #8 0x1083ba430 in boost::asio::detail::timer_queue >::get_ready_timers(boost::asio::detail::op_queue&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100479430) #9 0x10960c74c in boost::asio::detail::timer_queue_set::get_ready_timers(boost::asio::detail::op_queue&) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x4374c) #10 0x10960c0cd in boost::asio::detail::kqueue_reactor::run(bool, boost::asio::detail::op_queue&) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x430cd) #11 0x10960b846 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x42846) #12 0x10960b3aa in boost::asio::detail::task_io_service::run(boost::system::error_code&) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x423aa) #13 0x1095e2940 in boost::asio::io_service::run() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x19940) #14 0x1095d01f7 in eximius::Platform::ProcessorRun(unsigned int) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x71f7) #15 0x1095e81fe in void boost::_bi::list1 >::operator()(boost::_bi::type, void (*&)(unsigned int), boost::_bi::list0&, int) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x1f1fe) #16 0x1095e817b in boost::_bi::bind_t > >::operator()() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x1f17b) #17 0x1095f5d7b in boost::detail::thread_data > > >::run() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x2cd7b) #18 0x10a477d04 in boost::(anonymous namespace)::thread_proxy(void*) (/opt/local/lib/libboost_thread-mt.dylib+0x2d04) #19 0x7fff93dbc2fb in _pthread_body (/usr/lib/system/libsystem_pthread.dylib+0x32fb) #20 0x7fff93dbc278 in _pthread_start (/usr/lib/system/libsystem_pthread.dylib+0x3278) #21 0x7fff93dba4b0 in thread_start (/usr/lib/system/libsystem_pthread.dylib+0x14b0) 0x60c000017550 is located 80 bytes inside of 128-byte region [0x60c000017500,0x60c000017580) allocated by thread T0 here: #0 0x1088ea2ab in wrap__Znwm (/opt/local/libexec/llvm-3.6/lib/clang/3.6.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib+0x2d2ab) #1 0x108248c8a in std::__1::__split_buffer::heap_entry, std::__1::allocator::heap_entry>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator::heap_entry>&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100307c8a) #2 0x108241d93 in std::__1::__split_buffer::heap_entry, std::__1::allocator::heap_entry>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator::heap_entry>&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100300d93) #3 0x108241498 in void std::__1::vector::heap_entry, std::__1::allocator::heap_entry> >::__push_back_slow_path::heap_entry const>(boost::asio::detail::timer_queue::heap_entry const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100300498) #4 0x10823c621 in boost::asio::detail::timer_queue::enqueue_timer(boost::posix_time::ptime const&, boost::asio::detail::timer_queue::per_timer_data&, boost::asio::detail::wait_op*) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002fb621) #5 0x10823b51a in boost::asio::detail::timer_queue >::enqueue_timer(boost::posix_time::ptime const&, boost::asio::detail::timer_queue::per_timer_data&, boost::asio::detail::wait_op*) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002fa51a) #6 0x108238e17 in void boost::asio::detail::kqueue_reactor::schedule_timer >(boost::asio::detail::timer_queue >&, boost::asio::time_traits::time_type const&, boost::asio::detail::timer_queue >::per_timer_data&, boost::asio::detail::wait_op*) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002f7e17) #7 0x1082375bc in void boost::asio::detail::deadline_timer_service >::async_wait >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> >(boost::asio::detail::deadline_timer_service >::implementation_type&, boost::asio::detail::wrapped_handler >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running>&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002f65bc) #8 0x108236536 in boost::asio::async_result >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running>, void (boost::system::error_code)>::type>::type boost::asio::deadline_timer_service >::async_wait >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> >(boost::asio::detail::deadline_timer_service >::implementation_type&, boost::asio::detail::wrapped_handler >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002f5536) #9 0x108205259 in boost::asio::async_result >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running>, void (boost::system::error_code)>::type>::type boost::asio::basic_deadline_timer, boost::asio::deadline_timer_service > >::async_wait >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> >(boost::asio::detail::wrapped_handler >, boost::system::error_code const&>, boost::_bi::list2 >*>, boost::arg<1> (*)()> >, boost::asio::detail::is_continuation_if_running> const&) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002c4259) #10 0x1081f95d6 in eximius::EximiusTimerHandler >::StartTimer() (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1002b85d6) #11 0x108081a7c in int eximius::Platform::ScheduleTimer >(boost::posix_time::time_duration const&, boost::function const&, bool, char const*, unsigned int, unsigned int) (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100140a7c) #12 0x107fe3143 in eximius::ProcessControl::StartTimers() (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x1000a2143) #13 0x107f75593 in eximius::ProcessControl::StartApplication() (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100034593) #14 0x1096bc66e in eximius::EximiusApplication::StartEximiusApplication() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0xf366e) #15 0x108585856 in main (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x100644856) #16 0x7fff9077f5c8 in start (/usr/lib/system/libdyld.dylib+0x35c8) #17 0x0 () Thread T2 created by T0 here: #0 0x1088e106f in wrap_pthread_create (/opt/local/libexec/llvm-3.6/lib/clang/3.6.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib+0x2406f) #1 0x10a477c1b in boost::thread::start_thread_noexcept() (/opt/local/lib/libboost_thread-mt.dylib+0x2c1b) #2 0x1095f4d04 in boost::thread::start_thread() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x2bd04) #3 0x1095f4c65 in boost::thread::thread > > >(boost::_bi::bind_t > >, boost::disable_if_c > >&, boost::detail::thread_move_t > > > >::value, boost::thread::dummy*>::type) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x2bc65) #4 0x1095e307a in boost::thread::thread > > >(boost::_bi::bind_t > >, boost::disable_if_c > >&, boost::detail::thread_move_t > > > >::value, boost::thread::dummy*>::type) (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x1a07a) #5 0x1095da31f in eximius::Platform::Initialize() (/Users/hgill/Work/dpi/sp4/build_debug/install/lib/libgencore-platform.dylib+0x1131f) #6 0x1085803a8 in main (/Users/hgill/Work/dpi/sp4/build_debug/install/./bin/process-manager+0x10063f3a8) #7 0x7fff9077f5c8 in start (/usr/lib/system/libdyld.dylib+0x35c8) #8 0x0 () SUMMARY: AddressSanitizer: container-overflow ??:0 __asan_memcpy Shadow bytes around the buggy address: 0x1c1800002e50: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x1c1800002e60: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa 0x1c1800002e70: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x1c1800002e80: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x1c1800002e90: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa =>0x1c1800002ea0: 00 00 00 00 00 00 00 00 00 00[fc]fc fc fc fc fc 0x1c1800002eb0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x1c1800002ec0: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa 0x1c1800002ed0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x1c1800002ee0: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd 0x1c1800002ef0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac ASan internal: fe ==16399==ABORTING }}} Somehow, the problem goes away when I schedule < 3 timers. " harjotgill@… Boost 1.56.0 10784 Error compiling syslog_backend with icc-11.1.064 asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-11-11T21:52:54Z 2014-11-12T13:07:34Z "I am trying to compile boost 1.56.0 with icc-11.1.064 on ubuntu 12.04. That specific compiler is needed for compatibility with existing code. It's failing with this error: ./boost/asio/detail/keyword_tss_ptr.hpp(62): error: template argument list must match the parameter list BOOST_ASIO_THREAD_KEYWORD T* keyword_tss_ptr::value_; ^ compilation aborted for libs/log/src/syslog_backend.cpp (code 2) ""icpc"" -c -xc++ -w1 -inline-level=2 -O3 -ip -pthread -fPIC -fPIC -wd177,780,2196,1782,193,304,981,1418,411,734,279 -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_DATE_TIME_DYN_LINK=1 -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_HAS_ICU=1 -DBOOST_LOG_BUILDING_THE_LIB=1 -DBOOST_LOG_DLL -DBOOST_LOG_USE_NATIVE_SYSLOG -DBOOST_LOG_USE_SSSE3 -DBOOST_LOG_WITHOUT_EVENT_LOG -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -DNDEBUG -D_GNU_SOURCE=1 -D_XOPEN_SOURCE=600 -I""."" -I""/usr/include"" -c -o ""bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/syslog_backend.o"" ""libs/log/src/syslog_backend.cpp"" ...failed intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/syslog_backend.o... intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/threadsafe_queue.o intel-linux.compile.c++ bin.v2/libs/log/build/intel-linux/release/build-no/log-api-unix/threading-multi/trivial.o If I compile with 'define=BOOST_LOG_WITHOUT_SYSLOG' then it builds successfully but I'd like to have the syslog backend support available. Any help would be much appreciated. " bhall@… Boost 1.56.0 10796 JSON writer incorrectly escapes UTF8 strings property_tree Boost 1.56.0 To Be Determined Bugs Sebastian Redl new 2014-11-16T20:10:25Z 2014-11-16T20:10:25Z "Consider a string s = ""Šnipiškių"". JSON writer stores ""\u00C5\u00A0nipi\u00C5\u00A1ki\u00C5\u00B3"", which is actually ""Å nipiÅ¡kių"". Expected behaviour: 1. UTF-8 strings properly escaped by boost::property_tree::write_json 2. boost::property_tree::read_json then reads EXACTLY the same UTF8 string. I.e., if the original ptree contained ""Šnipiškių"", the same string ""Šnipiškių"" must be read back by read_json." vygis.d@… Boost 1.56.0 10818 "A C4267 ""possible loss of data"" warning when compiling on VS2013 x64 with /W4" dynamic_bitset Boost 1.56.0 To Be Determined Bugs jsiek new 2014-11-26T06:14:30Z 2014-11-26T06:14:30Z "Example: boost::dynamic_bitset<> flags; ... bool b = flags[56]; Warning when calling the reference class constructor from the [] operator. Compiler -- VS2013, Platform -- x64, Debug mode, Warning level -- /W4. Fix: I found if you changed the pos parameter of the reference class constructor to size_type, the warning went away. From: reference(block_type & b, block_type pos) To: reference(block_type & b, size_type pos) Location Line 88 of dynamic_bitset.hpp Actual error message: 4>C:\Boost\1_56_0-VS_2013-x64\include\boost-1_56\boost/dynamic_bitset/dynamic_bitset.hpp(296): warning C4267: 'argument' : conversion from 'size_t' to 'unsigned long', possible loss of data 4> C:\Boost\1_56_0-VS_2013-x64\include\boost-1_56\boost/dynamic_bitset/dynamic_bitset.hpp(295) : while compiling class template member function 'boost::dynamic_bitset>::reference boost::dynamic_bitset>::operator [](boost::dynamic_bitset>::size_type)' reference(block_type & b, size_type pos)" kaa123@… Boost 1.56.0 10841 runtime error boost::numeric:;odeint:: odeint Boost 1.56.0 To Be Determined Bugs karsten new 2014-12-03T04:32:55Z 2015-01-29T21:43:18Z "Dear all, I encountered a run-time error while using odeint. In a class method this command is executed: {{{ size_t size =boost::numeric::odeint::integrate(model, x, 0.0, 1.0, 0.1); }}} when x is a VECTOR defined as: {{{ typedef std::vector state_type; }}} No compile, link errors occur; however, in run-time following window pops up after some iteration of the integrator. It says: '''vector iterator not incrementable.''' as shown in figure attached. By changing vector definition to array definition the problem will be resolved. So the following works when 3 is number of states: {{{ typedef boost::array< double , 3 > state_type; }}} This problem happens by use of the odeint-v2 commit messaged ""fixes #142, fixes boost include issue in bjam"" and boost 1.56.0 on Windows 8 64 bits, Visual Studio 2012, platform v110 (equivalent c++11)." taghia.javad@… Boost 1.56.0 10842 Boost.Parameter: Class Template parameter can't be abstract parameter Boost 1.56.0 To Be Determined Bugs Daniel Wallin new 2014-12-03T08:52:38Z 2014-12-03T08:53:09Z "VS 2013 fails to compile when abstract class is passed as class template parameter with error ""cannot instantiate abstract class"". Sample: #include class Intf { public: virtual void func() = 0; }; BOOST_PARAMETER_TEMPLATE_KEYWORD(param) template class P { public: typedef typename boost::parameter::parameters< boost::parameter::optional >::bind::type args; typedef typename boost::parameter::value_type::type param_type; }; int main() { P > p; return 0; }" o0o0@… Boost 1.56.0 10876 windows_intermodule_singleton breaks when mixing debug/release dll/exe interprocess Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2014-12-16T11:14:43Z 2014-12-16T11:14:43Z "Ticket #9262 describes a problem related to windows_intermodule_singleton being created in one runtime and then accessed in another (debug/release runtimes). I believe there is at least one more ""problematic"" object besides the std::map that from boost 1.56 is replaced with boost::container::map. The struct windows_bootstamp contains a std::string and since objects of this type is created in shared memory the problem with mixed runtimes is still there." anders.widen@… Boost 1.56.0 10885 Serialization relies upon exceptions date_time Boost 1.56.0 To Be Determined Bugs az_sw_dude new 2014-12-19T08:33:36Z 2014-12-19T08:33:36Z Loading and saving ::boost::gregorian::date in greg_serialize.hpp relies upon an exception to detect if the serialized string corresponds to a special value. This has a negative effect on the runtime in debug mode. anonymous Boost 1.56.0 10892 Boost Asio asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2014-12-22T19:52:05Z 2014-12-22T19:52:05Z "I have posted on stackoverflow to see if I am implementing the TCP Server incorrectly, but this has worked for me for years. http://stackoverflow.com/questions/27609306/boost-asio-error I think I wrote it originally with Boost 1.38, and upgraded boost versions about every 6 months. Around Boost 1.47 I ran into this problem, but I just used BOOST_ASIO_ENABLE_OLD_SSL to continue running with the old SSL logic to make it work. I am now trying to fix it because I think the older SSL logic may be contributing to another bug in the code. It could be that the older SSL logic didn't check everything it was supposed to, and this is the correct functionality. But if that is the case, I'm not sure what I am doing wrong." Matthew Mueller Boost 1.56.0 10925 fialed to build math library with studo 12.4 c++ on Solaris 11.2 math Boost 1.56.0 To Be Determined Bugs John Maddock new 2015-01-09T23:53:45Z 2015-04-02T17:10:33Z "Problem:fails to build math library with studio 12.4 on Solaris 11.2 with ""../../../boost/math/cstdfloat/cstdfloat_types.hpp"", line 393: Error: The type ""boost::STATIC_ASSERTION_FAILURE<0>"" is incomplete. 1 Error(s) detected. " angela.xie@… Boost 1.56.0 10956 null point exception using asio based on linux asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2015-01-23T06:58:49Z 2016-08-11T03:57:59Z "I have writen a linux server application based on centos boost asio.I have created thread pool accelerating asyn asio,but it is cored down like following. #0 start_op (this=0x1196e18, impl=..., op_type=1, op=0x7fd2b01a8c30, is_continuation=, is_non_blocking=true, noop=false) at /usr/share/server_depends/cmake/depends/net/../../../depends/net/../boost_1_56_0/boost/asio/detail/impl/epoll_reactor.ipp:219 #1 boost::asio::detail::reactive_socket_service_base::start_op (this=0x1196e18, impl=..., op_type=1, op=0x7fd2b01a8c30, is_continuation=, is_non_blocking=true, noop=false) at /usr/share/server_depends/cmake/depends/net/../../../depends/net/../boost_1_56_0/boost/asio/detail/impl/reactive_socket_service_base.ipp:214 #2 0x00007fd2b94dc667 in async_send, boost::asio::detail::write_op >, asio_net::shared_const_buffer, boost::asio::detail::transfer_all_t, boost::_bi::bind_t, boost::_bi::list3, boost::arg<1>, boost::arg<2> > > > > (this=, ec=, bytes_transferred=, start=) at /usr/share/server_depends/cmake/depends/net/../../../depends/net/../boost_1_56_0/boost/asio/detail/reactive_socket_service_base.hpp:216 #3 async_send, boost::asio::detail::write_op >, asio_net::shared_const_buffer, boost::asio::detail::transfer_all_t, boost::_bi::bind_t, boost::_bi::list3, boost::arg<1>, boost::arg<2> > > > > (this=, ec=, bytes_transferred=, start=) at /usr/share/server_depends/cmake/depends/net/../../../depends/net/../boost_1_56_0/boost/asio/stream_socket_service.hpp:330 #4 async_write_some, boost::asio::detail::write_op >, asio_net::shared_const_buffer, boost::asio::detail::transfer_all_t, boost::_bi::bind_t, boost::_bi::list3, boost::arg<1>, boost::arg<2> > > > > (this=, ec=, bytes_transferred=, start=) at /usr/share/server_depends/cmake/depends/net/../../../depends/net/../boost_1_56_0/boost/asio/basic_stream_socket.hpp:732 I guess that the socket writing thread starts a reactor io when the other thread closes it concurrency.Is that a bug?Does the socket closing function should add some lock to avoid it." xuzhiteng <419855192@…> Boost 1.56.0 11080 MSVC level 4 compiler warnings in function_output_iterator iterator Boost 1.56.0 To Be Determined Bugs jeffrey.hellrung new 2015-03-06T14:10:44Z 2015-03-06T14:42:08Z "When compiling a project using signals2 (boost v. 1.56) with warning level 4 (/W4) in Visual Studio 2013, warnings are generated on the file function_output_iterator.hpp. The warning is C4512: assignment operator could not be generated. Supplying patch which solves the issue by declaring those classes noncopyable." Erik Levin Boost 1.56.0 11118 test libs/range/test/adaptor_test/indexed.cpp is bad range Boost 1.56.0 To Be Determined Bugs Neil Groves new 2015-03-13T18:08:20Z 2015-03-13T18:08:20Z "This test contains two invocations of the BOOST_STATIC_ASSERT macro that need additional parens around the parameters. For implementations that don't support variadic macros, the BOOST_STATIC_ASSERT macro is defined to take one parameter. As written the test passes two." Ed Vogel Boost 1.56.0 11154 Constructing boost::interprocess::interprocess_semaphore throws in MacOS 10.9.5 interprocess Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2015-03-30T17:11:38Z 2018-05-21T19:14:02Z "Using boost::interprocess::interprocess_semaphore from Boost 1.56 and running MacOS 10.9.5, it simply throws an exception saying the function is not implemented: libc++abi.dylib: terminating with uncaught exception of type boost::interprocess::interprocess_exception: Function not implemented This is a regression from Boost 1.49 and MacOS 10.9.5, where this works fine. Looking at the two, it appears that 1.49 is using the generic spin emulation for interprocess_semaphore, whereas 1.56 is implementing interprocess_semaphore using POSIX unnamed semaphores, which aren't implemented in MacOS 10.9.5." Jonathan Jones Boost 1.56.0 11224 Pre-processing / Pre-generating MPL-containers stopped working mpl Boost 1.56.0 To Be Determined Bugs Aleksey Gurtovoy new 2015-04-22T09:44:30Z 2015-04-22T12:11:13Z " == Background == Boost.MPL allows to pre-process / pre-generate headers for MPL-containers (`vector`, `list`, `set`, `map`). In particular, headers for containers in ''variadic'' and ''numbered'' form can be pre-generated. For that, Boost.MPL comes with some python-scripts, located in subdirectory ""libs/mpl/preprocessed/"" of the Boost-source directory. (As a side-note: Documentation for these python-scripts is missing.) By default, Boost comes with pre-generated headers for MPL-containers that are able to hold up to 50 elements. Using the mentioned python-files it is possible to generate MPL-containers that can hold even more elements. == Problem == Since release of Boost 1.56.0 the pre-generation of headers for MPL-containers does not work anymore. == Explanation == One of the python-scripts used for pre-generation (""`pp.py`"") requires certain information to be found in the header-comments of input-headers. In particular, it required the field `$Id$` in the header-comment to contain the filename (followed by some additional non-whitespace characters), which it no longer does in release 1.56.0 and newer Boost releases. `$Id$` is a Subversion substitution-keyword. (See: `[http]://svnbook.red-bean.com/en/1.7/svn-book.html#svn.advanced.props.special.keywords`) I assume, Boost switched from Subversion to Git before releasing Boost 1.56.0. That would explain why the keyword-substition did no longer work. == Solution == To make the python-scripts work again, the best solution would be to also make the keyword-substitution work together with Git. However, as this is neither simple nor recommended (see: `[https]://git.wiki.kernel.org/index.php/Git_FAQ#Does_Git_have_keyword_expansion.3F`) one should probably add the missing information into the header-comments directly before pre-generation. The attached python-script ""`fix_boost_mpl_preprocess.py`"" is able to do that. The attached python-script ""`boost_mpl_preprocess.py`"" can then be used as a comfortable helper-script for pre-generating. == Additional Information == Explanation for both scripts on Stackoverflow:[[BR]] `[http]://stackoverflow.com/a/29627158/3115457` Discussion regarding this problem on the boost-users mailing-list:[[BR]] `[http]://thread.gmane.org/gmane.comp.lib.boost.user/83794` " Deniz Bahadir Boost 1.56.0 11260 stored_edge_property's copy constructor is implicitly deleted for some compilers graph Boost 1.56.0 To Be Determined Bugs Jeremiah Willcock new 2015-04-30T18:33:53Z 2015-04-30T18:33:53Z "Stored_edge_property has two possible definitions, depending upon the compiler used. With MSVC or gcc less than 4.6, it is given both a copy constructor and a move constructor. With other compilers, it is given a default move constructor, and its copy constructor is implicitly deleted. This causes compiler errors in some unexpected places. I've attached an example which gives a compiler error when compiled with gcc 4.7.2 using c++11. I've observed the same issue on clang, although I haven't been able to create a simple reproduction for it there." dave.lowell@… Boost 1.56.0 11403 exception_ptr.hpp causes crash when .NET tries to unload a DLL that uses boost exception Boost 1.56.0 To Be Determined Bugs Emil Dotchevski new 2015-06-15T08:19:24Z 2015-12-08T09:54:52Z "Hello, I posted this on the gmane board and Emil Dotchevski said I should open a ticket for this. We are working with Visual Studio 2013 and have a plain c++ lib that uses boost. To test it, we wrote a (non clr) console program and a WPF GUI for further use. This WPF GUI contains a clr dll as a wrapper between the .NET world and the plain c++ libs. At startup, both console and WPF call some function pointers in _initterm in crt0dat.c, especially these two: [[BR]] dynamic initializer for 'boost::exception_detail::exception_ptr_static_exception_object::e''(void) [[BR]] dynamic initializer for 'boost::exception_detail::exception_ptr_static_exception_object::e''(void) The console terminates cleanly. But the GUI causes an exception in crtdll.c, _CRT_INIT, line 414: /* call the function, which can eventually change __onexitbegin and __onexitend */ [[BR]] (*function_to_call)(); The debugger says the value of *function_to_call is [[BR]] *function_to_call _t2m@???__Fep@?1???$get_static_exception_object@Ubad_exception_@exception_detail@boost@@@exception_detail@boost@@YA?AVexception_ptr@1@XZ@YAXXZ@?A0xd1be0c67@@YAXXZ and causes an unhandled exception at 0x74c7c42d (KernelBase.dll), The String binding is invalid. However, if I change (remove the static keyword) line 130 in exception_ptr.hpp from [[BR]] static exception_ptr ep(shared_ptr(new exception_detail::clone_impl(c))); to exception_ptr ep(shared_ptr(new exception_detail::clone_impl(c))); the GUI exits cleanly. Best regards,[[BR]] Markus Pieper" onkelhotte@… Boost 1.56.0 11404 boost/numeric/ublas/experimental/sparse_view.hpp fails to compile if -DNDEBUG is used uBLAS Boost 1.56.0 To Be Determined Bugs Gunter new 2015-06-17T15:27:03Z 2015-06-17T15:27:03Z "If -DNDEBUG is specified on the command line the header file boost/numeric/ublas/experimental/sparse_view.hpp will not compile. This can also be seen by trying to build/run the test sparse_view_test.tes with ""B2 release"" Here's a quick cut/paste: $ cat t.cpp #include vogeled@nimloth ~ $ g++ -Iboost/boost_1_56_0 -c -DNDEBUG t.cpp In file included from t.cpp:1: boost/boost_1_56_0/boost/numeric/ublas/experimental/sparse_view.hpp:29: error: e xpected template-name before '<' token boost/boost_1_56_0/boost/numeric/ublas/experimental/sparse_view.hpp:29: error: e xpected `{' before '<' token boost/boost_1_56_0/boost/numeric/ublas/experimental/sparse_view.hpp:29: error: e xpected unqualified-id before '<' token boost/boost_1_56_0/boost/numeric/ublas/experimental/sparse_view.hpp:29: error: e xpected `;' before '<' token " Ed Vogel Boost 1.56.0 11415 crash in processEvent_ polygon Boost 1.56.0 To Be Determined Bugs Andrii Sydorchuk assigned 2015-06-23T10:39:41Z 2017-08-31T09:58:54Z "In polygon/details/polygon_arbitrary_formation.hpp, at the end of function processEvent_ (line 1768), I had a case where iter is dereferenced illegally. Changing line 1741 from: if(verticalTail && !(verticalCount.second)) { to if (verticalTail && !(verticalCount.second) && iter != scanData_.end()) { fixes this problem, but it might be the case that this just misses the addition of a new hole. I have processed many polygons and this only happened with a specific polygon, but looking at the iter determining code earlier in processEvent_ (lines 1669..1698), iter referring to the end of scanData might not be such a special case: iterator iter = lookUp_(currentY); while(iter != scanData_.end() && ((iter->first.pt.x() == x_ && iter->first.pt.y() == currentY) or (iter->first.other_pt.x() == x_ && iter->first.other_pt.y() == currentY))) { elementIters.push_back(iter); ... ++iter; } If the original coder assumed that (verticalTail && !(verticalCount.second)) implies that (iter != scanData_.end()), well, sometimes it does not. I'll provide more info on actual case(s) (instantiation types, coordinates) in additional notes. In the seen case, scanData_ contained 3 elements, and elementIters had 2." mhilferink@… Boost 1.56.0 11442 boost/smart_ptr/detail/yield_k.hpp should not unconditionally call ::nanosleep smart_ptr Boost 1.56.0 To Be Determined Bugs Peter Dimov new 2015-07-02T01:12:41Z 2015-07-02T01:12:41Z "The file boost/smart_ptr/detail/yield_k.hpp will call ::nanosleep when it's compiled in multi-threaded mode. As nanosleep is not required for Boost (there is a BOOST_HAS_NANOSLEEP function), this code should really be guarded by conditionals and an #error directive executed if the platform does not support nanosleep. Yea...a real nit...but my boss wants one posted... Ed" Ed Vogel Boost 1.56.0 11469 libs/iostreams/test/detail/file_handle.hpp should include unistd.h iostreams Boost 1.56.0 To Be Determined Bugs Jonathan Turkanis new 2015-07-09T19:43:49Z 2015-07-09T19:43:49Z "the file libs/iostreams/test/detail/file_handle.hpp uses the ::close function. According to Posix, this is declared in unistd.h. However, the file does not include unistd.h It should. Yea...a nit." Ed Vogel Boost 1.56.0 11520 pointer_iserializer requires operator delete(void*, size_t) for classes that have a specific operator new serialization Boost 1.56.0 To Be Determined Bugs Robert Ramey reopened 2015-07-31T20:59:28Z 2016-03-06T08:04:42Z "Serialization of pointers to objects, which have a class specific operator new fails if the class only provides the regular (see https://github.com/boostorg/serialization/blob/master/include/boost/archive/detail/iserializer.hpp#L236) T::operator delete(void*) by requiring definition of T::operator delete(void*, std::size_t) However, the operator delete with size argument is entirely optional in the C++ standard. The comment in the code says this choice was made because the delete operator with only one argument is a usual deallocator, which the author assumes calls the destructor. This is incorrect in two ways: a) operator delete never calls the destructor (the delete expression calls the destructor and then operator delete to deallocate the storage, see sec. 5.3.5 of the standard) b) operator delete with a size argument is a usual delete operator (non-placement), just like the version with one argument. In fact, it seems that the behaviour may be undefined if both versions of the delete operator are defined (sec. 5.3.5 paragraph 10). I don't know how to test which of the two operators exists, but it seems safer to me to use the one-argument version. My existing code stopped working after upgrading boost, and I do not have access to the class being serialized. I am using an external non-intrusive serialization function." Fabian Kislat Boost 1.56.0 11575 Boost::Polygon insert(item, true) of polygon_set_data wrong polygon Boost 1.56.0 To Be Determined Bugs Lucanus Simonson new 2015-08-24T16:50:21Z 2015-08-24T16:50:21Z "Codes below shows the way ""o_full_set.insert(o_item, true);"" which works in 1_53 but the same codes not get the same result with the same input in 1_56. And if i use ""o_full_set -= o_item;"", then it works fine. oPrboundary : (0, 0) (1000, 0), (1000, 1000) (0, 1000) insert one polygon into pinGroup:(500, 500) (600, 500) (600, 600) (500, 600) #include #include #include namespace gtl = boost::polygon; using namespace boost::polygon::operators; //lets construct a 10x10 rectangle shaped polygon typedef gtl::polygon_data Polygon; typedef gtl::polygon_traits::point_type Point; typedef gtl::polygon_set_data PolygonSet; typedef std::vector PolyDataSet; void getOBS(Polygon &oPrboundary, PolyDataSet &pinGroup) { PolygonSet o_full_set; o_full_set.insert(oPrboundary, false); foreach (Polygon o_item, pinGroup) { //o_full_set.insert(o_item, true); // Insert As Hole, which works in 1_53 but not in 1_56 o_full_set -= o_item; // works in 1_53 and 1_56 } PolyDataSet o_OBS_set; o_full_set.get(o_OBS_set); for (int i = 0; i < o_OBS_set.size(); ++i) { Polygon o_poly = o_OBS_set.at(i); std::vector poly_points; poly_points.insert(poly_points.end(), o_poly.begin(), o_poly.end()); foreach(Point o_pos, poly_points) { std::cout << ""("" << o_pos.x() << "", "" << "") ""; } std::cout << std::endl; } } http://www.cnblogs.com/dawnWind/p/boost_003.html " cybfly1@… Boost 1.56.0 11729 Boost interprocess fails to initialize on long-running Windows machines interprocess Boost 1.56.0 To Be Determined Bugs Ion Gaztañaga new 2015-10-15T07:56:10Z 2015-11-17T08:03:20Z "This bug report is similar to [https://svn.boost.org/trac/boost/ticket/9767 #9767], but the effect described there is only part of the problem and the workaround described there may not always be applicable. On Windows Boost Interprocess tries to determine the last boot time by looking at the system event log. This may fail, if the machine has been running a longer time or if it has only been suspended instead of rebooting most of the time. The effect is, that Boost crashes, if the boot time cannot be determined. The workaround may not always be applicable, because a directory has to be hardcoded at compile time, which may not be accessible on all machines, where the resulting program is ever run. So I think that instead of the workaround described in #9767 a real solution should be implemented for this case." martin.apel@… Boost 1.56.0 11805 building boost.python 1.56+ with msvc python USE GITHUB Boost 1.56.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2015-11-19T10:08:35Z 2015-11-21T20:32:55Z "Hello! First, I wanted to thanks you for Boost.Python which is amazing once you succeed to use it ^^ I've tried for at least a week to make it works with MSVC (I tried 2010 and 2015). As stated in https://svn.boost.org/trac/boost/ticket/10799 there is several problems not all easy to find. But the last one is not logged, and I've finally found how to fix it yesterday \o/ Thanks to this post on stackoverflow: http://stackoverflow.com/a/33600073 (thanks a lot to Ralph even if I don't know him) just do the magic, and it works oO to summarize : - start by removing the line 1472 ""toolset.flags msvc.link.dll LINKFLAGS true : /NOENTRY ;"" - replace the lines 1351 to 1356 with {{{ generators.register [ new msvc-linking-generator msvc.link.dll : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB : SHARED_LIB IMPORT_LIB : msvc ] ; }}} This bug occurs in 1.59.0 (version that I use), but is apparently here since 1.56 (said in the post) If this could be fixed in the next version of Boost, that would be great! First bug report on Boost, so don't hesitate to ask for more details if needed." remi.ducceschi@… Boost 1.56.0 11846 to_iso[_extended]_string documentation date_time Boost 1.56.0 To Be Determined Bugs az_sw_dude new 2015-12-15T16:29:18Z 2015-12-15T16:29:18Z "Hi, documentation (I use [http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/posix_time.html#ptime_to_string 1.56.0] but it's also in latest) says that output format of `to_iso_extended_string(ptime)` (and it also applies to `to_iso_string(ptime)`) is `YYYY-MM-DDTHH:MM:SS,fffffffff` (and `YYYYMMDDTHHMMSS,fffffffff`). But my output is for example {{{ namespace pt = boost::posix_time; std::cout << pt::to_iso_extended_string(pt::time_from_string(""2002-01-31 10:00:01.123456"")) << std::endl; // output: 2002-01-31T10:00:01.123456 std::cout << pt::to_iso_string(pt::time_from_string(""2002-01-31 10:00:01.123456"")) << std::endl; // output: 20020131T100001.123456 }}} Is it bug in documentation or did I miss something?" anonymous Boost 1.56.0 12431 BOOST_PP_TUPLE_PUSH_FRONT fails to expand with BOOST_PP_EXPAND preprocessor Boost 1.56.0 To Be Determined Bugs No-Maintainer new 2016-09-01T23:48:43Z 2016-09-20T21:36:26Z "This problem probably affects other preprocessor macros added in the 1.56.0 release, but this is one I bumped into. It is unfortunate that more bugs are appearing in the preprocessor code, since the original source code has been very useful and stable in the past, when it was first added. To compile the attached test2.cpp, use: {{{ g++ -Wall -Wextra -Werror -g -O0 -save-temps -o test2.o -c -fpic test2.cpp }}} My testing has been using version 1.58, though this problem should have existed since 1.56." mjtruog@… Boost 1.56.0 12707 Missing edges in Voronoi Diagram polygon Boost 1.56.0 To Be Determined Bugs Lucanus Simonson new 2016-12-21T18:42:02Z 2016-12-21T18:42:02Z "A couple finite edges are missing from the Voronoi diagram built for the following segments: {{{ LINESTRING(42127548 699996,42127548 10135750) LINESTRING(42127548 10135750,50487352 10135750) LINESTRING(50487352 10135750,50487352 699995) LINESTRING(50487352 699995,51187348 0) LINESTRING(51187348 0,64325952 0) LINESTRING(64325952 0,65025956 699996) LINESTRING(65025956 699996,65025956 10135750) LINESTRING(65025956 10135750,72633752 10135750) LINESTRING(72633752 10135750,72633752 699995) LINESTRING(72633752 699995,73333744 0) LINESTRING(73333744 0,86471456 0) LINESTRING(86471456 0,87171440 699996) LINESTRING(87171440 699996,87171440 10121802) LINESTRING(87171440 10121802,92690455 10323692) LINESTRING(92690455 10323692,93364864 11023201) LINESTRING(93364864 11023201,93364864 15074997) LINESTRING(93364864 15074997,92664848 15074997) LINESTRING(92664848 15074997,92664848 11023201) LINESTRING(92664848 11023201,86471456 10796700) LINESTRING(86471456 10796700,86471456 699996) LINESTRING(86471456 699996,73333744 699996) LINESTRING(73333744 699996,73333744 10835701) LINESTRING(73333744 10835701,64325952 10835701) LINESTRING(64325952 10835701,64325952 699996) LINESTRING(64325952 699996,51187348 699996) LINESTRING(51187348 699996,51187348 10835701) LINESTRING(51187348 10835701,41427552 10835701) LINESTRING(41427552 10835701,41427552 699996) LINESTRING(41427552 699996,28664848 699996) LINESTRING(28664848 699996,28664848 10835701) LINESTRING(28664848 10835701,19280052 10835701) LINESTRING(19280052 10835701,19280052 699996) LINESTRING(19280052 699996,5767387 699996) LINESTRING(5767387 699996,5767387 10796699) LINESTRING(5767387 10796699,699996 11023200) LINESTRING(699996 11023200,699996 15074997) LINESTRING(699996 15074997,0 15074997) LINESTRING(0 15074997,7 11023201) LINESTRING(7 11023201,668738 10323952) LINESTRING(668738 10323952,5067390 10127281) LINESTRING(5067390 10127281,5067390 699996) LINESTRING(5067390 699996,5767387 0) LINESTRING(5767387 0,19285884 5831) LINESTRING(19285884 5831,19980050 699996) LINESTRING(19980050 699996,19980050 10135750) LINESTRING(19980050 10135750,27964852 10135750) LINESTRING(27964852 10135750,27964852 699996) LINESTRING(27964852 699996,28664848 0) LINESTRING(28664848 0,41427551 0) LINESTRING(41427551 0,42127548 699996) }}} I'm attaching a SVG showing the Voronoi diagram. (The input segments are the contours of the grey polygon; the black edges are the finite edges of the diagram.) It might be related to #12067, but a finite edge is missing here instead of an infinite one." alessandro@… Boost 1.56.0 13158 core dump when get parent_path in a new thread filesystem Boost 1.56.0 To Be Determined Bugs Beman Dawes new 2017-08-10T15:59:51Z 2017-08-10T16:08:31Z "I will create a boost thread to delete some outdated files, and there is high possibility the program crash, when the program exit. I got the issue like me, but not determined. I doubt it's reason of the static variable of locale. in groups.google.com/forum/#!topic/boost-list/HOyZxH8JJc4 {{{ time_t del_time = cut_time - log_keep_time_ * 60; std::string del_path(file_path_); boost::thread del_thread(MiLogFile::removeExpiredLog, del_path, del_time); del_thread.detach(); int MiLogFile::removeExpiredLog(std::string file_path, uint32_t expire_time) { boost::filesystem::path log_path(file_path); boost::filesystem::path dir = log_path.parent_path(); }}} {{{ #3 0x00007fad7a9f4393 in __dynamic_cast () from /usr/lib64/libstdc++.so.6 #4 0x00007fad7a9d9fbb in std::codecvt const& std::use_facet >(std::locale const&) () from /usr/lib64/libstdc++.so.6 #5 0x00007fad7ca415ad in boost::filesystem::path::parent_path() const () from ../../../..//ext//boost_1_56_0/stage/lib/libboost_filesystem.so.1.56.0 #6 0x00007fad7cc77ad0 in common::milog::MiLogFile::removeExpiredLog (file_path=..., expire_time=1502292035) at src/milog_file.cpp:361 #7 0x00007fad7cc7b706 in operator(), std::allocator >, unsigned int), boost::_bi::list0> (a=..., f=, this=) at ../../../../..//ext//boost_1_56_0/boost/bind/bind.hpp:303 #8 operator() (this=) at ../../../../..//ext//boost_1_56_0/boost/bind/bind_template.hpp:20 #9 boost::detail::thread_data, boost::_bi::value > > >::run (this=) at ../../../../..//ext//boost_1_56_0/boost/thread/detail/thread.hpp:115 #10 0x00007fad7e3d5e83 in thread_proxy () from ../../../..//ext//boost_1_56_0/stage/lib/libboost_thread.so.1.56.0 #11 0x00007fad79ef5aa1 in start_thread () from /lib64/libpthread.so.0 #12 0x00007fad7a1f3aad in clone () from /lib64/libc.so.6 }}} " jaycelq@… Boost 1.56.0 13399 pthread_create segfaults when program is restarted after some time asio Boost 1.56.0 To Be Determined Bugs chris_kohlhoff new 2018-01-16T08:35:32Z 2018-01-16T09:14:23Z "Hi, We are using boost 1.56 version on CentOS 7.4.1708 (Core) This bug happens from time to time when we are restating application, while simulated multiple clients send message to the server. {{{ [Switching to Thread 0x7fffeb6ac700 (LWP 27894)] processMessageImpl ( data_=""STRING DATA""...) at main.cpp:564 564 if (!client->connected) (gdb) bt full #0 processMessageImpl ( data_=""CONTENT DATA DELETED""...) at main.cpp:564 parseSucc = dataStream = { >> = { >> = { = {_vptr.ios_base = 0x7fffeb6ac700, static boolalpha = std::_S_boolalpha, static dec = std::_S_dec, static fixed = std::_S_fixed, static hex = std::_S_hex, static internal = std::_S_internal, static left = std::_S_left, static oct = std::_S_oct, static right = std::_S_right, static scientific = std::_S_scientific, static showbase = std::_S_showbase, static showpoint = std::_S_showpoint, static showpos = std::_S_showpos, static skipws = std::_S_skipws, static unitbuf = std::_S_unitbuf, static uppercase = std::_S_uppercase, static adjustfield = std::_S_adjustfield, static basefield = std::_S_basefield, static floatfield = std::_S_floatfield, static badbit = std::_S_badbit, static eofbit = std::_S_eofbit, static failbit = std::_S_failbit, static goodbit = std::_S_goodbit, static app = std::_S_app, static ate = std::_S_ate, static binary = std::_S_bin, static in = std::_S_in, static out = std::_S_out, static trunc = std::_S_trunc, static beg = std::_S_beg, static cur = std::_S_cur, static end = std::_S_end, _M_precision = 0, _M_width = 0, _M_flags = 3825362640, _M_exception = (std::_S_badbit | std::_S_eofbit | std::_S_failbit | unknown: 32760), _M_streambuf_state = (unknown: 3825235264), _M_callbacks = 0x6ee9a0, _M_word_zero = { _M_pword = 0x7fffeb6abb30, _M_iword = 7268672}, _M_local_word = {{_M_pword = 0x0, _M_iword = 4528892}, {_M_pword = 0x0, _M_iword = 140737018779704}, {_M_pword = 0x0, _M_iword = 140737351885008}, {_M_pword = 0x6ea448, _M_iword = 140737018597424}, {_M_pword = 0x0, _M_iword = 152}, {_M_pword = 0x100007f27820002, _M_iword = 0}, {_M_pword = 0x0, _M_iword = 140733193388032}, {_M_pword = 0x4517b0 , _M_iword = 0}}, _M_word_size = 7268672, _M_word = 0x7fffe40266d0, _M_ios_locale = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0xffffffff, static _S_classic = 0x7ffff667be00 <(anonymous namespace)::c_locale_impl>, static _S_global = 0x7ffff667be00 <(anonymous namespace)::c_locale_impl>, static _S_categories = 0x7ffff665f900 <__gnu_cxx::category_names>, static _S_once = 2}}, _M_tie = 0x7fffe40ca4c0, _M_fill = 30 '\036', _M_fill_init = false, _M_streambuf = 0x7fffeb6abbe0, _M_ctype = 0x6bf770, _M_num_put = 0x49182c ::assign_to(void (*)(std::string))::stored_vtable+12>, _M_num_get = 0x1}, _vptr.basic_istream = 0x7fffeb6ac700, _M_gcount = 0}, _M_stringbuf = { >> = {_vptr.basic_streambuf = 0x0, _M_in_beg = 0x7fffe40266d0 """", _M_in_cur = 0x7fffe4007540 ""0\321I"", _M_in_end = 0x6ee9a0 ""\200\027"", _M_out_beg = 0x7fffeb6abb30 ""\002"", _M_out_cur = 0x6ee940 ""p\327k"", _M_out_end = 0x0, _M_buf_locale = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0x451afc , static _S_classic = 0x7ffff667be00 <(anonymous namespace)::c_locale_impl>, static _S_global = 0x7ffff667be00 <(anonymous namespace)::c_locale_impl>, static _S_categories = 0x7ffff665f900 <__gnu_cxx::category_names>, static _S_once = 2}}, _M_mode = (unknown: 0), _M_string = """"}} tree = {m_data = , m_children = 0x9} spId = url = """" client = 0x0 v1_9Flag = #1 0x0000000000434c8a in operator()), boost::_bi::list0> (f=@0x7fffeb6abc70: 0x42f490 , a=, this=0x7fffeb6abc78) at /usr/local/include/boost/bind/bind.hpp:253 No locals. #2 operator() (this=0x7fffeb6abc70) at /usr/local/include/boost/bind/bind_template.hpp:20 No locals. #3 asio_handler_invoke), boost::_bi::list1 > > > > (function=...) at /usr/local/include/boost/asio/handler_invoke_hook.hpp:69 No locals. #4 invoke), boost::_bi::list1 > > >, boost::_bi::bind_t), boost::_bi::list1 > > > > (context=..., function=...) at /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37 No locals. #5 boost::asio::detail::completion_handler > > >::do_complete (owner=0x6bf770, base=) at /usr/local/include/boost/asio/detail/completion_handler.hpp:68 h = p = {h = , v = 0x0, p = 0x0} handler = {f_ = 0x42f490 , l_ = {, std::allocator > > >> = {a1_ = { t_ = ""CONTENT DATA DELETED""...}}, }} #6 0x000000000043ca00 in complete (bytes_transferred=, ec=..., owner=..., this=) at /usr/local/include/boost/asio/detail/task_io_service_operation.hpp:38 No locals. #7 do_run_one (ec=..., this_thread=..., lock=..., this=0x6bf770) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:372 task_result = on_exit = {task_io_service_ = 0x6bf770, lock_ = 0x7fffeb6abcc0, this_thread_ = 0x7fffeb6abd30} more_handlers = true #8 boost::asio::detail::task_io_service::run (this=0x6bf770, ec=...) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:149 this_thread = { = { = {}, reusable_memory_ = 0x7fffe40983b0}, private_op_queue = { = {}, front_ = 0x0, back_ = 0x0}, private_outstanding_work = 0} ctx = { = {}, key_ = 0x6bf770, value_ = 0x7fffeb6abd30, next_ = 0x0} lock = { = {}, mutex_ = @0x6bf7a0, locked_ = false} n = 70 #9 0x000000000043ffb5 in boost::asio::io_service::run (this=0x6bd770 ) at /usr/local/include/boost/asio/impl/io_service.ipp:59 ec = {m_val = 0, m_cat = 0x7ffff7dda0d0 } s = #10 0x00007ffff6ed030a in thread_proxy () from /lib64/libboost_thread.so.1.56.0 No symbol table info available. #11 0x00007ffff77bae25 in start_thread (arg=0x7fffeb6ac700) at pthread_create.c:308 __res = pd = 0x7fffeb6ac700 }}} {{{ // Some comments here #0 processMessageImpl ( data_=""{\""CONTENT DATA DELETED""...) at main.cpp:564 #1 0x0000000000434c8a in operator()), boost::_bi::list0> (f=@0x7fffeb6abc70: 0x42f490 , a=, this=0x7fffeb6abc78) at /usr/local/include/boost/bind/bind.hpp:253 #2 operator() (this=0x7fffeb6abc70) at /usr/local/include/boost/bind/bind_template.hpp:20 #3 asio_handler_invoke), boost::_bi::list1 > > > > (function=...) at /usr/local/include/boost/asio/handler_invoke_hook.hpp:69 #4 invoke), boost::_bi::list1 > > >, boost::_bi::bind_t), boost::_b i::list1 > > > > (context=..., function=...) at /usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:37 #5 boost::asio::detail::completion_handler > > >::do_complete (owner=0x6bf770, base=) at /usr/local/include/boost/asio/detail/completion_handler.hpp:68 #6 0x000000000043ca00 in complete (bytes_transferred=, ec=..., owner=..., this=) at /usr/local/include/boost/asio/detail/task_io_service_operation.hpp:38 #7 do_run_one (ec=..., this_thread=..., lock=..., this=0x6bf770) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:372 #8 boost::asio::detail::task_io_service::run (this=0x6bf770, ec=...) at /usr/local/include/boost/asio/detail/impl/task_io_service.ipp:149 #9 0x000000000043ffb5 in boost::asio::io_service::run (this=0x6bd770 ) at /usr/local/include/boost/asio/impl/io_service.ipp:59 #10 0x00007ffff6ed030a in thread_proxy () from /lib64/libboost_thread.so.1.56.0 #11 0x00007ffff77bae25 in start_thread (arg=0x7fffeb6ac700) at pthread_create.c:308 #12 0x00007ffff5b9234d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 }}} " ttomas.mikalauskas@… Boost 1.56.0 10269 Move the library to its own namespace range Boost 1.56.0 To Be Determined Feature Requests Neil Groves new 2014-07-29T07:44:11Z 2014-07-29T07:44:11Z "Boost.Range defines most of its symbols in the boost:: namespace. This introduces conflicts with other Boost libraries, for example: http://thread.gmane.org/gmane.comp.lib.boost.devel/249985/focus=249986 http://lists.boost.org/Archives/boost/2014/07/215581.php Another drawback is that in user's code unqualified function calls with range arguments use boost:: namespace for symbol lookup, which may introduce unexpected results. I propose to move all Boost.Range symbols to a dedicated namespace (e.g. boost::ranges). For backward compatibility the library can import all public interfaces except operators to the boost:: namespace. " Andrey Semashev Boost 1.56.0 10299 Add queue iterators thread Boost 1.56.0 To Be Determined Feature Requests viboes assigned 2014-08-02T15:10:58Z 2014-08-02T15:11:12Z As for http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html#streaming_iterators add queue iterators. viboes Boost 1.56.0 10301 Add shared_queue_front and shared_queue_back thread Boost 1.56.0 To Be Determined Feature Requests viboes assigned 2014-08-02T15:20:52Z 2014-08-02T15:41:52Z Based on http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html#Managed add shared_queue_front and shared_queue_back. viboes Boost 1.56.0 10344 Provide [b,e) constructor for string_ref utility Boost 1.56.0 To Be Determined Feature Requests No-Maintainer new 2014-08-11T21:16:16Z 2014-08-11T21:16:16Z It would be nice to be able to construct a string_ref from a begin/end pointer pair. I suppose I could use string_ref(begin, end-begin) but it just feels a little wonky to have to compute the length all the time. Richard Boost 1.56.0 10371 advise() missing from iostreams mapped_file API iostreams Boost 1.56.0 To Be Determined Feature Requests Jonathan Turkanis new 2014-08-18T18:52:00Z 2014-08-18T18:52:00Z "The memory mapped API in interprocess (http://www.boost.org/doc/libs/1_56_0/boost/interprocess/mapped_region.hpp) provides advise() while the memory mapped API in iostreams (http://www.boost.org/doc/libs/1_56_0/libs/iostreams/doc/classes/mapped_file.html) does not. The iostreams API is easier to use (allows creating and sizing during construction), but is missing the key feature that would allow kernel optimization of random access versus serial." shao.lo@… Boost 1.56.0 10393 Add begin/end specialization for optional type optional Boost 1.56.0 Boost 1.57.0 Feature Requests Fernando Cacciola new 2014-08-22T12:26:04Z 2015-04-13T17:00:38Z "optional could be used in many places as if it was just T, but, since C++ does not apply two levels of constructions one could not use this natural looking construct for optional containers: if (opt_container) { for (auto& element : opt_container) { ... } } Simple specialization of begin()/end() functions could solve this problem: namespace std { template inline auto begin(const boost::optional& opt) -> decltype(opt.get().begin()) { return opt.get().begin(); } template inline auto begin(boost::optional& opt) -> decltype(opt.get().begin()) { return opt.get().begin(); } template inline auto end(const boost::optional& opt) -> decltype(opt.get().end()) { return opt.get().end(); } template inline auto end(boost::optional& opt) -> decltype(opt.get().end()) { return opt.get().end(); } } " khimru@… Boost 1.56.0 10424 future/shared_future::then() in case of continuation return an invalid future thread Boost 1.56.0 To Be Determined Feature Requests viboes assigned 2014-08-30T08:50:59Z 2014-09-28T22:40:41Z "Add this behavior to future/shared_future::then() - In case of implicit unwrapping, the validity of the `future` returned from `then` cannot be established until after the completion of the functor passed into `then`. In such case, the resulting `future` becomes ready with an exception of type `future_error`, with an error code of `future_errc::broken_promise`. " viboes Boost 1.56.0 10550 Implicit unwrapping from then() calls thread Boost 1.56.0 To Be Determined Feature Requests viboes assigned 2014-09-27T16:00:45Z 2014-09-28T22:41:28Z Follows the Fundamental TS wording for ::then() function. viboes Boost 1.56.0 10551 Make futures returned by then()/when_all/when_any don't block. thread Boost 1.56.0 To Be Determined Feature Requests viboes assigned 2014-09-27T16:25:20Z 2014-09-27T16:26:27Z " Follows the Fundamental TS wording for ::then()/ when_all/when_any functions. " viboes Boost 1.56.0 10675 support pruning/stopping bfs/dfs traversing graph Boost 1.56.0 To Be Determined Feature Requests Jeremiah Willcock new 2014-10-19T02:09:26Z 2014-10-19T02:09:26Z "In some cases, BFS/DFS traversal is required only in the local neighborhood of a node (i.e. I would like to visit nodes up to a defined distance, and this distance may have an implementation-dependent meaning) or to only traverse certain portions of the graph (i.e. to skip certain edges/target nodes based on some property found during traversal). Currently, BFS/DFS do not allow to do this. One way would be to gain access to the underlying color map but the functions take the map by copy. Another (cleaner, IMHO) way, would be to allow the events to return true/false which could allow the BFS/DFS algorithm to skip the target node/edge or not." phreakuencies@… Boost 1.56.0 10710 IGMPv3 asio Boost 1.56.0 To Be Determined Feature Requests chris_kohlhoff new 2014-10-28T19:30:12Z 2014-10-28T19:30:12Z "Hi, any plans to include IGMPv3 multicasting (i.e. ability to specify source address in IGMP report)? This would be very useful for modern multicast applications regards michal" michal.vanco@… Boost 1.56.0 10347 Boost.ProgramOptions without RTTI program_options Boost 1.56.0 To Be Determined Patches Vladimir Prus new 2014-08-12T12:19:22Z 2015-03-04T05:54:06Z Program options utilizes typeid in value semantic. This is a patch for compiling it without RTTI on. Minmin Gong Boost 1.56.0 10374 Build error on cross compiling for QNX 6.6.0 x86 Building Boost Boost 1.56.0 To Be Determined Support Requests new 2014-08-19T06:05:42Z 2014-09-26T21:37:18Z "Hello, I'm trying to build Boost for QNX. When cross compiling Boost 1.56 for QNX 6.6.0 x86 target, errors occured. I found similar issue(http://svn.boost.org/trac/boost/ticket/9811) and its state is fixed in 1.56 but errors of that issue and more errors still exist. Is this issue still exist or something I did is wrong? I'm working on Ubuntu 12.04 32bit x86 with QNX 6.6.0 SDP installed and for QNX 6.6.0 x86. QNX uses Dinkum standard libraries(libcpp). If I compile with option cxxflags=-Vgcc_ntox86_gpp for using gnu standard libraries(libstdc++) then it compiled successfully but that's not a solution for me because other libraries are provided built with QNX's default Dinkum libraries. bootstrap and b2 log file attached. Thanks. " hkjin81@… Boost 1.56.0 10448 MSVC bug with default argument passing - a workaround is required filesystem Boost 1.56.0 To Be Determined Support Requests Beman Dawes new 2014-09-03T12:50:26Z 2014-09-10T12:30:30Z "MSVC 2010-2013 for x64 may pass default values incorrectly. I met this bug with such innocent code: {{{ std::wcout << boost::filesystem::path(L""ABC""); }}} and got hieroglyphs around ABC instead of quotation marks. To workaround the bug: just add '''(Char)''' prior to default values in the declaration of boost::io::detail::quote (boost/io/detail/quoted_manip.hpp) {{{ // manipulator for const std::basic_string& template detail::quoted_proxy const &, Char> quoted(const std::basic_string& s, Char escape=(Char)'\\', Char delim=(Char)'\""'); // manipulator for non-const std::basic_string& template detail::quoted_proxy &, Char> quoted(std::basic_string& s, Char escape=(Char)'\\', Char delim=(Char)'\""'); // manipulator for const C-string* template detail::quoted_proxy quoted(const Char* s, Char escape=(Char)'\\', Char delim=(Char)'\""'); }}} I did not scan other sources with similar problem; could you please check them yourselves? P.S. GODDAMN! Your tracker disallows me to tell you the detailed description of the MSVC bug on its tracker. It treats the URL as spam. Please combine the URL from these pieces: {{{connect.microsoft.com /VisualStudio /feedbackdetail /view / 962812}}} " merkin@… Boost 1.56.0 10225 Boost iostreams should use BOOST_TRY/CATCH instead of std try/catch. iostreams Boost 1.56.0 To Be Determined Tasks Jonathan Turkanis new 2014-07-22T11:38:29Z 2014-07-22T11:38:29Z In order to reduce code size (this is very significant for embedded systems), Boost iostreams should support BOOST_EXCEPTION_DISABLE and BOOST_NO_RTTI configuration macros. Denys Yurchenko Boost 1.57.0 10698 noexcept(true) for ~noncopyable? core Boost 1.57.0 To Be Determined Bugs Peter Dimov new 2014-10-25T14:38:44Z 2017-07-08T20:06:27Z "Shouldn't ~noncopyable be noexcept? I'm seeing this error: {{{ class Cconnection : public Cclient, boost::noncopyable connection.h:5:7: error: looser throw specifier for ‘virtual Cconnection::~Cconnection()’ In file included from connection.h:3:0, from connection.cpp:2: client.h:10:10: error: overriding ‘virtual Cclient::~Cclient() noexcept (true)’ }}}" olafvdspek@… Boost 1.57.0 10722 msm gives compilation errors when using state machine constructors with arguments msm Boost 1.57.0 Bugs Christophe Henry reopened 2014-10-30T19:51:16Z 2014-11-05T08:07:20Z "This code compiles fine with boost 1.55.0 but fails on 1.56.0. Checked on MSVC2012 and gcc. {{{ #include // back-end #include #include // front-end #include #include namespace msm = boost::msm; namespace mpl = boost::mpl; using namespace msm::front; struct Substate : public msm::front::state<> { }; struct State_ : public msm::front::state_machine_def { State_(int) {} State_() {} struct transition_table : mpl::vector< // Start Event Next Action Guard // +------------+-------------+------------+-----------+------------+ Row < Substate , none , none , none , none > > {}; typedef Substate initial_state; }; typedef msm::back::state_machine State; // machine itself struct TestFSM_ : public msm::front::state_machine_def { TestFSM_(int) {} TestFSM_() {} struct transition_table : mpl::vector< // Start Event Next Action Guard // +------------+--------------+------------+-----------+-----------+ Row < State , none , none , none , none > > {}; typedef State initial_state; }; typedef msm::back::state_machine TestFSM; void start() { TestFSM(msm::back::states_ << State(10), 10); } }}} Error output from MSVC2012 looks like this: {{{ 1> test.cpp 1>c:\test\boost\boost\core\enable_if.hpp(36): error C2039: 'value' : is not a member of 'boost::is_convertible' 1> with 1> [ 1> From=boost::fusion::vector1>, 1> To=boost::msm::back::state_machine 1> ] 1> c:\test\boost\boost\type_traits\is_convertible.hpp(486) : see reference to class template instantiation 'boost::enable_if' being compiled 1> with 1> [ 1> Cond=boost::is_convertible>,boost::msm::back::state_machine>, 1> T=void 1> ] 1> c:\test\boost\boost\core\enable_if.hpp(59) : see reference to class template instantiation 'boost::is_convertible' being compiled 1> with 1> [ 1> From=boost::fusion::vector1>, 1> To=boost::msm::back::state_machine 1> ] 1> c:\test\boost\boost\fusion\container\vector\convert.hpp(46) : see reference to class template instantiation 'boost::disable_if' being compiled 1> with 1> [ 1> Cond=boost::is_convertible>,boost::msm::back::state_machine>, 1> T=void 1> ] 1> c:\test\boost\boost\msm\back\state_machine.hpp(1564) : see reference to function template instantiation 'boost::fusion::vector1 boost::fusion::as_vector>(const Sequence &)' being compiled 1> with 1> [ 1> T0=boost::msm::back::state_machine, 1> Car=boost::msm::back::state_machine, 1> Cdr=boost::fusion::nil_, 1> Sequence=boost::fusion::cons,boost::fusion::nil_> 1> ] 1> c:\test\boost\boost\msm\back\state_machine.hpp(1655) : see reference to function template instantiation 'void boost::msm::back::state_machine::set_states(const Expr &)' being compiled 1> with 1> [ 1> A0=TestFSM_, 1> Expr=boost::msm::msm_terminal &,boost::msm::msm_terminal &>,0>>>,2>> 1> ] 1> c:\test\boost\boost\msm\back\state_machine.hpp(1655) : see reference to function template instantiation 'void boost::msm::back::state_machine::set_states(const Expr &)' being compiled 1> with 1> [ 1> A0=TestFSM_, 1> Expr=boost::msm::msm_terminal &,boost::msm::msm_terminal &>,0>>>,2>> 1> ] 1> c:\test\ffc\audioextractor\dataanalyzer\engines\test.cpp(47) : see reference to function template instantiation 'boost::msm::back::state_machine::state_machine,int>(const boost::msm::msm_terminal &,ARG0,void *)' being compiled 1> with 1> [ 1> A0=TestFSM_, 1> Expr=boost::proto::exprns_::basic_expr &,boost::msm::msm_terminal &>,0>>>,2>, 1> ARG0=int 1> ] 1> c:\test\ffc\audioextractor\dataanalyzer\engines\test.cpp(47) : see reference to function template instantiation 'boost::msm::back::state_machine::state_machine,int>(const boost::msm::msm_terminal &,ARG0,void *)' being compiled 1> with 1> [ 1> A0=TestFSM_, 1> Expr=boost::proto::exprns_::basic_expr &,boost::msm::msm_terminal &>,0>>>,2>, 1> ARG0=int 1> ] 1>c:\test\boost\boost\core\enable_if.hpp(36): error C2065: 'value' : undeclared identifier 1>c:\test\boost\boost\core\enable_if.hpp(36): error C2975: 'B' : invalid template argument for 'boost::enable_if_c', expected compile-time constant expression 1> c:\test\boost\boost\core\enable_if.hpp(27) : see declaration of 'B' }}}" Marek Glos Boost 1.57.0 10750 bad interaction between ublas, float128 and std::complex uBLAS Boost 1.57.0 To Be Determined Bugs Gunter new 2014-11-04T23:15:58Z 2014-11-04T23:22:06Z "The following code fails to compile: {{{ #include #include using boost::multiprecision::float128; int main () { boost::numeric::ublas::matrix > A(1,1); lu_factorize(A); } }}} (on OSX 10.10 using g++-4.9 -fext-numeric-literals -lquadmath), I am getting a huge complaint about missing `operator<` at `numeric/ublas/detail/matrix_assign.hpp:33:35`. Things work perfectly with a matrix of float128, or a matrix of std::complex. And other operations work with std::complex. Is std::complex supposed to work?" vbeffara@… Boost 1.57.0 10753 interprocess::winapi::c_heap_deleter::realloc_mem leaks memory interprocess Boost 1.57.0 To Be Determined Bugs Ion Gaztañaga new 2014-11-05T15:44:31Z 2014-11-05T15:44:31Z "Hi, We believe that there is a memory leak in boost::interprocess::winapi::c_heap_deleter::realloc_mem boost/interprocess/detail/win32_api.hpp:1790-1797 {{{ void realloc_mem(std::size_t num_bytes) { void *buf = ::realloc(m_buf, num_bytes); if(!buf){ free(m_buf); m_buf = 0; } } }}} should probably be {{{ void realloc_mem(std::size_t num_bytes) { void *buf = ::realloc(m_buf, num_bytes); if(!buf){ free(m_buf); m_buf = 0; } else { m_buf = buf; } } }}} " Tomasz Wilk Boost 1.57.0 10762 fixed_matrix &operator = (matrix m) wrong parameter numeric Boost 1.57.0 To Be Determined Bugs Douglas Gregor new 2014-11-06T12:39:28Z 2015-05-08T20:20:32Z "Software was not tested! Error in C:\Boost\include\boost-1_57\boost\numeric\ublas\matrix.hpp line 1387 fixed_matrix &operator = (matrix m) {.. is wrong. Correct is: fixed_matrix &operator = (fixed_matrix m) {" anonymous Boost 1.57.0 10769 "iterator_adaptor does not properly inherit ""pointer"" typedef from the base iterator" iterator Boost 1.57.0 To Be Determined Bugs jeffrey.hellrung new 2014-11-07T20:03:37Z 2014-11-07T20:22:09Z "I'm trying to define a `Derived_Iterator` class using a `Base_Iterator` class and the glue class `iterator_adaptor< Derived_Class, Base_Class, ...>` (as base of `Derived_Iterator`). In my use case, neither pointers nor references are plain: {{{ Base_Iterator::pointer != Base_Iterator::value_type* Base_Iterator::reference != Base_Iterator::value_type& }}} I found 2 possibly related problems, which I think are bugs: 1. The typedef `iterator_adaptor<>::pointer` is incorrect. Specifically, it produces a plain pointer, when I expect it to produce `Base_Iterator::pointer`. 2. There is something wrong with `iterator_adaptor<>::operator->()`. I would expect `Derived_Iterator` to behave exactly like `Base_Iterator`. So, if I don't explicitly define `Derived_Iterator::operator->()`, I would expect the version inherited from `iterator_adaptor<>` to do something similar to: {{{ Base_Iterator operator->() const { return this->base(); } }}} But this doesn't happen. If I put in this definition explicitly in `Derived_Iterator`, then the code works." Matei David Boost 1.57.0 10772 boost::geometry::within() does not recognize empty boxes geometry Boost 1.57.0 To Be Determined Bugs awulkiew assigned 2014-11-08T19:04:31Z 2015-09-07T12:54:36Z "If boost::geometry::within() is used to check whether an empty box (i.e. a point) is within another box, false is always returned. This is not the correct behavior because: 1. OGC defines: a.Within(b) ⇔ (a∩b=a) ∧ (I(a)∩E(b)=∅) which holds true. The intersection of an empty box ''a'' and a surrounding box ''b'' yields ''a''. Since ''a'' has no interior, I(a)=∅, thus the second condition is also true. 2. Empty boxes should be treated as points. When using a point model instead of an empty box, the check returns the correct result as expected. See also the following complete minimal code (it includes also other geometry algorithms that are computed consistently for points and empty boxes): {{{ #include #include #include #include #include #include #include #include // needed for within() -- is this intended? #include namespace bg = boost::geometry; typedef bg::model::d2::point_xy Point; typedef bg::model::box Box; int main() { Point point(3, 4); Box pointAsBox; bg::convert(point, pointAsBox); Box surrounding; surrounding.min_corner() = Point(2, 2); surrounding.max_corner() = Point(5, 5); std::cout << "" Point Box"" << std::endl; std::cout << ""within: "" << bg::within(point, surrounding) << "" "" << bg::within(pointAsBox, surrounding) << ""\n""; // 1 0 <- std::cout << ""within (self): "" << bg::within(point, point) << "" "" << bg::within(pointAsBox, pointAsBox) << ""\n""; // 1 0 <- std::cout << ""covered_by: "" << bg::covered_by(point, surrounding) << "" "" << bg::covered_by(pointAsBox, surrounding) << ""\n""; // 1 1 std::cout << ""intersects: "" << bg::intersects(point, surrounding) << "" "" << bg::intersects(pointAsBox, surrounding) << ""\n""; // 1 1 std::cout << ""disjoint: "" << bg::disjoint(point, surrounding) << "" "" << bg::disjoint(pointAsBox, surrounding) << ""\n""; // 0 0 std::cout << std::endl; } }}} The implementation looks as follows (boost/geometry/strategies/cartesian/box_in_box.hpp, line 32): {{{ struct box_within_range { template static inline bool apply(BoxContainedValue const& bed_min , BoxContainedValue const& bed_max , BoxContainingValue const& bing_min , BoxContainingValue const& bing_max) { return bing_min <= bed_min && bed_max <= bing_max // contained in containing && bed_min < bed_max; // interiors overlap } }; }}} The problem is the second line, which uses < and thus returns false if the coordinates are equal. I'm not sure what the intention is (despite the comment), and whether it is needed at all. The documentation about box model and concept doesn't state whether max_corner's coordinates must be component-wise greater or equal than min_corner's. If so, it seems like valid boxes are a precondition to within() and this line could be removed." bromeon@… Boost 1.57.0 10782 bootstrap.bat fails with recursion exceeding stack limits on win32 Building Boost Boost 1.57.0 To Be Determined Bugs new 2014-11-11T16:06:06Z 2015-09-22T10:20:29Z "{{{ D:\upload\boost_1_57_0>bootstrap.bat Building Boost.Build engine ****** B A T C H R E C U R S I O N exceeds STACK limits ****** Recursion Count=1240, Stack Usage=90 percent ****** B A T C H PROCESSING IS A B O R T E D ****** D:\upload\boost_1_57_0\tools\build\src\engine> }}} Platform is 32bit Windows XP. This is not the same bug as https://svn.boost.org/trac/boost/ticket/10330" slowriot Boost 1.57.0 10785 Lambda assignment fails to compile in 1.57.0 lambda Boost 1.57.0 To Be Determined Bugs No-Maintainer new 2014-11-12T09:50:58Z 2015-04-20T12:11:28Z "The following code used to work. From Boost 1.57.0 it does not compile with Clang 3.4, 3.5, 3.6 and Apple Clang. {{{ #!c++ #include #include #include #include int add(int a, int b) { return a+b; } int main() { boost::function fuse = boost::lambda::bind(&add, boost::lambda::_1, -boost::lambda::_2); int a = fuse(3,6); std::cout << a << std::endl; } }}} The compiler error reads: {{{ In file included from boost_lambda.cpp:3: In file included from /Users/dolfim/src/boost_1_57_0/boost/lambda/lambda.hpp:14: In file included from /Users/dolfim/src/boost_1_57_0/boost/lambda/core.hpp:46: /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/lambda_traits.hpp:256:58: error: cannot form a reference to 'void' typename detail::IF::value, T&, const T>::RET ^ /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/operators.hpp:148:98: note: in instantiation of template class 'boost::lambda::const_copy_argument' requested here BOOST_LAMBDA_BE2(BOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action, const A, const B, const_copy_argument) ^ /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/operators.hpp:63:20: note: expanded from macro 'BOOST_LAMBDA_BE2' tuple::type, lambda_functor > \ ^ /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/operators.hpp:148:18: note: while substituting deduced template arguments into function template 'operator,' [with A = void, Arg = boost::lambda::lambda_functor_base >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >] BOOST_LAMBDA_BE2(BOOST_LAMBDA_COMMA_OPERATOR_NAME, other_action, const A, const B, const_copy_argument) ^ /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/operators.hpp:145:42: note: expanded from macro 'BOOST_LAMBDA_COMMA_OPERATOR_NAME' #define BOOST_LAMBDA_COMMA_OPERATOR_NAME operator, ^ /Users/dolfim/src/boost_1_57_0/boost/lambda/detail/operators.hpp:65:78: note: expanded from macro 'BOOST_LAMBDA_BE2' > \ ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/is_copy_constructible.hpp:104:24: note: in instantiation of template class 'boost::detail::is_copy_constructible_impl2 >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here boost::detail::is_copy_constructible_impl2< ^ /Users/dolfim/src/boost_1_57_0/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT' # define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/is_copy_constructible.hpp:113:71: note: in instantiation of template class 'boost::detail::is_copy_constructible_impl >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_copy_constructible,T,::boost::detail::is_copy_constructible_impl::value) ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/detail/bool_trait_def.hpp:61:30: note: expanded from macro 'BOOST_TT_AUX_BOOL_TRAIT_DEF1' BOOST_TT_AUX_BOOL_C_BASE(C) \ ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/detail/bool_trait_def.hpp:55:81: note: expanded from macro 'BOOST_TT_AUX_BOOL_C_BASE' # define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/has_trivial_copy.hpp:36:76: note: in instantiation of template class 'boost::is_copy_constructible >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_COPY(T) && boost::is_copy_constructible::value); ^ /Users/dolfim/src/boost_1_57_0/boost/config/suffix.hpp:394:72: note: expanded from macro 'BOOST_STATIC_CONSTANT' # define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/has_trivial_copy.hpp:62:78: note: in instantiation of template class 'boost::detail::has_trivial_copy_impl >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::boost::detail::has_trivial_copy_impl::value) ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/detail/bool_trait_def.hpp:61:30: note: expanded from macro 'BOOST_TT_AUX_BOOL_TRAIT_DEF1' BOOST_TT_AUX_BOOL_C_BASE(C) \ ^ /Users/dolfim/src/boost_1_57_0/boost/type_traits/detail/bool_trait_def.hpp:55:81: note: expanded from macro 'BOOST_TT_AUX_BOOL_C_BASE' # define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant ^ /Users/dolfim/src/boost_1_57_0/boost/function/function_template.hpp:939:20: note: in instantiation of template class 'boost::has_trivial_copy_constructor >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here if (boost::has_trivial_copy_constructor::value && ^ /Users/dolfim/src/boost_1_57_0/boost/function/function_template.hpp:722:13: note: in instantiation of function template specialization 'boost::function2::assign_to >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here this->assign_to(f); ^ /Users/dolfim/src/boost_1_57_0/boost/function/function_template.hpp:1071:5: note: in instantiation of function template specialization 'boost::function2::function2 >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here base_type(f) ^ boost_lambda.cpp:14:44: note: in instantiation of function template specialization 'boost::function::function >, boost::tuples::tuple >, const boost::lambda::lambda_functor, boost::tuples::tuple >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > > >' requested here boost::function fuse = boost::lambda::bind(&add, boost::lambda::_1, -boost::lambda::_2); ^ 1 error generated. }}} " dolfim@… Boost 1.57.0 10787 MPI wrapper autodetection fails for SGI mpi Boost 1.57.0 To Be Determined Bugs Matthias Troyer new 2014-11-12T16:05:51Z 2014-11-14T14:59:58Z "Detection for mpi wrapper compiler fails when using SGI's mpi, the only command printing compile info is -show which fails because boost assumes -show is for mpich which also has -compile_info and -link_info but sgi's doesn't: mpicxx -show g++ -I/nasa/sgi/mpt/2.11r13/include -L/nasa/sgi/mpt/2.11r13/lib -lmpi++ -lmpi mpirun -v MPT: libxmpi.so 'SGI MPT 2.11 10/16/14 05:50:05'" ilja.j.honkonen@… Boost 1.57.0 10789 unexpected behaviour with boost range join on rvalue range Boost 1.57.0 To Be Determined Bugs Neil Groves new 2014-11-13T07:05:05Z 2014-11-13T07:11:20Z "I'm trying to append one element to a range, and iterate over the resulting compound range. When the rhs of the `join` is an lvalue, everything seems ok. However, when the rhs of the `join` is an rvalue, I'm seeing something unexpected. Specifically, when such a joined range is accessed directly by a `for(auto e : range)` loop, or when it is saved in a variable using `auto`, then iterated over, the singleton in the second container is not produced correctly. If however the joined range is passed by reference (other than non-const lvalue, obviously), then iterated over, the result is correct." Matei David Boost 1.57.0 10791 wiki is horribly stale trac / subversion Boost 1.57.0 To Be Determined Bugs Douglas Gregor new 2014-11-14T04:51:44Z 2014-11-14T04:51:44Z "https://svn.boost.org/trac/boost/wiki talks as if the transition to github hasn't been made, still talks about subversion, etc." Richard Boost 1.57.0 10795 Include asio/ssl/context.hpp reports two leaks on Windows asio Boost 1.57.0 To Be Determined Bugs chris_kohlhoff new 2014-11-16T02:48:37Z 2016-05-06T21:33:06Z "Simply including the header file causes the Microsoft Visual Studio debug runtime (MSVCRTD library) to report two 32 byte leaks on exit. It is not clear if these are from asio or from OpenSSL. This sample program compiled for 64-bit Windows using Visual Studio 2013 demonstrates the problem: {{{ #include #include int main() { int flags = _CrtSetDbgFlag (_CRTDBG_REPORT_FLAG); flags |= _CRTDBG_LEAK_CHECK_DF; _CrtSetDbgFlag (flags); } }}} This report is shown on exit, when main returns: {{{ Detected memory leaks! Dumping objects -> {716} normal block at 0x00000000003953F0, 32 bytes long. Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {715} normal block at 0x00000000003952D0, 32 bytes long. Data: < S9 > 00 00 00 00 CD CD CD CD F0 53 39 00 00 00 00 00 Object dump complete. }}} " Vinnie Falco Boost 1.57.0 10799 Several problems building the example/tutorial project python USE GITHUB Boost 1.57.0 To Be Determined Bugs Ralf W. Grosse-Kunstleve new 2014-11-17T22:21:29Z 2015-04-14T20:54:37Z "-- There are a number of problems reported here, so you may want to break this down into pieces for separate tracking. However, I would consider this item to be fixed only when I can build the example/tutorial and it works. I had a hard time building the example/tutorial project. Some of this is, I believe, due to bugs in the distribution, and some is probably my lack of understanding. Some of this I posted to the Boost interest group before I could join this (Python C++) SIG, hoping it would get forwarded on here, so there may be a duplication. 1. Calling bjam in the example/tutorial project failed to even start up the build system. This was because the example/bootstrap.jam pointed to the wrong path for the build system root. Instead of ../../../tools/build/v2, it should be ../../../tools/build/src/kernel. When I changed this, bjam now got past the build system startup. 2. Building the project not only compiles hello.cpp, but it also builds a private copy of the Boost/Python library. So I needed to supply the properties needed to correctly build this library (i.e., link=shared, address-mode=64). Of course, I needed to supply those same properties anyway as part of creating the extension. There's probably a way to change something so that the extension uses the library built in the Boost.Python's own project, or if I have obtained the libraries without having to build them, it would use these. I don't know if you intended to have the tutorial example make its own copies, but it seems a waste of resources to do so. 3. The link for debug mode failed, saying that the .pdb file was in the wrong format (LNK1207). This is a bug, due to an option in the link command '/IMPORTLIB:...hello_ext.pdb'. So the linker is creating the .pdb file as an import library, then complaining that it's not a valid pdb file. I changed '.pdb' to '.lib'. I could also have removed this option entirely, since hello_ext.pyd doesn't have anything to export anyway. 4. Before figuring out that the link was the problem, I changed the /Z7 argument to /Zi in the compile command for hello.cpp. I don't know if this was necessary, or if it was necessary to leave it in place. For now, I just wanted to get it to build. Without /Z7, the debug symbols go into example/tutorial/vc120.pdb. I don't know if the linker found these or not. When I try stepping into the extension, I'll know for sure. Microsoft prefers that .pdb files be used for debug symbols rather than embedding them in the .obj files, so this might be the only real reason to make the change. 5. The link for both release mode failed with two undefined symbols, __imp_DecodePointer and __imp_EncodePointer, which are in kernel32.lib. I tried adding kernel32.lib to the link's inputs. But then it warned that there could be static constructors/destructors not getting called. After much research on this topic, I found that the source of the problem was the /NOENTRY argument in the link command, which has the consequence that the automatic CRT initialization of the DLL doesn't occur. So I remove the /NOENTRY and got not warnings, and I didn't need to add kernerl32.lib either. 6. A minor point. The MACHINE:X64 is redundant. The linker knows it's X64 because of the architecture of the input files and libraries. Nothing wrong with it being there, but it's just clutter in the code. 7. Now bjam was successful in building whatever it wanted to build. It said that hello.test passed. Sounds great, I thought. But I then went into Python and tried 'import hello_ext' and that failed. So I have an issue with the test program passing, while the extension didn't actually work. 8. The problem was that bjam didn't put the hello_ext.pyd file in my Python's lib/site-packages folder. It built the .pyd and .pdb files in the example/tutorial/bin/... staging area, and copied (ONLY) the .pyd file to example/tutorial. So not only did the .pyd file get put in the wrong place, but the .pdb was left out. If I am going to debug my extension (such as with Visual Studio's Python Tools), the .pdb file also needs to be in the lib/site-packages folder. Without the .pdb file, the PTVS debugger will not set breakpoints or step into the extension code. 9. I spent another few hours figuring out why the import statement in Python didn't work. Python could not load the hello_ext.pyd because it has references to BOOST_PYTHON_....DLL. If I run Python from the example/tutorial directory itself, it works because this DLL had been build there. That explains why the hello.test passed (as bjam ran it from that same directory). So to fix this problem, I copied the DLL (and its accompanying PDB) from the place where it was built into a directory in my PATH. It would also work to have these files placed in the Python lib/site-packages folder, since the main DLL's folder is one of the places that Windows looks for imported DLLs. To summarize, the fixes I made in order to build the example and use it in Python were: * Change the build system path in examples/bootstrap.jam. * Change the /IMPORTLIB:....pdb to ....lib in the link command. I could have removed it altogether. * Remove /NOENTRY from the link command. * Manually copy the example/tutorial/bin/.../hello_ext.(pyd,pdb) files to Python's lib/site-packages. * Manually copy the Boost.Python DLL and PDB files to a location in my %PATH% (or to lib/site-packages) These last two steps are not necessary if I run Python from the example/tutorial directory itself, as Python will find the PYD there and it will find the Boost.Python DLL there as well. So if the other problems are fixed, then the tutorial would be telling the truth that the extension can be imported and works correctly PROVIDED that you don't change directories after doing the build. Maybe there's something later in the tutorial about modifying the jamfile to specify where you want the files installed so that Python can import them no matter what directory Python was called from. If this is the case, that's OK with me, as long as the tutorial says '''clearly''' where you first build the example that at this point, Python '''must be run from the example/tutorial directory'''. This cost me about a whole day's time, and I'm pretty resourceful. And I actually want to build my own extensions in VS instead of bjam, linking to the Boost.Python DLL. I started of by trying this, and my extension crashed. So that's why I went about building the example with bjam, to at least see what a successful deployment looked like. I now understand that my original attempt crashed because linking to the Boost.Python DLL is not enough to be sure that the target PYD will load. If I had understood that in the first place, I would have taken care to put the Boost.Python DLL on my PATH, and not tried building the example in the manner specified in the tutorial. But then I would not have discovered those build bugs, and they would have gone unreported. I suppose that a lot of people would have given up building the tutorial example and then given up on Boost.Python altogether. One more comment. You should make sure, as part of the QA process for releasing Boost that you be sure that all the examples can be built and work properly, particularly on Windows with all the MSVC toolsets. Item (1) would apply to all platforms, so I would guess that the example/tutorial was not tested at all. Michael Rolle" m@… Boost 1.57.0 10807 Single-letter short-cuts in Interprocess index are mostly broken interprocess Boost 1.57.0 To Be Determined Bugs Ion Gaztañaga new 2014-11-20T10:31:51Z 2015-02-13T18:36:30Z "Very similar to ticket #7899. In , many of the single-letter links point at some other boost module's documentation ({{{circular_buffer}}}, {{{container}}}). " Stefan Ring Boost 1.57.0 10813 Boost headers files incorrect permissions parameter Boost 1.57.0 To Be Determined Bugs Marshall Clow new 2014-11-23T09:04:29Z 2015-02-13T18:31:57Z "I recently updated Boost 1.57, I noticed that a few header files ""parameter.hpp"" and some of those in the ""parameter"" directory has permission 755 instead of normal 644. Why make these normal header files executable?" zhouyan@… Boost 1.57.0 10814 Boost asio socket keeps established connection forever even after endpoint is closed. asio Boost 1.57.0 To Be Determined Bugs chris_kohlhoff new 2014-11-24T20:40:33Z 2014-11-24T20:40:33Z "Context: Server side: Accept socket loop blocking read from accepted socket Client side: Connect loop blocking write to connected socket Sporadically the client endpoint is ended but the server is not notified of that event. After that, the client can connect again to the server (even tho gdb says the thread is on recv) but the server never returns from the blocking read due to, probably, the new endpoint sending data doesn't match the last one: Server side: {{{ Local Address Foreign Address 192.168.1.1:1234 192.168.1.2:50000 }}} Client side after connection was dropped: {{{ Local Address Foreign Address 192.168.1.2:50001 192.168.1.2:1234 }}} As I said, the issue is sporadic but I can reproduce the same blocking behaviour as follows: 1. Run the server and client normally. Client sends data and server reads it. 2. Enable a traffic filter with a firewall blocking/dropping packages at the client. 3. After step 2, I can kill the client process and the server will never realize that the client is no longer there, so it will block at recv forever. Regards, Iván" Iván Boost 1.57.0 10817 missing argument global-setup Building Boost Boost 1.57.0 To Be Determined Bugs new 2014-11-25T22:30:30Z 2014-12-11T10:28:53Z "I was attempting to build boost on Win 8.1 with just the MS VC++ Compiler for Python (microsoft.com/en-us/download/details.aspx?id=44266) so no Visual Studio installed. I encountered the error below when running `b2`. Modifying project-config.jam to have the line `using msvc : : : ;` allow the build to continue to completion. {{{ c:\boost_1_57_0>b2 --debug-configuration notice: found boost-build.jam at C:/boost_1_57_0/boost-build.jam notice: loading Boost.Build from C:/boost_1_57_0/tools/build/src notice: Searching 'C:\Windows' 'C:\Users\IEUser' 'C:\Users\IEUser' 'C:\boost_1_57_0\tools/build/src' 'C:\boost_1_57_0' ' C:/boost_1_57_0/tools/build/src/kernel' 'C:/boost_1_57_0/tools/build/src/util' 'C:/boost_1_57_0/tools/build/src/build' ' C:/boost_1_57_0/tools/build/src/tools' 'C:/boost_1_57_0/tools/build/src/contrib' 'C:/boost_1_57_0/tools/build/src/.' for site-config configuration file 'site-config.jam'. notice: Configuration file 'site-config.jam' not found in 'C:\Windows' 'C:\Users\IEUser' 'C:\Users\IEUser' 'C:\boost_1_5 7_0\tools/build/src' 'C:\boost_1_57_0' 'C:/boost_1_57_0/tools/build/src/kernel' 'C:/boost_1_57_0/tools/build/src/util' ' C:/boost_1_57_0/tools/build/src/build' 'C:/boost_1_57_0/tools/build/src/tools' 'C:/boost_1_57_0/tools/build/src/contrib' 'C:/boost_1_57_0/tools/build/src/.'. notice: Searching 'C:\Users\IEUser' 'C:\Users\IEUser' 'C:\boost_1_57_0\tools/build/src' 'C:\boost_1_57_0' 'C:/boost_1_57 _0/tools/build/src/kernel' 'C:/boost_1_57_0/tools/build/src/util' 'C:/boost_1_57_0/tools/build/src/build' 'C:/boost_1_57 _0/tools/build/src/tools' 'C:/boost_1_57_0/tools/build/src/contrib' 'C:/boost_1_57_0/tools/build/src/.' for user-config configuration file 'user-config.jam'. notice: Configuration file 'user-config.jam' not found in 'C:\Users\IEUser' 'C:\Users\IEUser' 'C:\boost_1_57_0\tools/bui ld/src' 'C:\boost_1_57_0' 'C:/boost_1_57_0/tools/build/src/kernel' 'C:/boost_1_57_0/tools/build/src/util' 'C:/boost_1_57 _0/tools/build/src/build' 'C:/boost_1_57_0/tools/build/src/tools' 'C:/boost_1_57_0/tools/build/src/contrib' 'C:/boost_1_ 57_0/tools/build/src/.'. notice: Searching '.' for project-config configuration file 'project-config.jam'. notice: Loading project-config configuration file 'project-config.jam' from '.'. notice: will use 'cl.exe' for msvc, condition msvc C:/boost_1_57_0/tools/build/src/tools\msvc.jam:1075: in configure-really *** argument error * rule generate-setup-cmd ( version : command : parent : options * : cpu : global-setup : default-global-setup-options : default-setup ) * called with: ( default : C:\Users\IEUser\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\bin : C: \Users\IEUser\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC : : i386 : : x86 : vcvars32.bat ) * missing argument global-setup C:/boost_1_57_0/tools/build/src/tools\msvc.jam:809:see definition of rule 'generate-setup-cmd' being called C:/boost_1_57_0/tools/build/src/tools\msvc.jam:201: in configure C:/boost_1_57_0/tools/build/src/tools\msvc.jam:153: in msvc.init C:/boost_1_57_0/tools/build/src/build\toolset.jam:43: in toolset.using C:/boost_1_57_0/tools/build/src/build\project.jam:1007: in using project-config.jam:3: in modules.load C:/boost_1_57_0/tools/build/src\build-system.jam:249: in load-config C:/boost_1_57_0/tools/build/src\build-system.jam:412: in load-configuration-files C:/boost_1_57_0/tools/build/src\build-system.jam:524: in load C:\boost_1_57_0\tools\build\src/kernel\modules.jam:289: in import C:\boost_1_57_0\tools\build\src/kernel/bootstrap.jam:139: in boost-build C:\boost_1_57_0\boost-build.jam:17: in module scope }}}" calumlind@… Boost 1.57.0 10819 Error in the documentation interprocess Boost 1.57.0 To Be Determined Bugs Ion Gaztañaga new 2014-11-26T11:49:50Z 2015-02-13T18:36:17Z "Hello, I found an little error in your documentation. In the chapter on message queues : http://www.boost.org/doc/libs/1_36_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.message_queue Under the ""Using a message queue"" title, in the third code example, you have : {{{ message_queue mq (open_only //only create ,""message_queue"" //name ); }}} And the commentary line ""//only create"" is wrong : the code actually opens the queue in ""open only"". Best regards Gilles" gilles.lourdelet@… Boost 1.57.0 10830 Clang static analyzer warns about graph Boost 1.57.0 To Be Determined Bugs Jeremiah Willcock new 2014-12-01T13:52:53Z 2018-03-14T13:38:31Z "When running the clang static analyzer (v3.4.1) on some code of mine that uses boost graph, it reports this warning about boost/graph/named_function_params.hpp: /usr/local/include/boost/graph/named_function_params.hpp:240:5: warning: Address of stack memory associated with temporary object of type 'boost::param_not_found' returned to caller return lookup_named_param_def::get(p, param_not_found()); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. I believe that's a genuine error." anonymous Boost 1.57.0 10831 ublas OneElement returns 0.0 uBLAS Boost 1.57.0 To Be Determined Bugs Gunter new 2014-12-01T14:03:24Z 2015-01-14T13:23:57Z "In ublas::detail::concepts.hpp the function