Custom Query (2794 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (701 - 800 of 2794)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Ticket Summary Status Owner Type Milestone Component
#7366 program_options/variables_map.hpp warning C4275 new vladimir_prus Bugs To Be Determined program_options

Reported by maciek.siemczyk@…, 3 years ago.

Description

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<std::pair<const std::string,boost::program_options::variable_value>> 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?

#7369 grow() resets permissions new igaztanaga Bugs To Be Determined interprocess

Reported by Aaron Wright <Aaron_Wright@…>, 3 years ago.

Description

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

#7371 boost::spirit::classic::char_parser<DerivedT>::parse is incrementing the scanner's first iterator directly instead of using the provided iterator_policy new djowel Bugs To Be Determined spirit

Reported by mhilferink@…, 3 years ago.

Description

In boost\spirit\home\classic\core\primitives\primitives.hpp

boost::spirit::classic::char_parser<DerivedT>::parse is defined to increment the scanner's first iterator directly instead of using the provided iterator_policy.

I'm using a scanner with an iterator that doesn't have a ++ operator and provided an iteration policy with redefined advance, get, and at_end methods.

This works fine if the following patch is implemented in boost\spirit\home\classic\core\primitives\primitives.hpp:

  if (!scan.at_end())
  {
      value_t ch = *scan;
      if (this->derived().test(ch))
      {
          iterator_t save(scan.first);
-         ++scan.first; 
+         ++scan; 
          return scan.create_match(1, ch, save, scan.first);
      }
  }

This patch forwards the increment request to scanner_policies<streamer_policy>::advance to let it do its thing with scan.first

I've seen this (and corrected it locally) at least in boost.sprit from boost version 1.40.0 and 1.51.0

Can somebody with RW access to boost.spirit implement this? Or tell me I should adapt my iterator objects directly.

I'm new to GIT and not a spirit developer, but I can try to make a git pull request if that is the way to send-in change requests.

#7377 Abort trap when using Program Options new vladimir_prus Bugs To Be Determined program_options

Reported by lordthistle@…, 3 years ago.

Description

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

#7379 Boost Format strings causing memory leaks new samuel_krempp Bugs To Be Determined format

Reported by Jason Vincent <jason.vincent@…>, 3 years ago.

Description

I determined that certain format string used in a boost::wformat object will leak memory. I was using a formatter to convert a value to a floating point value with and without a percent symbol at the end.

The two format strings I was using were:

L"%1$.1f"
  • format with one decimal place of precision
L"%1$.0f %%"
  • format with no decimal places but add a percent sign

I determined that removing the "%%" reduced some of the memory leaks, and removing the "$.1f" or "$.0f" eliminated the remaining memory leaks.

This was done using Boost v 1.44 with Visual Studio 2010 on Win 7 64-bit.

For more context here is part of the code that I can share:

note, mFormatter is a boost::wformat member object

MyObject::MyObject() :
    mNumDecimalPlaces   (1),
    mFormatter          (L"%1$.1f")  //--- THIS LEAKED
{
}


std::wstring MyObject::PercentToString(const FLOAT iMin,
                                       const FLOAT iMax,
                                       const FLOAT iPercent)
{
    FLOAT value = PercentToValue(iMin, iMax, iPercent);

    return boost::str(mFormatter % value); //--- THIS LEAKED
}
#7385 Unused parameter causes compilation error new vladimir_prus Bugs To Be Determined program_options

Reported by lcarreon@…, 3 years ago.

Description

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.

#7391 phoenix::insert compile fails with libc++ new theller Bugs To Be Determined phoenix

Reported by Naomasa Matsubayashi, 3 years ago.

Description

Following code produces a compile error with libc++.

#include <vector>
#include <boost/phoenix.hpp>

int main() {
  std::vector< int > hoge;
  std::vector< int > fuga;
  namespace phx = boost::phoenix;
  phx::insert( phx::placeholders::_1, phx::placeholders::_2, fuga.begin(), fuga.end() )( hoge, hoge.end() );
}

That is because phoenix::insert expects the member function insert returns void when was is called with 3 arguments. That is correct in C++03 but not in C++11.( All insert overloads returns an iterator in C++11 [23.3.7.1] )

Since libstdc++ returns void even if the code was compiled as C++11, the problem doesn't appear. But at least with libc++, it fails to compile and following error message is produced.

      void function 'operator()' should not return a value [-Wreturn-type]
                return c.insert(arg1, arg2, arg3);
                ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~

This patch fixed the problem on libc++. I think it needs more intelligent way to detect environments those insert always return a iterator. But I don't have any good idea on that :(

--- boost/phoenix/stl/container/container.hpp
+++ boost/phoenix/stl/container/container.hpp
@@ -425,6 +425,9 @@
                 choice_1;
 
                 typedef
+#ifdef _LIBCPP_VERSION
+                    iterator_of<C>
+#else
                     boost::mpl::eval_if_c<
                         boost::mpl::and_<
                             boost::is_same<Arg3, mpl::void_>
@@ -433,8 +436,8 @@
                       , iterator_of<C>
                       , boost::mpl::identity<void>
                     >
+#endif
                 choice_2;
-
             public:
 
                 typedef typename
#7396 filesystem::path::remove_all(path, error_code) throws filesystem_error exception new bemandawes Bugs To Be Determined filesystem

Reported by Craig Dickson <cdickson@…>, 3 years ago.

Description

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.

#7404 filesystem::canonical fails on UNC paths on Windows new bemandawes Bugs To Be Determined filesystem

Reported by Craig Dickson <cdickson@…>, 3 years ago.

Description

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.

#7406 Documentation lists the wrong constructor for char_delimiters_separator new jsiek Bugs To Be Determined tokenizer

Reported by Therefore <therefore@…>, 3 years ago.

Description

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

#7420 If I call managed_shared_memory() function when I create a lot of objects, it ocurrs error. new igaztanaga Bugs To Be Determined interprocess

Reported by anonymous, 3 years ago.

Description

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..

#7423 std::map::erase returns iterator in C++11 mode instead of void, should be handled properly new theller Bugs To Be Determined phoenix

Reported by Andrei Elovikov <a.elovikov@…>, 3 years ago.

Description

The issue is with the following code: boost/phoenix/stl/container.hpp, line 284

        namespace result_of
        {
            template <typename C, typename Arg1, typename Arg2 = mpl::void_>
            struct erase
            {
                //  BOOST_MSVC #if branch here in map_erase_result non-
                //  standard behavior. The return type should be void but
                //  VC7.1 prefers to return iterator_of<C>. As a result,
                //  VC7.1 complains of error C2562:
                //  boost::phoenix::stl::erase::operator() 'void' function
                //  returning a value. Oh well... :*

                typedef
                    boost::mpl::eval_if_c<
                        boost::is_same<
                            typename remove_reference<Arg1>::type
                          , typename iterator_of<C>::type
                        >::value
#if defined(BOOST_MSVC)// && (BOOST_MSVC <= 1500)
                      , iterator_of<C>
#else
                      , boost::mpl::identity<void>
#endif
                      , size_type_of<C>
                    >
                map_erase_result;

                typedef typename
                    boost::mpl::eval_if_c<
                        has_mapped_type<C>::value
                      , map_erase_result
                      , iterator_of<C>
                    >::type
                type;
            };
        }

It seems that MSVC's behaviour becomes the standard one with C++11.

Also the current check seems to be done incorrectly because Intel Compiler uses MSVC's stl library on Windows, so checking for _MSC_VER will be more appropriate, I think.

#7433 MSVC runtime check fix in crc reopened dlwalker Bugs To Be Determined crc

Reported by Franz Detro <franz.detro@…>, 3 years ago.

Description

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.

#7434 Lock used in flyweight causes erroneous "unused variable" warning when compiling with clang new joaquin Bugs To Be Determined flyweight

Reported by Pierre Imai <pierre.imai@…>, 3 years ago.

Description

The lock functionality in boost/flyweight/detail/flyweight_core.hpp causes the following warning when compiled with "Apple clang version 4.0 (tags/Apple/clang-421.0.60) (based on LLVM 3.1svn)" with option "-Wunused-variable":

In file included from /opt/local/include/boost/flyweight/flyweight.hpp:22:
/opt/local/include/boost/flyweight/detail/flyweight_core.hpp:189:22: error: unused variable 'lock' [-Werror,-Wunused-variable]
    lock_type        lock(mutex());

This problem can be fixed by adding the following code to the file, before / after the corresponding blocks for MSVC

#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
#endif
#ifdef __clang__
#pragma clang diagnostic pop
#endif
#7435 Crash with format using UTF16 strings on MacOS X new samuel_krempp Bugs To Be Determined format

Reported by Franz Detro <franz.detro@…>, 3 years ago.

Description

Due to cross-platform issues with Microsoft Windows, we are using std::strings with unsigned shorts as UTF16 strings.

We experience crashes when using boost::format in combination with these strings.

Please find attach a simple fix which solves this issue for us. We are using this code since some years on Windows and Unix, too, without any negative side-effects.

It would be great if you could double-check this change and commit it to future boost versions.

#7436 Missing python dlls new rwgk Bugs To Be Determined python USE GITHUB

Reported by habdank@…, 3 years ago.

Description

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.

#7440 boost::filesystem compile error on solaris 10 new bemandawes Bugs To Be Determined filesystem

Reported by aleksandar.vukajlovic@…, 3 years ago.

Description

It fails to compile on gcc 4.7.2 with compile flags cxxflags=-std=c++0x

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:

&& !(defined(__SUNPRO_CC) || defined(sun)) \

proper check for solaris would be:

&& !(defined(__SUNPRO_CC) || defined(sun) || defined(__sun)) \
#7450 Buggy rounded_arith.hpp new bgubenko Bugs To Be Determined interval

Reported by Luca Di Gaspero <l.digaspero@…>, 3 years ago.

Description

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.

#7451 clang-linux.jam : cflags/cxxflags feature is added twice to compiler's command line (other features possibly as well) new vladimir_prus Bugs To Be Determined build

Reported by oakad@…, 3 years ago.

Description

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 <cflags> ; -toolset.flags clang-linux.compile OPTIONS <cxxflags> ; +#toolset.flags clang-linux.compile OPTIONS <cflags> ; +#toolset.flags clang-linux.compile OPTIONS <cxxflags> ;

toolset.flags clang-linux.compile OPTIONS <optimization>off : ; toolset.flags clang-linux.compile OPTIONS <optimization>speed : -O3 ;

Flags are apparently already added by the "base" module and then again by the inherited one (does it make sense?).

#7453 Dead link in date::time docs new az_sw_dude Bugs To Be Determined date_time

Reported by wlandry@…, 3 years ago.

Description

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.

#7460 owi_mt_tests.cpp:89: error: 'TIME_UTC' is not a member of 'boost' new djowel Bugs To Be Determined spirit

Reported by greg.nowakowski@…, 3 years ago.

Description

Release 1.50.0 is not compiling on Linux with gcc-4.1.2 when running boost_1_50_0/libs/spirit/classic/test test.

Test run using command:

../../../../bjam -a >test.result

Here is the problem:

gcc.compile.c++ ../../../../bin.v2/libs/spirit/classic/test/owi_mt_tests.test/gcc-4.1.2/debug/threading-multi/owi_mt_tests.o
owi_mt_tests.cpp: In static member function 'static long unsigned int test_task<ClassT>::increase_test_size(long unsigned int)':
owi_mt_tests.cpp:89: error: 'TIME_UTC' is not a member of 'boost'
owi_mt_tests.cpp: In function 'void concurrent_creation_of_objects()':
owi_mt_tests.cpp:190: error: 'TIME_UTC' is not a member of 'boost'

It should be using TIME_UTC_ and not TIME_UTC. I am surprised this bug hasn't been reported before.

Blessings, Greg.

#7473 clang defines __GNUC__ and confuses the libstdcpp3.hpp configuration header reopened johnmaddock Bugs To Be Determined config

Reported by philipp.moeller@…, 3 years ago.

Description

clang defines (at least on the current trunk) GNUC, GNUC_MINOR, and GNUC_PATCHLEVEL to 4, 2, and 1 respectively. When used with -std=c++11 GXX_EXPERIMENTAL_CXX0X will be defined as well. When using libstdcpp in combination with clang the boost configuration header libstdcpp3.hpp will use those broken version to detect library headers and features. Given the relatively low version number, most headers wont be available, which is counter-intuitive and can break in subtle ways.

#7475 Functions redeclared inline after been called new bemandawes Bugs To Be Determined system

Reported by viboes, 3 years ago.

Description

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.

#7477 boost:::format will not compile under VC++ without "Microsoft language extensions" reopened samuel_krempp Bugs To Be Determined format

Reported by Jive Dadson <jdadson@…>, 3 years ago.

Description

Boost::format will not compile under Microsoft VC++ unless Microsoft Language Extensions (/Za) are turned OFF. When MS Language Extensions are turned ON, the compiler complains because boost overrides some virtual functions in std:: classes with functions lacking a "throw()" specifier. One of the functions is the destructor ~basic_streambuf().

I do not know if this is a bug or a misunderstanding on my part. If it is a bug, I do not know whether it is on the MS or boost side. However, it should be a simple matter to decorate those functions with "throw()." That could save someone a lot of trouble.

#7480 Runtime failures in let_tests.test new theller Bugs To Be Determined phoenix

Reported by michel, 3 years ago.

Description

When compiling libs/phoenix/scope/let_tests.cpp on gcc 4.5, 4.7, 4.8 (experimental) and clang 3.0, 3.1, 3.2 (trunk) with optimization flag -O2 or -O3, runtime test failures (i.e. BOOST_TEST failures) occurs. The failures occur both in C++03 and C++11 modes and both with BOOST_RESULT_OF_USE_DECLTYPE and without BOOST_RESULT_OF_USE_DECLTYPE.

lambda_tests.test also generates runtime failures. It fails on gcc 4.6, too. I think there are other failed test cases when compiling with optimization flag -O2 or -O3.

#7481 lambda_tests.test fails to compile with BOOST_RESULT_OF_USE_DECLTYPE new theller Bugs To Be Determined phoenix

Reported by michel, 3 years ago.

Description

#5687 (some evaluation functions do not work with BOOST_RESULT_OF_USE_DECLTYPE) is generally fixed by Eric recently. But libs/phoenix/scope/lambda_tests.cpp fails to compile on gcc 4.4-4.8 and clang 2.8-3.0 with BOOST_RESULT_OF_USE_DECLTYPE. Eric also reported it fails to compile on MSVC with BOOST_RESULT_OF_USE_DECLTYPE.

The compilation succeeds on clang 3.1-3.2 (which have N3276 decltype support).

#7482 Build from source with MinGW on Windows new timblechmann Bugs To Be Determined Building Boost

Reported by RusBaratov@…, 3 years ago.

Description

Hello, I've trying to build boost with mingw, and I've got error, when --layout=system option is used.

check out (with cygwin):

> svn co http://svn.boost.org/svn/boost/trunk boost-trunk
> svnversion
80897

build (windows cmd.exe):

> g++ --version
g++ (Built by MinGW-builds projects) 4.7.1
> cd boost-trunk
> .\bootstrap gcc

build with --layout=tagged works fine:

> .\b2 --toolset=gcc --layout=tagged

but build with --layout=system failed:

> .\b2 --toolset=gcc --layout=system
...
error: Duplicate name of actual target: <pstage\lib>libboost_atomic.a
error: previous virtual target { common%common.copy-libboost_atomic.a.STATIC_LIB { gcc%gcc.archive-libboost_atomic.a.STATIC_LIB { gcc%gcc.compile.c++-
lockpool.o.OBJ { lockpool.cpp.CPP } } } }
error: created from ./stage-proper
error: another virtual target { common%common.copy-libboost_atomic.a.STATIC_LIB { gcc%gcc.archive-libboost_atomic.a.STATIC_LIB { gcc%gcc.compile.c++-l
ockpool.o.OBJ { lockpool.cpp.CPP } } } }
error: created from ./stage-proper
error: added properties: <debug-symbols>off <define>NDEBUG <inlining>full <optimization>speed <runtime-debugging>off <variant>release
error: removed properties: <debug-symbols>on <inlining>off <optimization>off <runtime-debugging>on <variant>debug
M:/boost-trunk/tools/build/v2/build\virtual-target.jam:491: in actualize-no-scanner from module object(file-target)@4808
M:/boost-trunk/tools/build/v2/build\virtual-target.jam:134: in object(file-target)@4808.actualize from module object(file-target)@4808
M:/boost-trunk/tools/build/v2\build-system.jam:736: in load from module build-system
M:\boost-trunk\tools\build\v2/kernel\modules.jam:289: in import from module modules
M:\boost-trunk\tools\build\v2/kernel/bootstrap.jam:139: in boost-build from module
M:\boost-trunk\boost-build.jam:17: in module scope from module
#7494 boost::replace_all is very slow on debug build when Format size is big assigned marshall Bugs To Be Determined string_algo

Reported by Jan Vonasek <jan.vonasek@…>, 3 years ago.

Description

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.

#7502 Planarity test runs in quadratic time on some graphs new jewillco Bugs To Be Determined graph

Reported by Jan Hązła <jan.hazla@…>, 3 years ago.

Description

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.

#7504 boost::interprocess::basic_vectorbuf calls std::char_traits<char>::pbump() with potentially mismatching data type new igaztanaga Bugs To Be Determined interprocess

Reported by mbradshaw@…, 3 years ago.

Description

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<char>::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<char>::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::vector<char>, std::char_traits<char>> vs;

#7507 BGL subgraph copy constructor buggy new jewillco Bugs To Be Determined graph

Reported by Amyn Bennamane <amynbe@…>, 3 years ago.

Description

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
#7508 Boost timezonedb incorrect Brazil DST specification new az_sw_dude Bugs To Be Determined date_time

Reported by anonymous, 3 years ago.

Description

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"

#7517 indirect_streambuf: invalid state change if write() writes less data then requested new turkanis Bugs To Be Determined iostreams

Reported by Oleg Liatte <oleg.liatte@…>, 3 years ago.

Description

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.

#7520 boost::interprocess::ipcdetail::truncate_file does not support 64bit size new igaztanaga Bugs To Be Determined interprocess

Reported by Dmytro Ovdiienko <dmitriyovdienko@…>, 3 years ago.

Description

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)

#7522 bootstrap.bat fails when TMP/TEMP folder contains a space in the path on Windows new Bugs To Be Determined Building Boost

Reported by David Hait <dhait@…>, 3 years ago.

Description

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.

#7524 Assertion Fail: map/set iterators incompatible (msvc-8) new guwi17 Bugs To Be Determined uBLAS

Reported by jim@…, 3 years ago.

Description

Two regression tests fail in msvc-8 with this error:

Debug Assertion Failed:

xtree line 293: Expression: map/set iterators incompatible

Tests failing:

test3_mvov

test_inplace_solve_mvov

#7533 Quickbook build fails without bjam --hash if filenames are too long new vladimir_prus Bugs Boost 1.52.0 build

Reported by pbristow, 3 years ago.

Description

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

<snip>

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 </doxygenindex>

#7535 filesystem::path::iterator inconsistency with multiple leading separators new bemandawes Bugs To Be Determined filesystem

Reported by Stefan Große Pawig <boost@…>, 3 years ago.

Description

Iterating backwards through a filesystem::path does not terminate at path::begin() if the path starts with several leading directory separators.

For example:

#include <boost/filesystem.hpp>
#include <iostream>

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.

#7536 Fails to Compile under OSX 10.8 new Bugs Boost.Jam 4.0.0 Building Boost

Reported by roberts@…, 3 years ago.

Description

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<typename Ptree::key_type::value_type>&, Ptree&, int, const std::string&) [with Ptree = boost::property_tree::basic_ptree<std::basic_string<char>, std::basic_string<char> >, typename Ptree::key_type::value_type = char, typename Ptree::key_type::value_type = char, std::string = std::basic_string<char>]’: ./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 < http://gcc.gnu.org/bugs.html> 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 <pstage/lib>libboost_graph.dylib for lack of <pbin.v2/libs/graph/build/darwin-4.5.0/release/threading-multi>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<void>) 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::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, 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::basic_string<char, std::char_traits<char>, std::allocator<char> >, 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<std::complex<double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<float, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<double, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<long double, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<long double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<float>, 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<long long, boost::python::converter::(anonymous namespace)::long_long_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<unsigned long long, boost::python::converter::(anonymous namespace)::unsigned_long_long_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<unsigned char, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned char> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned short, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned short> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned int, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned int> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned long, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned long> >::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<void>) 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<boost::python::to_python_value<boost::python::tuple const&> >::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<boost::python::str, boost::python::api::object, boost::python::str, boost::python::str, boost::python::str, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::python::str const&, boost::python::api::object const&, boost::python::str const&, boost::python::str const&, boost::python::str const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > 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<void>) 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<std::complex<double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<long double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<float>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<float>, 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<std::complex<double>, 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<std::complex<long double>, 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<boost::python::objects::function> 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<std::complex<float>, 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<std::complex<double>, 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<std::complex<long double>, 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<void>) in errors.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned char, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned char> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned short, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned short> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned int, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned int> >::construct(_object*, boost::python::converter::rvalue_from_python_stage1_data*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned long, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned long> >::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<void>) in errors.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<unsigned char, boost::python::converter::(anonymous namespace)::unsigned_int_rvalue_from_python<unsigned char> >::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<std::complex<double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<float, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<double, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<long double, boost::python::converter::(anonymous namespace)::float_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<long double>, boost::python::converter::(anonymous namespace)::complex_rvalue_from_python>::convertible(_object*) in builtin_converters.o boost::python::converter::(anonymous namespace)::slot_rvalue_from_python<std::complex<float>, 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::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, 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<void>) 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::basic_string<char, std::char_traits<char>, std::allocator<char> >, 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<std::complex<float>, 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<std::complex<double>, 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<std::complex<long double>, 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 <pstage/lib>libboost_python.dylib for lack of <pbin.v2/libs/python/build/darwin-4.5.0/release/threading-multi>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<typename Ptree::key_type::value_type>&, Ptree&, int, const std::string&) [with Ptree = boost::property_tree::basic_ptree<std::basic_string<char>, std::basic_string<char> >, typename Ptree::key_type::value_type = char, typename Ptree::key_type::value_type = char, std::string = std::basic_string<char>]’: ./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 < http://gcc.gnu.org/bugs.html> 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 <pbin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi>libboost_graph.a(clean) for lack of <pbin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi>graphml.o... ...skipped <pbin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi>libboost_graph.a for lack of <pbin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi>graphml.o... ...skipped <pstage/lib>libboost_graph.a for lack of <pbin.v2/libs/graph/build/darwin-4.5.0/release/link-static/threading-multi>libboost_graph.a... ...failed updating 3 targets... ...skipped 5 targets...

#7538 boost::spirit::istream_iterator does not handle incrememt correctly at the end new djowel Bugs To Be Determined spirit

Reported by zhuo.qiang@…, 3 years ago.

Description

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:

#include <sstream>
#include <boost/spirit/include/support_istream_iterator.hpp>
#include <boost/test/minimal.hpp>

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

#7539 including spirit multi_pass and info header files caused compile error new djowel Bugs To Be Determined spirit

Reported by zhuo.qiang@…, 3 years ago.

Description

It seems the 2 header files

  • boost/spirit/include/support_info.hpp
  • boost/spirit/include/support_multi_pass.hpp

are not getting along very well using clang and its libc++ under c++11

If the 2 files are included in the same complie unit (either directly or indirectly) like following:

#include <boost/spirit/include/support_info.hpp>
#include <boost/spirit/include/support_multi_pass.hpp>

It will fail the clang with flag '-std=c++11', '-stdlib=libc++'

clang++ -o test.o -c -std=c++11 -stdlib=libc++ -I/Users/qiang/Projects/boost_1_51_0 test.cpp
In file included from test.cpp:1:
In file included from /Users/qiang/Projects/boost_1_51_0/boost/spirit/include/support_info.hpp:15:
In file included from /Users/qiang/Projects/boost_1_51_0/boost/spirit/home/support/info.hpp:19:
/usr/bin/../lib/c++/v1/list:212:9: error: field has incomplete type 'boost::spirit::info'
    _Tp __value_;
        ^
/usr/bin/../lib/c++/v1/type_traits:1889:54: note: in instantiation of template class 'std::__1::__list_node<boost::spirit::info, void *>' requested here
decltype(_VSTD::move(_Tp(_VSTD::declval<_Args>()...)), true_type())
                                                     ^
...

Attachment is the complete error message.

Reproduced in

  • 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++" , the 2 flags must be turned on at the same time to reproduce this bug
  • Boost 1.51 and Boost Trunk rev.81030
#7545 filesystem::path::filename() specification wrong? new bemandawes Bugs To Be Determined filesystem

Reported by Stefan Große Pawig <boost@…>, 3 years ago.

Description

According to the 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()

#7548 Impossible to query for std::vector<double> converter registration new rwgk Bugs To Be Determined python USE GITHUB

Reported by Dario Izzo <dario.izzo@…>, 3 years ago.

Description

I have been hitting this wall for some months now and produced some minimalistic code that shows the problem:

#include <boost/python.hpp>
#include <vector>
#include <iostream>


std::vector<double> list_of_doubles() {
	std::vector<double> retval;
	retval.push_back(3);
	retval.push_back(2);
	return retval;
}


// Instantiate the core module.
BOOST_PYTHON_MODULE(boost_debug)
{
//We check if a converter for std::vector has been registered
boost::python::type_info info = boost::python::type_id<std::vector<double> >(); 
const boost::python::converter::registration* reg = boost::python::converter::registry::query(info); 
//We output to screen the result (should be NULL)
std::cout << reg << " ";

//We also expose a function that needs such a conversion (to_python)
using namespace boost::python;
def("list_of_doubles",list_of_doubles);
}

in python:

import boost_debug

and the result (which should be zero) is instead an address: 0x7f9bc3c4c600

Even more absurdly, if we comment the line "def("list_of_doubles",list_of_doubles);" things actually go back to normality.

#7549 uBLAS banded storage does not match common BLAS layout (from netlib) new guwi17 Bugs To Be Determined uBLAS

Reported by guwi17, 3 years ago.

Description

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
#7558 MPI missing symbols using serialization's static library design new troyer Bugs To Be Determined mpi

Reported by Brian Barrett <bwbarre@…>, 3 years ago.

Description

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>(boost::mpi::packed_iarchive&, unsigned int)", referenced from:

boost::archive::detail::iserializer<boost::mpi::packed_iarchive,

SST::Introspector>::load_object_data(boost::archive::detail::basic_iarchive &, void*, unsigned int) const in introspectedComponent.o

boost::archive::detail::iserializer<boost::mpi::packed_iarchive,

SST::Introspector>::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.

#7561 bzip2_compressor does not play nicely with either direction of filtering_stream new turkanis Bugs To Be Determined iostreams

Reported by Alexander van Gessel (AI0867) <ai0867@…>, 3 years ago.

Description

With boost::iostreams::filtering_stream<boost::iostreams::input>, bzip2_compressor's output is always empty. With boost::iostreams::filtering_stream<boost::iostreams::output>, 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

#7563 slex CONTLINE options parse keyword with backslash new hkaiser Bugs To Be Determined wave

Reported by gongyiling3468@…, 3 years ago.

Description

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.

#7564 filesystem::path passed to GTest's assertion leads to stack overflow new bemandawes Bugs To Be Determined filesystem

Reported by oliora@…, 3 years ago.

Description

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 paths (infinite recursion) is not very good and should be fixed.

#7567 Shadow warnings in timer.hpp new bemandawes Bugs To Be Determined timer

Reported by Kenneth Moreland <kmorel@…>, 3 years ago.

Description

This code

#include <boost/timer/timer.hpp>

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).

#7568 Unused parameter and shadowed member warnings in errors.hpp new vladimir_prus Bugs To Be Determined program_options

Reported by Kenneth Moreland <kmorel@…>, 3 years ago.

Description

This code

#include <boost/program_options/errors.hpp>

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).

#7572 boost::gregorian::to_tm() does not fill in tm_gmtoff and tm_zone fields of the resulting std::tm structure new az_sw_dude Bugs To Be Determined date_time

Reported by izimenkov@…, 3 years ago.

Description

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.

#7574 Boost iostreams documentation has too many spell misses new turkanis Bugs To Be Determined iostreams

Reported by spe56nw9@…, 3 years ago.

Description

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

#7579 whole numbers => natural numbers new fcacciola Bugs To Be Determined numeric

Reported by dave, 3 years ago.

Description

A numeric type is integer if the abstract values it represent are whole numbers.

Should say "natural numbers"

#7580 boost::asio::tcp SEGV after ioservice stopped, restarted and new new chris_kohlhoff Bugs To Be Determined asio

Reported by tobi@…, 3 years ago.

Description

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

#7583 Missing file? new bemandawes Bugs To Be Determined system

Reported by anon, 3 years ago.

Description

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?

#7584 boost::interprocess::unique_ptr ambiguous overload for ‘operator=’ new igaztanaga Bugs To Be Determined interprocess

Reported by Evgeny Panasyuk <evgeny.panasyuk@…>, 3 years ago.

Description

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).

#7596 process_jam_log - --locate-root doesn't work as advertised new bemandawes Bugs To Be Determined Regression Testing USE GITHUB

Reported by ramey, 3 years ago.

Description

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

#7601 Does not use Boost.Move new ebf Bugs To Be Determined variant

Reported by dave, 3 years ago.

Description

Variant contains its own move semantics emulation, which is apparently undocumented and untested (although people seem to think it's something it isn't—see  http://j.mp/SpAyRZ). That should be replaced by the use of Boost.Move so the wishful thinking becomes reality.

#7606 u32regex causes bus error new johnmaddock Bugs To Be Determined regex

Reported by a.sanders@…, 3 years ago.

Description

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 <boost/regex/icu.hpp>

int main (int, char) {

const boost::u32regex re = boost::make_u32regex ("[pq]
.
.[xy]"); return 0;

}


#7607 path should not infer an invisible "." at the end of a path that ends with a slash new bemandawes Bugs To Be Determined filesystem

Reported by Craig Dickson <cdickson@…>, 3 years ago.

Description

Currently, a path that ends with a slash (or backslash on Windows) is treated as if it had an invisible "." at the end. For example, filename("/usr/") returns ".", and iterating over path("/usr/") produces the elements "/", "usr", and ".".

I think this is a design error, because it leads to unexpected behaviors. For example, create_directories("foo/") fails even though the directory "foo" is successfully created, because the code tries to conclude by creating ".", which makes no sense and obviously will fail.

I think the effect of ending a path with a slash should simply be that the final element (preceding the slash) is considered a directory name, not a filename. Therefore filename("foo/") should return an empty string, and has_filename("foo/") should return false. Most other operations, however, should act as if the slash simply wasn't there. Iterating over path("/usr/bin/"), for example, should return the elements "/", "usr", and "bin", and create_directories("foo/") should behave exactly the same as create_directories("foo").

#7608 Custom service of boost::asio hangs after being interrupted new chris_kohlhoff Bugs To Be Determined asio

Reported by Acer Yang <yangacer@…>, 3 years ago.

Description

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  here.

#7612 Compile fails when including <boost/units/systems/si/codata_constants.hpp> new matthiasschabel Bugs To Be Determined units

Reported by Adam Shrader <adam.shrader@…>, 3 years ago.

Description

I found that adding "#include <boost/units/systems/si/codata_constants.hpp>" 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 <boost/units/systems/si/codata_constants.hpp>

#include <iostream>

int main(int argc, char argv) {

std::cout << "Hello." << std::endl; return 0;

}

#7614 duplicate dosctring is generated for pure virtual methods new rwgk Bugs To Be Determined python USE GITHUB

Reported by tomer.spector@…, 3 years ago.

Description

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, boost::noncopyable, boost::shared_ptr<IOperation> >("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

#7617 msvc 9.0 (64-bit): warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data new chris_kohlhoff Bugs To Be Determined asio

Reported by anonymous, 3 years ago.

Description

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

#7622 filesystem - minor documentation issues new bemandawes Bugs To Be Determined filesystem

Reported by ramey, 3 years ago.

Description

.../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

#7624 Deduction failure new theller Bugs To Be Determined phoenix

Reported by dave, 3 years ago.

Description

This program fails:

#include <boost/phoenix.hpp>
#include <boost/range/as_literal.hpp>

using namespace boost::phoenix::placeholders;
using namespace boost::phoenix;
    
int main()
{
    find(boost::as_literal("fox"), 'x')();                      // works
    find(boost::as_literal("fox"), construct<char>(arg1))('x'); // works
    find(boost::as_literal("fox"), arg1)('x');                  // compilation error
}

Took hours to work out what was going on. Nature of the beast, I suppose.

#7625 container.hpp should get reference, etc., from the iterator types new theller Bugs To Be Determined phoenix

Reported by dave, 3 years ago.

Description

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"))

#7630 Range adaptors do not play nicely with range-based for loops assigned neilgroves Bugs To Be Determined range

Reported by gromer@…, 3 years ago.

Description

Consider the following C++11 code, adapted from the Range documentation:

std::vector<int> 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.

#7633 Wanted: a way to force a nested result_type new theller Bugs To Be Determined phoenix

Reported by dave, 3 years ago.

Description

For example, I had to use this:

template <class F> struct void_function : F
{
    typedef void result_type;
    void_function(F x) : F(x) {}
};

template <class F>
void_function<F> make_void(F x)
{
    return void_function<F>(x);
}

in order to get the following to work:

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.

#7634 b2 segfaults when more than 64 jobs are requested new vladimir_prus Bugs To Be Determined build

Reported by Mike Gilbert <floppym@…>, 3 years ago.

Description

b2 segfaults on Linux when more than 64 jobs (-j65) are requested.

Attached patch resolves this problem.

See Gentoo bug report:

 https://bugs.gentoo.org/show_bug.cgi?id=441034

#7636 Detection of ICU fails new artyom Bugs To Be Determined locale

Reported by Arfrever.FTA@…, 3 years ago.

Description

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.

#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 new vladimir_prus Bugs To Be Determined build

Reported by Marcello Pietrobon <marcello.pietrobon@…>, 3 years ago.

Description

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.
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

using msvc : 10.0 ; using stlport : 5.2.1 : <my_path_to_stlport>/STLport-5.2.1/stlport : <my_path_to_stlport>/STLport-5.2.1/lib/vc10 ;

2- and issued the command:
.\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)
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.



Things therefore work if I do:

tools/build/v2/user-config.jam:

using msvc : 10.0 ; using stlport : vc10.5.2.1 : <my_path_to_stlport>/STLport-5.2.1/stlport : <my_path_to_stlport>/STLport-5.2.1/lib/vc10 ;

and issue the command:

.\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.

Let's take tools/build/v2/user-config.jam again

with

using stlport : 5.2.1 : ....
the library searched was stlportstld.5.2.lib


with

using stlport : vc10.5.2.1 : ....
the library searched was stlportstldvc10.5.2.lib


with

using stlport : xyz.5.2.1 : ....
the library searched was stlportstldvc10.5.2.lib i.e. not stlportstldxyz.5.2.lib

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

#7655 signed/unsigned mismatch warning in inplace_solver new guwi17 Bugs To Be Determined uBLAS

Reported by tobias.loew, 3 years ago.

Description

MSVC 9 emits a warning "C4018: '<' : signed/unsigned mismatch" in line 2165 (inplace_solve) in triangular.hpp

#7658 Ambiguity error with function overloads new dgregor Bugs To Be Determined function

Reported by Ulrich Brandstätter <ulien@…>, 3 years ago.

Description

The following code (relevant for a convenient thread-callback API) fails to compile with VC2010 due to a C2668 error:

typedef boost::function<void (int i)> fooCallback;
typedef boost::function<void (int i, int k)> 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.

#7659 sizeof(tribool) > sizeof(bool) * 2 new dgregor Bugs To Be Determined logic

Reported by anonymous, 3 years ago.

Description

I was wondering why tribool is 4 times larger than a simple bool (tested with msvc10 in 32bit and g++ 4.6.2 on 64bit). By looking at the sourcecode I am suspecting the internal enum always gets compiled as a 4byte int. When using the similar boost::optional<bool> I get at least as good as the naive implementation using two bools, but actually I was expecting a class tribool to be sizeof(bool) *and* encode the third value in the 7 unused bits of the single bool member field.

If this has been a design decision I think this is a decision that should be documented.

#7670 Failed to compile boost 1.48.0 using Xcode 4.5.2 new vladimir_prus Bugs To Be Determined build

Reported by amol_ghatge@…, 3 years ago.

Description

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 <class _Rp, class _Class, class _Tp>

/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<nested_exception, typename remove_reference<_Tp>::type>::value

/usr/bin/../lib/c++/v1/exception:194:31: error: 'nested_exception' does not refer to a value

!is_base_of<nested_exception, typename remove_reference<_Tp>::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<nested_exception, typename remove_reference<_Tp>::type>::value

/usr/bin/../lib/c++/v1/exception:194:85: error: expected ')'

!is_base_of<nested_exception, typename remove_reference<_Tp>::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<nested_exception, typename remove_reference<_Tp>::type>::value

/usr/bin/../lib/c++/v1/exception:213:30: error: 'nested_exception' does not refer to a value

is_base_of<nested_exception, typename remove_reference<_Tp>::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<nested_exception, typename remove_reference<_Tp>::type>::value

/usr/bin/../lib/c++/v1/exception:213:84: error: expected ')'

is_base_of<nested_exception, typename remove_reference<_Tp>::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 <puniversal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi>libboost_system-clang-darwin42-mt-d-1_48.a(clean) for lack of <puniversal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi>error_code.o... ...skipped <puniversal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi>libboost_system-clang-darwin42-mt-d-1_48.a for lack of <puniversal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi>error_code.o... ...skipped <pboost_stage_universal/debug/lib>libboost_system-clang-darwin42-mt-d-1_48.a for lack of <puniversal/boost/bin.v2/libs/system/build/clang-darwin-4.2.1/debug/link-static/threading-multi>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 <class _Rp, class _Class, class _Tp>

/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<nested_exception, typename remove_reference<_Tp>::type>::value

/usr/bin/../lib/c++/v1/exception:194:31: error: 'nested_exception' does not refer to a value

!is_base_of<nested_exception, typename remove_reference<_Tp>::type>::value

#7679 unhex level 4 compile warning in visual studio new marshall Bugs To Be Determined algorithm

Reported by Gary Sanders <lex21@…>, 3 years ago.

Description

The following code generates a level 4 compiler warning in Visual Studio 2010 and 2012:

#include <string>
#include <boost/algorithm/hex.hpp>

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,OutputIterator,bool(__cdecl *)(Iterator,Iterator)>(InputIterator &,InputIterator,OutputIterator,EndPred)' being compiled
1>          with
1>          [
1>              _Container=std::string,
1>              InputIterator=std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,
1>              OutputIterator=std::back_insert_iterator<std::string>,
1>              Iterator=std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,
1>              EndPred=bool (__cdecl *)(std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>,std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>)
1>          ]
1>          d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(237) : see reference to function template instantiation 'OutputIterator boost::algorithm::unhex<std::_String_const_iterator<_Elem,_Traits,_Alloc>,OutputIterator>(InputIterator,InputIterator,OutputIterator)' being compiled
1>          with
1>          [
1>              OutputIterator=std::back_insert_iterator<std::string>,
1>              _Elem=char,
1>              _Traits=std::char_traits<char>,
1>              _Alloc=std::allocator<char>,
1>              InputIterator=std::_String_const_iterator<char,std::char_traits<char>,std::allocator<char>>
1>          ]
1>          d:\development\libs\boost_1_52_0\boost/algorithm/hex.hpp(263) : see reference to function template instantiation 'OutputIterator boost::algorithm::unhex<String,std::back_insert_iterator<_Container>>(const Range &,OutputIterator)' being compiled
1>          with
1>          [
1>              OutputIterator=std::back_insert_iterator<std::string>,
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<std::string>(const String &)' being compiled
1>          with
1>          [
1>              String=std::string
1>          ]
#7680 Poor choice of difference_type for zip_iterator new jeffrey.hellrung Bugs To Be Determined iterator

Reported by matthias_berndt@…, 3 years ago.

Description

Hi,

the following program results in an integer overflow on my system (Linux g++ 4.7.2):

#include <boost/iterator/zip_iterator.hpp>
#include <boost/iterator/counting_iterator.hpp>
#include <boost/tuple/tuple.hpp>
#include <iostream>
int main() {
  boost::counting_iterator<unsigned short> i1(0);
  boost::counting_iterator<unsigned long long> 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.

#7681 Bug in indirect_streambuf::seek_impl new turkanis Bugs Boost 1.53.0 iostreams

Reported by lodos@…, 3 years ago.

Description

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<category, dual_seekable>::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);

}

#7687 [date_time] implicit conversion loses integer precision new az_sw_dude Bugs To Be Determined date_time

Reported by crueegg@…, 3 years ago.

Description

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 <boost/date_time.hpp>
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<boost::date_time::year_month_day_base<boost::gregorian::greg_year, boost::gregorian::greg_month, boost::gregorian::greg_day>,
      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<boost::gregorian::date,
      boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::date' requested here
      : date_time::date<date, gregorian_calendar, date_duration>(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<boost::date_time::year_month_day_base<boost::gregorian::greg_year, boost::gregorian::greg_month, boost::gregorian::greg_day>,
      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<boost::posix_time::millisec_posix_time_system_config>::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<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config> >::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<boost::posix_time::ptime,
      boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config>> >::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<boost::gregorian::date,
      boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::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<boost::posix_time::ptime,
      boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config>> >::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<int_type>(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<unsigned
      int>::operator+<long>' 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<boost::gregorian::date,
      boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::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<boost::posix_time::ptime,
      boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config>> >::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<boost::gregorian::date,
      boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::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<boost::gregorian::date,
      boost::gregorian::date_duration>::period' requested here
      return period<date_type, typename date_type::duration_type>(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<boost::gregorian::date, char>' requested here
    return date_time::from_simple_string_type<date,char>(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<int_type>(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<unsigned
      int>::operator-<long>' 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<boost::gregorian::date,
      boost::gregorian::gregorian_calendar, boost::gregorian::date_duration>::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<boost::gregorian::date,
      boost::gregorian::date_duration>::period' requested here
      return period<date_type, typename date_type::duration_type>(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<boost::gregorian::date, char>' requested here
    return date_time::from_simple_string_type<date,char>(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<boost::gregorian::date,
      boost::posix_time::time_duration>::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<boost::gregorian::date,
      boost::posix_time::time_duration>::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<boost::gregorian::date, boost::posix_time::time_duration>::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<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::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<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::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<boost::gregorian::date,
      boost::posix_time::time_duration>::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<boost::gregorian::date,
      boost::posix_time::time_duration>::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<boost::gregorian::date, boost::posix_time::time_duration>::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<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::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<boost::posix_time::ptime, boost::date_time::time_zone_base<boost::posix_time::ptime, char> >::is_dst' requested here
  if(lt.is_dst()){
        ^
15 warnings generated.
#7692 Missing documentation for variables_map::count new vladimir_prus Bugs To Be Determined program_options

Reported by abadura@…, 3 years ago.

Description

Neither variables_map documentation nor abstract_variables_map documentation mentions function count.

#7698 Boost directory iterator constructor crashes when folder gives input/output error new bemandawes Bugs To Be Determined filesystem

Reported by cpl, 3 years ago.

Description

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<boost::filesystem3::detail::dir_itr_imp>::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.

#7700 remove_if with Placeholder Expression as predicate causes instantiation of PlaceHolder Expression before argument binding in GCC 4.7.2 new djowel Bugs To Be Determined fusion

Reported by felipe.m.almeida@…, 3 years ago.

Description

The following code instantiates meta_func<mpl::arg<1> >, 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 <boost/fusion/include/as_vector.hpp> #include <boost/fusion/include/remove_if.hpp>

namespace mpl = boost::mpl; namespace fusion = boost::fusion;

struct element {

typedef mpl::false_ type;

};

template <typename T> struct meta_func {

typedef typename T::type type;

};

int main() {

fusion::vector<element, element> e; fusion::as_vector(fusion::remove_if<meta_func<mpl::_1> >(e));

}

#7709 Exception library always built as static library. new emildotchevski Bugs To Be Determined exception

Reported by asoudarikov@…, 3 years ago.

Description

Flag link=shared does not influence on building type of exception library. The exception library always built as static library.

#7715 Fractional seconds are parsed as timezone new az_sw_dude Bugs To Be Determined date_time

Reported by knight666@…, 3 years ago.

Description

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.

#7729 concept_def.hpp multiple inclusion prevention macro bug assigned acharles Bugs Boost 1.56.0 graph

Reported by moala@…, 3 years ago.

Description

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
[...]
#7730 Generic specializations of is_nullary for custom terminals are not possible new theller Bugs To Be Determined phoenix

Reported by andysem, 3 years ago.

Description

The is_nullary trait is specialized for all custom_terminal<T> to be true (see phoenix/code/is_nullary.hpp).

template <typename T>
struct is_nullary<custom_terminal<T> >
    : 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 <typename T>
struct is_nullary<custom_terminal<T>, 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 <typename T>
struct is_nullary<custom_terminal<T>, typename custom_terminal<T>::_is_default_custom_terminal >
    : mpl::true_
{};

Where typedef void _is_default_custom_terminal will be added to the generic custom_terminal template.

#7732 Spirit Karma calls compile unqualified, which causes it to use compile functions found by ADL new djowel Bugs To Be Determined spirit

Reported by felipe.m.almeida@…, 3 years ago.

Description

In boost/spirit/home/karma/generate.hpp, the function generate and generate_delimited calls compile without qualification. Which allows finding compile functions by ADL if the expression contains terminals not defined in the spirit namespace.

The call should be qualified.

#7737 Minor comment typo in boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp new hkaiser Bugs To Be Determined wave

Reported by oss.2012.team+E4@…, 3 years ago.

Description

Patch attached for fixing it.

#7747 Wrong header file information in ptr_container documentation new nesotto Bugs To Be Determined ptr_container

Reported by anonymous, 3 years ago.

Description

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 <boost/ptr_container/serialize.hpp> 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.

#7750 iostreams & thread cancellation issue new turkanis Bugs To Be Determined iostreams

Reported by Oleg.Dolgov@…, 3 years ago.

Description

In NPTL thread cancellation is implemented using exceptions. The iostreams functions contains a catch-all clause which does not rethrow the exception. This is possible to expect but should really never happen in any code. The rules C++ experts developed state that catch-all cases must rethrow. If not then strange things can happen since one doesn't always know exactly what exceptions are thrown.

Simple patch for sync functions attached.

#7756 Boost.HS install instructions outdated new danieljames Bugs To Be Determined quickbook

Reported by andysem, 3 years ago.

Description

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.

#7763 Boost.Parameter functions no longer accept non-moveable types as arguments new danielw Bugs To Be Determined parameter

Reported by John Bytheway <jbytheway+boost@…>, 3 years ago.

Description

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<mpl::_, Target> type;

to

typedef is_convertible<mpl::_, const Target&> type;

I make no claim that this is exactly the correct fix, but I believe something along these lines is required.

#7769 BOOST_MPL_LIMIT_METAFUNCTION_ARITY > 8 causes compilation error on gcc new agurtovoy Bugs To Be Determined mpl

Reported by Adam Lach <salvage@…>, 3 years ago.

Description
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
#define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 9

#include <boost/mpl/lambda.hpp>

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

#7776 vector::assign(Iter first, Iter last) should be implemented more efficiently new igaztanaga Bugs To Be Determined container

Reported by kariya_mitsuru@…, 3 years ago.

Description

Current implementation of vector::assign(Iter first, Iter last) is same behavior whether Iter is ForwardIterator? or not. (First, overwrite to current elements, then erase or insert)

But if Iter is ForwardIterator? and capacity() < distance(first, last), it is only necessary to discard old buffer (including its contents) and allocate new buffer which capacity is at least distance(first, last).

Note: according to C++11 specification, value_type need not be MoveInsertable? into Container if Iter is ForwardIterator?.

#7785 karma real generator limits precision to digits10 no matter exponent new hkaiser Bugs To Be Determined spirit

Reported by strk@…, 3 years ago.

Description

The real_inserter::call_n method here is limiting the user-provided precision by the  http://svn.boost.org/svn/boost/trunk/boost/spirit/home/karma/numeric/detail/real_utils.hpp

But that value is later used to determine how many decimal digits to print, independently on where the first non-zero digit is. This means overlimiting the actual number of significant digit for no evident reason.

The user provided ::precision() function has access to the full number and thus can judge when to provide more or less precision depending on magnitude. Why not trusting that ?

#7790 Length check for destination buffer new chris_kohlhoff Bugs To Be Determined asio

Reported by Gaurav Gupta <g.gupta@…>, 3 years ago.

Description

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.

#7792 Boost serialization is incompatible with final keyword new johnmaddock Bugs To Be Determined serialization

Reported by Marco Wannemaker <marco.wannemaker@…>, 3 years ago.

Description

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.

#7803 [program_options] boost/program_options/errors.hpp:253: warning: unused parameter ‘option_name’ new vladimir_prus Bugs To Be Determined program_options

Reported by Andrew Hundt <ATHundt@…>, 3 years ago.

Description

The following warning is present in boost.program_options, and the boost/program_options/errors.hpp:253: warning: unused parameter ‘option_name’

#7807 message_queue do_send and do_receive blocked for interprocess_mutex new igaztanaga Bugs To Be Determined interprocess

Reported by zyt1013@…, 3 years ago.

Description

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<interprocess_mutex> lock(p_hdr->m_mutex)”

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Note: See TracQuery for help on using queries.