Compare commits

..

12 Commits

Author SHA1 Message Date
2ad639bd57 merged from trunk
[SVN r49607]
2008-11-06 00:15:47 +00:00
aebadc009c merged from trunk
[SVN r49439]
2008-10-22 20:32:22 +00:00
143bc65c92 merged from trunk
[SVN r48605]
2008-09-05 04:13:30 +00:00
6fbbc86ecf merged from trunk
[SVN r47983]
2008-08-05 05:39:57 +00:00
67ae924182 merged from trunk
[SVN r45844]
2008-05-28 00:03:07 +00:00
3055ab2aca Merged revisions 44564,44567-44570,44595,44597,44602-44612,44614-44615,44620-44640,44645-44646,44650-44657,44659-44660,44662-44663,44665-44676 via svnmerge from
https://svn.boost.org/svn/boost/trunk

................
  r44564 | hkaiser | 2008-04-18 17:23:19 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed a big endian issue in tests/qi/binary.cpp
................
  r44567 | hkaiser | 2008-04-18 17:52:54 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Wave: Added a missing header file.
................
  r44568 | hkaiser | 2008-04-18 18:11:17 -0700 (Fri, 18 Apr 2008) | 1 line
  
  Spirit: removed multi_pass tests from regression runs, these are not completed yet.
................
  r44569 | djowel | 2008-04-18 19:13:57 -0700 (Fri, 18 Apr 2008) | 1 line
  
  no-case for chsets
................
  r44570 | djowel | 2008-04-18 19:14:11 -0700 (Fri, 18 Apr 2008) | 1 line
  
  no-case for chsets
................
  r44595 | johnmaddock | 2008-04-19 09:28:00 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Changed #includes to avoid circular dependencies between shared_ptr and TR1.
................
  r44597 | hkaiser | 2008-04-19 09:41:29 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit.Karma: disabled real_numerics tests for real_concept for now.
................
  r44602 | hkaiser | 2008-04-19 12:59:59 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: fixing compilation using Intel compilers
................
  r44603 | hkaiser | 2008-04-19 13:03:21 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: Added workaround for VC7.1
................
  r44604 | hkaiser | 2008-04-19 13:09:11 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: Applied a fix for HP Tru64 compiler
................
  r44605 | hkaiser | 2008-04-19 13:22:39 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit: renamed end_type to eoi_type (missed that while original renaming)
................
  r44606 | bemandawes | 2008-04-19 14:13:59 -0700 (Sat, 19 Apr 2008) | 1 line
  
  replace_extension -> change_extension name fix [Lothar May]
................
  r44607 | hkaiser | 2008-04-19 14:15:37 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Wave: attempt to fix test runs
................
  r44608 | hkaiser | 2008-04-19 18:42:27 -0700 (Sat, 19 Apr 2008) | 1 line
  
  Spirit.Lex: First version of wrapped semantic actions.
................
  r44609 | djowel | 2008-04-20 01:00:41 -0700 (Sun, 20 Apr 2008) | 1 line
  
  add wchar test
................
  r44610 | djowel | 2008-04-20 01:27:25 -0700 (Sun, 20 Apr 2008) | 1 line
  
  various fixes
................
  r44611 | djowel | 2008-04-20 01:27:41 -0700 (Sun, 20 Apr 2008) | 1 line
  
  more tests
................
  r44612 | johnmaddock | 2008-04-20 03:58:20 -0700 (Sun, 20 Apr 2008) | 4 lines
  
  Moved real_concept and std_real_concept overloads of the rounding and truncation functions into the same namespace as the classes so that they can be found via ADL.
  Updated the tests to cope with the change.
  Updated library configuration to cope with the change.
  Made sure that the rounding and truncation functions are all correctly forward declared.
................
  r44614 | danieljames | 2008-04-20 05:10:56 -0700 (Sun, 20 Apr 2008) | 15 lines
  
  Merge in fix for the swap tests, and rename allocator.
  
  Merged revisions 44512-44515,44517-44536 via svnmerge from 
  https://svn.boost.org/svn/boost/branches/unordered/trunk
  
  ................
    r44512 | danieljames | 2008-04-17 20:03:00 +0100 (Thu, 17 Apr 2008) | 11 lines
    
    Rename allocator.hpp.
  ................
    r44536 | danieljames | 2008-04-18 11:27:50 +0100 (Fri, 18 Apr 2008) | 1 line
    
    Check that hash_table_impl::swap isn't swapping with itself - which is causing the buffered functions to be set with the same value twice, resulting in an assertion.
  ................
................
  r44615 | danieljames | 2008-04-20 05:11:22 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Remove some tabs.
................
  r44620 | johnmaddock | 2008-04-20 05:53:37 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added docs for new warning_disable.hpp header.
................
  r44621 | johnmaddock | 2008-04-20 05:54:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added new warning_disable.hpp header.
................
  r44622 | hkaiser | 2008-04-20 06:00:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Karma: re-enabled real_numerics tests related to math::real_concept.
................
  r44623 | hkaiser | 2008-04-20 06:13:42 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Changed wrap_action::phoenix_action to be a embedded function object. Same errors still...
................
  r44624 | hkaiser | 2008-04-20 06:24:11 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Worked around a problem related to HP-UX_ia64_aCC.
................
  r44625 | hkaiser | 2008-04-20 06:25:47 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Reverted wrap_action code to use Boost.Bind for now, just to avoid regression errors.
................
  r44626 | hkaiser | 2008-04-20 06:30:15 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Added a workaround for missing WCHAR_MAX constant.
................
  r44627 | hkaiser | 2008-04-20 06:33:53 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Added another workaround for wchar.h
................
  r44628 | hkaiser | 2008-04-20 06:37:42 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Yet another wchar_t fix.
................
  r44629 | hkaiser | 2008-04-20 06:45:06 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44630 | hkaiser | 2008-04-20 06:46:10 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44631 | hkaiser | 2008-04-20 06:51:15 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Added some parenthesis to disambiguate expressions.
................
  r44632 | hkaiser | 2008-04-20 06:57:47 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44633 | hkaiser | 2008-04-20 07:01:18 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44634 | hkaiser | 2008-04-20 07:01:34 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit: Added a missing header #include.
................
  r44635 | hkaiser | 2008-04-20 07:04:08 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed a gcc4.3.0 compilation error.
................
  r44636 | pdimov | 2008-04-20 07:59:12 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Atomic access added.
................
  r44637 | hkaiser | 2008-04-20 08:27:30 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed eol parser
................
  r44638 | pdimov | 2008-04-20 08:37:08 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Factored out boost/detail/lightweight_thread.hpp.
................
  r44639 | hkaiser | 2008-04-20 10:00:35 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Fixed lit parser
................
  r44640 | pdimov | 2008-04-20 10:00:58 -0700 (Sun, 20 Apr 2008) | 1 line
  
  sp_atomic_mt_test.cpp added.
................
  r44645 | danieljames | 2008-04-20 11:30:21 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Initialise svnmerge for the doc branch.
................
  r44646 | danieljames | 2008-04-20 11:35:31 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Fix svnmerge for the doc branch.
................
  r44650 | danieljames | 2008-04-20 14:08:57 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Update an include.
................
  r44651 | djowel | 2008-04-20 14:11:44 -0700 (Sun, 20 Apr 2008) | 1 line
  
  problem fixed with lambda[f]
................
  r44652 | hkaiser | 2008-04-20 14:27:28 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed VC7.1 compilation issue
................
  r44653 | hkaiser | 2008-04-20 14:28:20 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Wave: Updated iterator for change in multi_pass
................
  r44654 | hkaiser | 2008-04-20 14:29:01 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Wave: Updated iterator for change in multi_pass
................
  r44655 | hkaiser | 2008-04-20 14:39:36 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Fixed wrap_action
................
  r44656 | hkaiser | 2008-04-20 14:44:25 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Cleaning up ...
................
  r44657 | hkaiser | 2008-04-20 15:37:35 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: Updated examples.
................
  r44659 | hkaiser | 2008-04-20 17:20:39 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Karma: Added actions test
................
  r44660 | hkaiser | 2008-04-20 17:29:36 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex. Updated Lexer quickstart docs with new action prototypes
................
  r44662 | chris_kohlhoff | 2008-04-20 18:23:42 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Add ability to disable the uses of the typeid operator by defining
  BOOST_NO_TYPEID or BOOST_ASIO_NO_TYPEID.
................
  r44663 | chris_kohlhoff | 2008-04-20 18:27:48 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Ensure that timer dispatching responsibility is correctly relinquished when
  processing leftover interrupts from a previous run invocation.
................
  r44665 | chris_kohlhoff | 2008-04-20 18:36:28 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Enhance example to make it clear that invocation hooking can be used with
  asynchronous operations.
................
  r44666 | chris_kohlhoff | 2008-04-20 18:39:06 -0700 (Sun, 20 Apr 2008) | 3 lines
  
  Improve efficiency of basic_streambuf::consume() by using a single call to
  gbump() rather than calling sbumpc() in a loop.
................
  r44667 | chris_kohlhoff | 2008-04-20 18:41:29 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Update version number to match release.
................
  r44668 | chris_kohlhoff | 2008-04-20 18:42:10 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Fix infinite recursion in the ssl::stream's shutdown() implementation.
................
  r44669 | hkaiser | 2008-04-20 19:01:31 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Added ~ for eoi and eol, added corresponding tests
................
  r44670 | chris_kohlhoff | 2008-04-20 19:01:34 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Improve documentation for the protected functions and data in basic_io_object<>.
................
  r44671 | hkaiser | 2008-04-20 19:02:37 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Qi: Added new test to test Jamfile
................
  r44672 | hkaiser | 2008-04-20 19:04:06 -0700 (Sun, 20 Apr 2008) | 1 line
  
  Spirit.Lex: pending commits, fixed static lexer.
................
  r44673 | chris_kohlhoff | 2008-04-20 21:02:37 -0700 (Sun, 20 Apr 2008) | 4 lines
  
  Add a special null_buffers type that allows read and write operations to
  be used to indicate the socket's readiness to read or write without
  blocking.
................
  r44674 | chris_kohlhoff | 2008-04-20 21:43:05 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add support for UNIX domain sockets.
................
  r44675 | chris_kohlhoff | 2008-04-20 22:16:15 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add new wrapper classes for stream-oriented file descriptors on POSIX platforms.
................
  r44676 | chris_kohlhoff | 2008-04-20 22:32:34 -0700 (Sun, 20 Apr 2008) | 2 lines
  
  Add new wrapper classes for stream-oriented handles on Windows.
................


[SVN r44680]
2008-04-21 05:58:26 +00:00
e2fa3911a6 post-review proto version
[SVN r44061]
2008-04-05 18:00:00 +00:00
e4054d843a spinlock_nt.hpp added, Cygwin fixes.
[SVN r44055]
2008-04-05 15:06:31 +00:00
9dcdea9efc Replaced all occurrences of non-ASCII copyright symbol with '(c)' for people using non-ASCII code pages
[SVN r43992]
2008-04-02 01:42:32 +00:00
715c05005f Added changes from David Deakins to enable compilation on Windows CE
[SVN r40679]
2007-11-02 09:17:02 +00:00
6443246b4b Boost 1.35 version of Boost.MultiIndex
allocator_utilities.hpp: added partial_std_allocator_wrapper::value_type
composite_key.hpp: used hash_fwd.hpp
auto_space.hpp: added support for non-standard allocators
bidir_node_iterator.hpp: moved friend-injected operators out of class
copy_map.hpp: added support for non-standard allocators
hash_index_args.hpp: removed deprecated use of <boost/functional/hash/hash.hpp>
hash_index_iterator.hpp: moved friend-injected operators our of class
hash_index_node.hpp: added support for non-standard allocators
header_holder.hpp:added support for non-standard allocators
index_base.hpp: added support for non-standard allocators, added modify_rollback, added small improvement to modify
index_loader.hpp: added support for non-standard allocators
index_matcher.hpp: added support for non-standard allocators
index_node_base.hpp: added support for non-standard allocators
iter_adaptor.hpp: added some out-of-class operators to alleviate a MSVC++ 6.0 problem
modify_key_adaptor.hpp: renamed some vars to accomudate broader usage scope
node_type.hpp: added support for non-standard allocators
ord_index_node.hpp: added support for non-standard allocators
ord_index_ops.hpp: implemented a more efficient equal_range
rnd_index_loader.hpp: added support for non-standard allocators
rnd_index_node.hpp: added support for non-standard allocators
rnd_index_ops.hpp: added support for non-standard allocators
rnd_index_ptr_array.hpp: added support for non-standard allocators
rnd_node_iterator.hpp: moved friend-injected operators out of class
seq_index_node.hpp: added support for non-standard allocators
seq_index_ops.hpp: added support for non-standard allocators
uintptr_type.hpp: added support for __int64
unbounded.hpp: fixed ODR problem
value_compare.hpp: fixed a small unefficiency
global_fun: initial commit
hashed_index.hpp: added support for non-standard allocators, added c[r]{begin|end}, [local_]iterator_to, rollback modify
identity_fwd.hpp: fixed wrong include guard name
key_extractors.hpp: added global_fun
mem_fun.hpp: removed superfluous =0's
ordered_index.hpp: added support for non-standard allocators, added c[r]{begin|end}, iterator_to, rollback modify, improved equal_range and range, added conformance to DR 233
random_access_index.hpp: added support for non-standard allocators, added c[r]{begin|end}, iterator_to, rollback modify, added conformance to 23.1.1/9
sequenced_index.hpp: added support for non-standard allocators, added c[r]{begin|end}, iterator_to, rollback modify, added conformance to 23.1.1/9, improved resize
multi_index_container.hpp: added support for non-standard allocators, improved ctor_args_list, rollback modify
acknowledgements.html: added entry for Boost 1.35
examples.html: renamed example 2, added B.IP example/composite_keys.cpp
future_work.html: removed entry on bimap
hash_indices.html: added c[r]{begin|end}, [local_]iterator_to, rollback modify
reference/index.html: added global_fun
reference/key_extraction.html: added global_fun, added technical correction
multi_index_container.html: added support for non-standard allocators
ord_indices.html: added c[r]{begin|end}, iterator_to, rollback modify
rnd_indices.html: added c[r]{begin|end}, iterator_to, rollback modify
seq_indices.html: added c[r]{begin|end}, iterator_to, rollback modify
release_notes.html: added entry for Boost 1.35
tests.html: added new serialization test file
basics.html: added rollback modify
creation.html: added support for non-standard allocators
tutorial/indices.html: added iterator_to
tutorial/key_extraction.html: added global_fun
composite_keys.cpp: fixed technicality
fun_key.cpp: was memfun_key.cpp, added global_fun
ip_allocator.cpp: initial commit
example/Jamfile.v2: renamed memfun_key, added ip_allocator
test_perf.cpp: fixed technicality
employee.hpp: used a non-standard allocator
test/Jamfile.v2: added new test file
non_std_allocator.hpp: initial commit
pair_of_ints.hpp: added decrement facilities
test_capacity.cpp: added extra check on resize
test_copy_assignment.cpp: added test for 23.1.1/9
test_iterators.cpp: added tests for c[r]{begin|end} and [local_]iterator_to, fixed technicality
test_key_extractors.cpp: added tests for global_fun
test_modifiers.cpp: added tests dor DR 233, fixed technicality
test_range.cpp: added extra checks to secure range refactoring
test_rearrange.cpp: fixed technicality
test_serialization.cpp: added new test file
test_serialization1.cpp: corrected include, used a non-standard allocator
test_serialization2.cpp: corrected include, used a non-standard allocator, split some stuff ro test_serialization3.cpp
test_serialization3.cpp: initial commit
test_serialization3.hpp: initial commit
test_serialization_template.hpp: removed some reliance on ADL
test_update.cpp: addes tests for rollback modify, fixed technicality

[SVN r39922]
2007-10-11 10:57:30 +00:00
82bda71faa Clear compiler warnings
[SVN r39520]
2007-09-25 13:45:52 +00:00
14 changed files with 209 additions and 35 deletions

21
CMakeLists.txt Normal file
View File

@ -0,0 +1,21 @@
#----------------------------------------------------------------------------
# This file was automatically generated from the original CMakeLists.txt file
# Add a variable to hold the headers for the library
set (lib_headers
detail
)
# Add a library target to the build system
boost_library_project(
detail
# SRCDIRS
# TESTDIRS
HEADERS ${lib_headers}
# DOCDIRS
# DESCRIPTION "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
MODULARIZED
# AUTHORS "John Maddock <john -at- johnmaddock.co.uk>"
# MAINTAINERS
)

View File

@ -1,4 +1,4 @@
/* Copyright 2003-2005 Joaqu<EFBFBD>n M L<EFBFBD>pez Mu<EFBFBD>oz. /* Copyright 2003-2008 Joaquin M Lopez Munoz.
* Distributed under the Boost Software License, Version 1.0. * Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at * (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt) * http://www.boost.org/LICENSE_1_0.txt)
@ -30,13 +30,21 @@ namespace detail{
namespace allocator{ namespace allocator{
/* partial_std_allocator_wrapper inherits the functionality of a std /* partial_std_allocator_wrapper inherits the functionality of a std
* allocator while providing a templatized ctor. * allocator while providing a templatized ctor and other bits missing
* in some stdlib implementation or another.
*/ */
template<typename Type> template<typename Type>
class partial_std_allocator_wrapper:public std::allocator<Type> class partial_std_allocator_wrapper:public std::allocator<Type>
{ {
public: public:
/* Oddly enough, STLport does not define std::allocator<void>::value_type
* when configured to work without partial template specialization.
* No harm in supplying the definition here unconditionally.
*/
typedef Type value_type;
partial_std_allocator_wrapper(){}; partial_std_allocator_wrapper(){};
template<typename Other> template<typename Other>
@ -173,7 +181,13 @@ void construct(void* p,const Type& t)
template<typename Type> template<typename Type>
void destroy(const Type* p) void destroy(const Type* p)
{ {
#if BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590))
const_cast<Type*>(p)->~Type();
#else
p->~Type(); p->~Type();
#endif
} }
} /* namespace boost::detail::allocator */ } /* namespace boost::detail::allocator */

View File

@ -42,10 +42,10 @@
# error Unknown machine endianness detected. # error Unknown machine endianness detected.
# endif # endif
# define BOOST_BYTE_ORDER __BYTE_ORDER # define BOOST_BYTE_ORDER __BYTE_ORDER
#elif defined(_BIG_ENDIAN) #elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)
# define BOOST_BIG_ENDIAN # define BOOST_BIG_ENDIAN
# define BOOST_BYTE_ORDER 4321 # define BOOST_BYTE_ORDER 4321
#elif defined(_LITTLE_ENDIAN) #elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
# define BOOST_LITTLE_ENDIAN # define BOOST_LITTLE_ENDIAN
# define BOOST_BYTE_ORDER 1234 # define BOOST_BYTE_ORDER 1234
#elif defined(__sparc) || defined(__sparc__) \ #elif defined(__sparc) || defined(__sparc__) \

0
include/boost/detail/indirect_traits.hpp Executable file → Normal file
View File

View File

@ -47,6 +47,11 @@ extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange # define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd # define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) #elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
extern "C" long __cdecl _InterlockedIncrement( long volatile * ); extern "C" long __cdecl _InterlockedIncrement( long volatile * );
@ -87,7 +92,7 @@ extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange # define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd # define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
namespace boost namespace boost
{ {

0
include/boost/detail/is_function_ref_tester.hpp Executable file → Normal file
View File

12
include/boost/detail/is_incrementable.hpp Executable file → Normal file
View File

@ -63,7 +63,12 @@ namespace is_incrementable_
tag operator,(tag,int); tag operator,(tag,int);
# define BOOST_comma(a,b) (a,b) # define BOOST_comma(a,b) (a,b)
# endif # endif
# if defined(BOOST_MSVC)
# pragma warning(push)
# pragma warning(disable:4913) // Warning about operator,
# endif
// two check overloads help us identify which operator++ was picked // two check overloads help us identify which operator++ was picked
char (& check(tag) )[2]; char (& check(tag) )[2];
@ -92,6 +97,11 @@ namespace is_incrementable_
, value = sizeof(is_incrementable_::check(BOOST_comma(x++,0))) == 1 , value = sizeof(is_incrementable_::check(BOOST_comma(x++,0))) == 1
); );
}; };
# if defined(BOOST_MSVC)
# pragma warning(pop)
# endif
} }
# undef BOOST_comma # undef BOOST_comma

0
include/boost/detail/is_xxx.hpp Executable file → Normal file
View File

View File

@ -0,0 +1,135 @@
#ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED
#define BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED
// MS compatible compilers support #pragma once
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
#endif
// boost/detail/lightweight_thread.hpp
//
// Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
// Copyright (c) 2008 Peter Dimov
//
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt
#include <boost/config.hpp>
#include <memory>
#include <cerrno>
// pthread_create, pthread_join
#if defined( BOOST_HAS_PTHREADS )
#include <pthread.h>
#else
#include <windows.h>
#include <process.h>
typedef HANDLE pthread_t;
int pthread_create( pthread_t * thread, void const *, unsigned (__stdcall * start_routine) (void*), void* arg )
{
HANDLE h = (HANDLE)_beginthreadex( 0, 0, start_routine, arg, 0, 0 );
if( h != 0 )
{
*thread = h;
return 0;
}
else
{
return EAGAIN;
}
}
int pthread_join( pthread_t thread, void ** /*value_ptr*/ )
{
::WaitForSingleObject( thread, INFINITE );
::CloseHandle( thread );
return 0;
}
#endif
// template<class F> int lw_thread_create( pthread_t & pt, F f );
namespace boost
{
namespace detail
{
class lw_abstract_thread
{
public:
virtual ~lw_abstract_thread() {}
virtual void run() = 0;
};
#if defined( BOOST_HAS_PTHREADS )
extern "C" void * lw_thread_routine( void * pv )
{
std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
pt->run();
return 0;
}
#else
unsigned __stdcall lw_thread_routine( void * pv )
{
std::auto_ptr<lw_abstract_thread> pt( static_cast<lw_abstract_thread *>( pv ) );
pt->run();
return 0;
}
#endif
template<class F> class lw_thread_impl: public lw_abstract_thread
{
public:
explicit lw_thread_impl( F f ): f_( f )
{
}
void run()
{
f_();
}
private:
F f_;
};
template<class F> int lw_thread_create( pthread_t & pt, F f )
{
std::auto_ptr<lw_abstract_thread> p( new lw_thread_impl<F>( f ) );
int r = pthread_create( &pt, 0, lw_thread_routine, p.get() );
if( r == 0 )
{
p.release();
}
return r;
}
} // namespace detail
} // namespace boost
#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_THREAD_HPP_INCLUDED

View File

@ -1,4 +1,4 @@
// Copyright <EFBFBD> 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) // Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). // Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
// Distributed under the Boost Software License, Version 1.0. (See accompany- // Distributed under the Boost Software License, Version 1.0. (See accompany-
// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -79,25 +79,17 @@
// specialized on those types for this to work. // specialized on those types for this to work.
#include <locale> #include <locale>
// for mbstate_t #include <cwchar> // for mbstate_t
#include <wchar.h> #include <cstddef> // for std::size_t
// for std::size_t
#include <cstddef>
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/detail/workaround.hpp> #include <boost/detail/workaround.hpp>
namespace std { #if defined(BOOST_NO_STDC_NAMESPACE)
#if defined(__LIBCOMO__) using ::codecvt;
using ::mbstate_t; using ::mbstate_t;
#elif defined(BOOST_DINKUMWARE_STDLIB) && !defined(__BORLANDC__) using ::size_t
using ::mbstate_t; #endif
#elif defined(__SGI_STL_PORT)
#elif defined(BOOST_NO_STDC_NAMESPACE)
using ::mbstate_t;
using ::codecvt;
#endif
} // namespace std
#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) #if !defined(__MSL_CPP__) && !defined(__LIBCOMO__)
#define BOOST_CODECVT_DO_LENGTH_CONST const #define BOOST_CODECVT_DO_LENGTH_CONST const

0
include/boost/indirect_reference.hpp Executable file → Normal file
View File

View File

@ -1,20 +1,16 @@
// ------------------------------------- // -----------------------------------------------------------
// integer_log2.hpp // integer_log2.hpp
// //
// Gives the integer part of the logarithm, in base 2, of a // Gives the integer part of the logarithm, in base 2, of a
// given number. Behavior is undefined if the argument is <= 0. // given number. Behavior is undefined if the argument is <= 0.
// //
// // Copyright (c) 2003-2004, 2008 Gennaro Prota
// (C) Copyright Gennaro Prota 2003 - 2004.
// //
// Distributed under the Boost Software License, Version 1.0. // Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at // (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt) // http://www.boost.org/LICENSE_1_0.txt)
// //
// ------------------------------------------------------ // -----------------------------------------------------------
//
// $Id$
#ifndef BOOST_INTEGER_LOG2_HPP_GP_20030301 #ifndef BOOST_INTEGER_LOG2_HPP_GP_20030301
#define BOOST_INTEGER_LOG2_HPP_GP_20030301 #define BOOST_INTEGER_LOG2_HPP_GP_20030301
@ -37,7 +33,7 @@ namespace boost {
while (x != 1) { while (x != 1) {
const T t = x >> n; const T t = static_cast<T>(x >> n);
if (t) { if (t) {
result += n; result += n;
x = t; x = t;

1
module.cmake Normal file
View File

@ -0,0 +1 @@
boost_module(detail DEPENDS integer)

View File

@ -1,7 +1,7 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// utf8_codecvt_facet.cpp // utf8_codecvt_facet.cpp
// Copyright <EFBFBD> 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) // Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). // Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
// Use, modification and distribution is subject to the Boost Software // Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@ -139,8 +139,8 @@ std::codecvt_base::result utf8_codecvt_facet::do_out(
int shift_exponent = (cont_octet_count) * 6; int shift_exponent = (cont_octet_count) * 6;
// Process the first character // Process the first character
*to++ = octet1_modifier_table[cont_octet_count] + *to++ = static_cast<char>(octet1_modifier_table[cont_octet_count] +
(unsigned char)(*from / (1 << shift_exponent)); (unsigned char)(*from / (1 << shift_exponent)));
// Process the continuation characters // Process the continuation characters
// Invariants: At the start of the loop: // Invariants: At the start of the loop:
@ -150,7 +150,7 @@ std::codecvt_base::result utf8_codecvt_facet::do_out(
int i = 0; int i = 0;
while (i != cont_octet_count && to != to_end) { while (i != cont_octet_count && to != to_end) {
shift_exponent -= 6; shift_exponent -= 6;
*to++ = 0x80 + ((*from / (1 << shift_exponent)) % (1 << 6)); *to++ = static_cast<char>(0x80 + ((*from / (1 << shift_exponent)) % (1 << 6)));
++i; ++i;
} }
// If we filled up the out buffer before encoding the character // If we filled up the out buffer before encoding the character
@ -199,7 +199,7 @@ int utf8_codecvt_facet::do_length(
last_octet_count = (get_octet_count(*from_next)); last_octet_count = (get_octet_count(*from_next));
++char_count; ++char_count;
} }
return from_next-from_end; return static_cast<int>(from_next-from_end);
} }
unsigned int utf8_codecvt_facet::get_octet_count( unsigned int utf8_codecvt_facet::get_octet_count(