// http://www.boost.org/LICENSE_1_0.txt)
//
-#include <bits/atomicity.h>
+#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2))
+# include <ext/atomicity.h>
+#else
+# include <bits/atomicity.h>
+#endif
namespace boost
{
// in anything that may be included by function_template.hpp doesn't break
#include <boost/function/detail/prologue.hpp>
-// Visual Age C++ doesn't handle the file iteration well
-#if BOOST_WORKAROUND(__IBMCPP__, >= 500)
+// Older versions of the IBM C++ compiler do not handle file iterations well
+#if BOOST_WORKAROUND(__IBMCPP__, >= 500) && BOOST_WORKAROUND(__IBMCPP__, < 800)
# if BOOST_FUNCTION_MAX_ARGS >= 0
# include <boost/function/function0.hpp>
# endif
// Boost functional.hpp header file
// See http://www.boost.org/libs/functional for documentation.
// ------------------------------------------------------------------------------
-// $Id: functional.hpp,v 1.4.20.1 2006/12/02 14:17:26 andreas_huber69 Exp $
+// $Id: functional.hpp 36246 2006-12-02 14:17:26Z andreas_huber69 $
// ------------------------------------------------------------------------------
#ifndef BOOST_FUNCTIONAL_HPP
* accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*
- * $Id: integer_traits.hpp,v 1.30 2006/02/05 10:19:42 johnmaddock Exp $
+ * $Id: integer_traits.hpp 32576 2006-02-05 10:19:42Z johnmaddock $
*
* Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers
*/
namespace boost { namespace iostreams {
-// Dinkumware that comes with QNX Momentics 6.3.0, 4.0.2, incorrectly defines the
-// EOF and WEOF macros to not std:: qualify the wint_t type (and so does
+// Dinkumware that comes with QNX Momentics 6.3.0, 4.0.2, incorrectly defines
+// the EOF and WEOF macros to not std:: qualify the wint_t type (and so does
// Sun C++ 5.8 + STLport 4). Fix by placing the def in this scope.
// NOTE: Use BOOST_WORKAROUND?
#if (defined(__QNX__) && defined(BOOST_DINKUMWARE_STDLIB)) \
template<>
struct seek_if_impl<random_access> {
template<typename T>
- static stream_offset
+ static std::streampos
seek( T& t, stream_offset off, BOOST_IOS::seekdir way,
BOOST_IOS::openmode which )
{ return iostreams::seek(t, off, way, which); }
template<>
struct seek_if_impl<any_tag> {
template<typename T>
- static stream_offset
+ static std::streampos
seek(T&, stream_offset, BOOST_IOS::seekdir, BOOST_IOS::openmode)
{ throw cant_seek(); }
};
std::streamsize write(const char_type* s, std::streamsize n, Sink* snk)
{ return output_impl::write(t_, snk, s, n); }
- stream_offset seek( stream_offset off, BOOST_IOS::seekdir way,
- BOOST_IOS::openmode which )
+ std::streampos seek( stream_offset off, BOOST_IOS::seekdir way,
+ BOOST_IOS::openmode which )
{
return this->seek( off, way, which,
(basic_null_device<char_type, seekable>*) 0);
}
template<typename Device>
- stream_offset seek( stream_offset off, BOOST_IOS::seekdir way,
- BOOST_IOS::openmode which, Device* dev )
+ std::streampos seek( stream_offset off, BOOST_IOS::seekdir way,
+ BOOST_IOS::openmode which, Device* dev )
{ return any_impl::seek(t_, dev, off, way, which); }
void close(BOOST_IOS::openmode which)
template<>
struct device_wrapper_impl<any_tag> {
template<typename Device, typename Dummy>
- static stream_offset
+ static std::streampos
seek( Device& dev, Dummy*, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which )
{
}
template<typename Device>
- static stream_offset
+ static std::streampos
seek( Device&, stream_offset, BOOST_IOS::seekdir,
BOOST_IOS::openmode, any_tag )
{
}
template<typename Device>
- static stream_offset
+ static std::streampos
seek( Device& dev, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which,
random_access )
template<>
struct flt_wrapper_impl<any_tag> {
template<typename Filter, typename Device>
- static stream_offset
+ static std::streampos
seek( Filter& f, Device* dev, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which )
{
}
template<typename Filter, typename Device>
- static stream_offset
+ static std::streampos
seek( Filter&, Device*, stream_offset,
BOOST_IOS::seekdir, BOOST_IOS::openmode, any_tag )
{ throw cant_seek(); }
template<typename Filter, typename Device>
- static stream_offset
+ static std::streampos
seek( Filter& f, Device* dev, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which,
random_access tag )
}
template<typename Filter, typename Device>
- static stream_offset
+ static std::streampos
seek( Filter& f, Device* dev, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which,
random_access, any_tag )
{ return f.seek(*dev, off, way); }
template<typename Filter, typename Device>
- static stream_offset
+ static std::streampos
seek( Filter& f, Device* dev, stream_offset off,
BOOST_IOS::seekdir way, BOOST_IOS::openmode which,
random_access, two_sequence )
std::streamsize read(char_type* s, std::streamsize n);
std::streamsize write(const char_type* s, std::streamsize n);
- stream_offset seek( stream_offset off, BOOST_IOS::seekdir way,
- BOOST_IOS::openmode which =
- BOOST_IOS::in | BOOST_IOS::out );
+ std::streampos seek( stream_offset off, BOOST_IOS::seekdir way,
+ BOOST_IOS::openmode which =
+ BOOST_IOS::in | BOOST_IOS::out );
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
void close(BOOST_IOS::openmode which = BOOST_IOS::in | BOOST_IOS::out);
#endif
{ return iostreams::write(t_, snk, s, n); }
template<typename Device>
- stream_offset seek(Device& dev, stream_offset off, BOOST_IOS::seekdir way)
+ std::streampos seek(Device& dev, stream_offset off, BOOST_IOS::seekdir way)
{ return iostreams::seek(t_, dev, off, way); }
template<typename Device>
- stream_offset seek( Device& dev, stream_offset off,
- BOOST_IOS::seekdir way, BOOST_IOS::openmode which )
+ std::streampos seek( Device& dev, stream_offset off,
+ BOOST_IOS::seekdir way, BOOST_IOS::openmode which )
{ return iostreams::seek(t_, dev, off, way, which); }
template<typename Device>
{ return boost::iostreams::write(t_, s, n); }
template<typename Mode, typename T>
-stream_offset mode_adapter<Mode, T>::seek
+std::streampos mode_adapter<Mode, T>::seek
(stream_offset off, BOOST_IOS::seekdir way, BOOST_IOS::openmode which)
{ return boost::iostreams::seek(t_, off, way, which); }
}
return result;
}
- stream_offset seek( stream_offset off, BOOST_IOS::seekdir way,
- BOOST_IOS::openmode which =
- BOOST_IOS::in | BOOST_IOS::out )
+ std::streampos seek( stream_offset off, BOOST_IOS::seekdir way,
+ BOOST_IOS::openmode which =
+ BOOST_IOS::in | BOOST_IOS::out )
{ return iostreams::seek(device_, off, way, which); }
public:
Device& device_;
range_adapter(iterator first, iterator last);
std::streamsize read(char_type* s, std::streamsize n);
std::streamsize write(const char_type* s, std::streamsize n);
- stream_offset seek(stream_offset off, BOOST_IOS::seekdir way);
+ std::streampos seek(stream_offset off, BOOST_IOS::seekdir way);
private:
iterator first_, cur_, last_;
};
template<typename Mode, typename Range>
-stream_offset range_adapter<Mode, Range>::seek
+std::streampos range_adapter<Mode, Range>::seek
(stream_offset off, BOOST_IOS::seekdir way)
{
impl::seek(first_, cur_, last_, off, way);
- return static_cast<stream_offset>(cur_ - first_);
+ return offset_to_position(cur_ - first_);
}
//------------------Implementation of range_adapter_impl----------------------//
struct resolve_traits {
typedef typename
mpl::if_<
- mpl::and_<
- boost::detail::is_incrementable<T>, // Must come first
- is_dereferenceable<T> // for CW 9.[0-4]
- >,
+ boost::detail::is_incrementable<T>,
output_iterator_adapter<Mode, Ch, T>,
const T&
>::type type;
mode_adapter<Mode, T>,
is_iterator_range<T>,
range_adapter<Mode, T>,
- mpl::and_<
- is_dereferenceable<T>,
- boost::detail::is_incrementable<T>
- >,
+ is_dereferenceable<T>,
output_iterator_adapter<Mode, Ch, T>,
is_array<T>,
array_adapter<Mode, T>,
#include <boost/iostreams/detail/streambuf/linked_streambuf.hpp>
#include <boost/iostreams/detail/error.hpp>
#include <boost/iostreams/operations.hpp>
+#include <boost/iostreams/positioning.hpp>
#include <boost/iostreams/traits.hpp>
// Must come last.
) streambuf_type;
public: // stream needs access.
void open(const T& t, int buffer_size, int pback_size);
- bool is_open();
+ bool is_open() const;
void close();
bool auto_close() const { return auto_close_; }
void set_auto_close(bool close) { auto_close_ = close; }
BOOST_IOS::openmode which );
pos_type seekpos(pos_type sp, BOOST_IOS::openmode which);
private:
- pos_type seek_impl( off_type off, BOOST_IOS::seekdir way,
+ pos_type seek_impl( stream_offset off, BOOST_IOS::seekdir way,
BOOST_IOS::openmode which );
void init_input(any_tag) { }
void init_input(input);
}
template<typename T, typename Tr>
-bool direct_streambuf<T, Tr>::is_open() { return ibeg_ != 0 && !obeg_ != 0; }
+bool direct_streambuf<T, Tr>::is_open() const
+{ return ibeg_ != 0 && !obeg_ != 0; }
template<typename T, typename Tr>
void direct_streambuf<T, Tr>::close()
inline typename direct_streambuf<T, Tr>::pos_type
direct_streambuf<T, Tr>::seekpos
(pos_type sp, BOOST_IOS::openmode)
-{ return seek_impl(sp, BOOST_IOS::beg, BOOST_IOS::in | BOOST_IOS::out); }
+{
+ return seek_impl( position_to_offset(sp), BOOST_IOS::beg,
+ BOOST_IOS::in | BOOST_IOS::out );
+}
template<typename T, typename Tr>
void direct_streambuf<T, Tr>::close(BOOST_IOS::openmode which)
template<typename T, typename Tr>
typename direct_streambuf<T, Tr>::pos_type direct_streambuf<T, Tr>::seek_impl
- (off_type off, BOOST_IOS::seekdir way, BOOST_IOS::openmode which)
+ (stream_offset off, BOOST_IOS::seekdir way, BOOST_IOS::openmode which)
{
using namespace std;
BOOST_IOS::openmode both = BOOST_IOS::in | BOOST_IOS::out;
if (two_head() && (which & both) == both)
throw bad_seek();
- off_type result = -1;
+ stream_offset result = -1;
bool one = one_head();
if (one && (pptr() != 0 || gptr()== 0))
init_get_area(); // Switch to input mode, for code reuse.
pbump(static_cast<int>(next - (pptr() - obeg_)));
result = next;
}
- return result;
+ return offset_to_position(result);
}
template<typename T, typename Tr>
void sync_impl();
void close_impl(BOOST_IOS::openmode);
- enum {
+ enum flag_type {
f_open = 1,
f_input_closed = f_open << 1,
f_output_closed = f_input_closed << 1,
inline typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
indirect_streambuf<T, Tr, Alloc, Mode>::seekpos
(pos_type sp, BOOST_IOS::openmode)
-{ return seek_impl(sp, BOOST_IOS::beg, BOOST_IOS::in | BOOST_IOS::out); }
+{
+ return seek_impl( position_to_offset(sp), BOOST_IOS::beg,
+ BOOST_IOS::in | BOOST_IOS::out );
+}
template<typename T, typename Tr, typename Alloc, typename Mode>
typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
BOOST_IOS::in | BOOST_IOS::out );
std::streamsize read(char_type* s, std::streamsize n);
std::streamsize write(const char_type* s, std::streamsize n);
- stream_offset seek( stream_offset off, BOOST_IOS::seekdir way,
- BOOST_IOS::openmode which =
- BOOST_IOS::in | BOOST_IOS::out );
+ std::streampos seek( stream_offset off, BOOST_IOS::seekdir way,
+ BOOST_IOS::openmode which =
+ BOOST_IOS::in | BOOST_IOS::out );
void open( const std::string& path,
BOOST_IOS::openmode mode =
BOOST_IOS::in | BOOST_IOS::out,
{ return pimpl_->file_.sputn(s, n); }
template<typename Ch>
-stream_offset basic_file<Ch>::seek
+std::streampos basic_file<Ch>::seek
( stream_offset off, BOOST_IOS::seekdir way,
BOOST_IOS::openmode )
{ return iostreams::seek(pimpl_->file_, off, way); }
bool is_open() const { return pimpl_->flags_ != 0; }
std::streamsize read(char_type* s, std::streamsize n);
std::streamsize write(const char_type* s, std::streamsize n);
- stream_offset seek(stream_offset off, BOOST_IOS::seekdir way);
+ std::streampos seek(stream_offset off, BOOST_IOS::seekdir way);
void close();
private:
struct impl {
//------------------Definition of mapped_file---------------------------------//
-class mapped_file {
+class BOOST_IOSTREAMS_DECL mapped_file {
private:
typedef mapped_file_source delegate_type;
delegate_type delegate_;
static int alignment() { return mapped_file_source::alignment(); }
};
-struct mapped_file_sink : private mapped_file {
+struct BOOST_IOSTREAMS_DECL mapped_file_sink : private mapped_file {
friend struct operations<mapped_file_sink>;
typedef char char_type;
struct category
{ };
std::streamsize read(Ch*, std::streamsize) { return 0; }
std::streamsize write(const Ch*, std::streamsize n) { return n; }
- stream_offset seek( stream_offset, BOOST_IOS::seekdir,
- BOOST_IOS::openmode =
- BOOST_IOS::in | BOOST_IOS::out )
+ std::streampos seek( stream_offset, BOOST_IOS::seekdir,
+ BOOST_IOS::openmode =
+ BOOST_IOS::in | BOOST_IOS::out )
{ return -1; }
void close(BOOST_IOS::openmode = BOOST_IOS::in | BOOST_IOS::out) { }
};
template<typename Sink>
void close(Sink& snk, BOOST_IOS::openmode m)
{
+ namespace io = boost::iostreams;
+
if (m & BOOST_IOS::out) {
// Close zlib compressor.
base_type::close(snk, BOOST_IOS::out);
- // Write final fields of gzip file format.
- write_long(this->crc(), snk);
- write_long(this->total_in(), snk);
+ if (flags_ & f_header_done) {
+
+ // Write final fields of gzip file format.
+ write_long(this->crc(), snk);
+ write_long(this->total_in(), snk);
+ }
+
}
#if BOOST_WORKAROUND(__GNUC__, == 2) && defined(__STL_CONFIG_H) || \
BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) \
boost::iostreams::put(next, static_cast<char>(0xFF & (n >> 24)));
}
- enum {
+ enum flag_type {
f_header_done = 1,
f_body_done = f_header_done << 1,
f_footer_done = f_body_done << 1
if (static_cast<int>(read_uint32(rng, gzip::bad_footer)) != this->total_out())
throw gzip_error(gzip::bad_length);
}
- enum {
+ enum flag_type {
f_header_read = 1,
f_footer_read = f_header_read << 1,
f_text = f_footer_read << 1
static_cast<streamsize>(str.size() - offset_);
streamsize amt = (std::min)(avail, n);
std::copy( str.data() + offset_,
- str.data() + offset_ + amt,
- s );
+ str.data() + offset_ + amt,
+ s );
offset_ += amt;
if ( !(flags_ & f_header_done) &&
- offset_ == static_cast<std::size_t>(str.size()) )
+ offset_ == static_cast<std::size_t>(str.size()) )
{
flags_ |= f_header_done;
}
template<typename Alloc>
zlib_compressor_impl<Alloc>::~zlib_compressor_impl()
-{ /*reset(true, false);*/ }
+{ reset(true, false); }
template<typename Alloc>
bool zlib_compressor_impl<Alloc>::filter
template<typename Alloc>
zlib_decompressor_impl<Alloc>::~zlib_decompressor_impl()
-{ /*reset(false, false);*/ }
+{ reset(false, false); }
template<typename Alloc>
zlib_decompressor_impl<Alloc>::zlib_decompressor_impl(int window_bits)
static BOOST_LLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
- BOOST_STATIC_CONSTANT(bool, is_bounded = false);
- BOOST_STATIC_CONSTANT(bool, is_modulo = false);
+ BOOST_STATIC_CONSTANT(bool, is_bounded = true);
+ BOOST_STATIC_CONSTANT(bool, is_modulo = true);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
static BOOST_ULLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
- BOOST_STATIC_CONSTANT(bool, is_bounded = false);
- BOOST_STATIC_CONSTANT(bool, is_modulo = false);
+ BOOST_STATIC_CONSTANT(bool, is_bounded = true);
+ BOOST_STATIC_CONSTANT(bool, is_modulo = true);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
#endif
#endif
+
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/always.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
#include <boost/mpl/aux_/na.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/and.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/use_preprocessed.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/apply.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.17 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/apply_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/apply_fwd.hpp,v $
-// $Date: 2005/08/25 16:27:21 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2005-08-25 18:27:28 +0200 (Thu, 25 Aug 2005) $
+// $Revision: 30670 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/aux_/na.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/apply_wrap.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-03 17:56:59 +0200 (Fri, 03 Sep 2004) $
+// $Revision: 24892 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/aux_/arity.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/arg.hpp,v $
-// $Date: 2004/09/21 13:48:07 $
-// $Revision: 1.12 $
+// $Source$
+// $Date: 2004-09-21 15:48:10 +0200 (Tue, 21 Sep 2004) $
+// $Revision: 25308 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/arg_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/arg_fwd.hpp,v $
-// $Date: 2004/09/28 13:56:58 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-28 15:56:59 +0200 (Tue, 28 Sep 2004) $
+// $Revision: 25453 $
#include <boost/mpl/aux_/adl_barrier.hpp>
#include <boost/mpl/aux_/nttp_decl.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/assert.hpp,v $
-// $Date: 2006/11/10 21:31:19 $
-// $Revision: 1.13.14.6 $
+// $Source$
+// $Date: 2006-11-10 22:31:19 +0100 (Fri, 10 Nov 2006) $
+// $Revision: 35997 $
#include <boost/mpl/not.hpp>
#include <boost/mpl/aux_/value_wknd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/adl_barrier.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-28 15:56:59 +0200 (Tue, 28 Sep 2004) $
+// $Revision: 25453 $
#include <boost/mpl/aux_/config/adl.hpp>
#include <boost/mpl/aux_/config/gcc.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arg_typedef.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/lambda.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arity.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/dtp.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/arity_spec.hpp,v $
-// $Date: 2004/11/28 02:04:02 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-11-28 03:04:02 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26326 $
#include <boost/mpl/int.hpp>
#include <boost/mpl/limits/arity.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/common_name_wknd.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/adl.hpp,v $
-// $Date: 2004/09/16 14:08:47 $
-// $Revision: 1.1 $
+// $Source$
+// $Date: 2004-09-16 16:09:12 +0200 (Thu, 16 Sep 2004) $
+// $Revision: 25148 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/intel.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/arrays.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-03 17:56:59 +0200 (Fri, 03 Sep 2004) $
+// $Revision: 24892 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/bind.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/compiler.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.9 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#if !defined(BOOST_MPL_CFG_COMPILER_DIR)
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/ctps.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
#include <boost/config.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/dtp.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.9 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/eti.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/gcc.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#if defined(__GNUC__) && !defined(__EDG_VERSION__)
# define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/has_apply.hpp,v $
-// $Date: 2004/09/13 06:10:10 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-09-13 08:10:10 +0200 (Mon, 13 Sep 2004) $
+// $Revision: 25029 $
#include <boost/mpl/aux_/config/has_xxx.hpp>
#include <boost/mpl/aux_/config/msvc.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/has_xxx.hpp,v $
-// $Date: 2004/09/03 15:56:56 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-03 17:56:59 +0200 (Fri, 03 Sep 2004) $
+// $Revision: 24892 $
#include <boost/mpl/aux_/config/overload_resolution.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/integral.hpp,v $
-// $Date: 2004/09/07 08:51:32 $
-// $Revision: 1.1 $
+// $Source$
+// $Date: 2004-09-07 10:53:22 +0200 (Tue, 07 Sep 2004) $
+// $Revision: 24947 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/intel.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.1 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
// BOOST_INTEL_CXX_VERSION is defined here:
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/lambda.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/ttp.hpp>
#include <boost/mpl/aux_/config/ctps.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/msvc.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
// BOOST_MSVC is defined here:
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/msvc_typename.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/nttp.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/overload_resolution.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.9 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/preprocessor.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/static_constant.hpp,v $
-// $Date: 2004/09/07 08:51:32 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-07 10:53:22 +0200 (Tue, 07 Sep 2004) $
+// $Revision: 24947 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
// BOOST_STATIC_CONSTANT is defined here:
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/ttp.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/gcc.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/use_preprocessed.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/config/workaround.hpp,v $
-// $Date: 2004/09/02 15:40:45 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/detail/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/full_lambda.hpp,v $
-// $Date: 2004/09/04 01:10:19 $
-// $Revision: 1.14 $
+// $Source$
+// $Date: 2004-09-04 03:10:23 +0200 (Sat, 04 Sep 2004) $
+// $Revision: 24896 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/lambda_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_apply.hpp,v $
-// $Date: 2004/09/03 15:56:55 $
-// $Revision: 1.1 $
+// $Source$
+// $Date: 2004-09-03 17:56:59 +0200 (Fri, 03 Sep 2004) $
+// $Revision: 24892 $
#include <boost/mpl/has_xxx.hpp>
#include <boost/mpl/aux_/config/has_apply.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/has_type.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/has_xxx.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/include_preprocessed.hpp,v $
-// $Date: 2006/11/09 00:46:57 $
-// $Revision: 1.5.14.1 $
+// $Source$
+// $Date: 2006-11-09 01:46:57 +0100 (Thu, 09 Nov 2006) $
+// $Revision: 35931 $
#include <boost/mpl/aux_/config/compiler.hpp>
#include <boost/mpl/aux_/config/preprocessor.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/integral_wrapper.hpp,v $
-// $Date: 2006/11/08 21:44:30 $
-// $Revision: 1.10.14.1 $
+// $Source$
+// $Date: 2006-11-08 22:44:30 +0100 (Wed, 08 Nov 2006) $
+// $Revision: 35926 $
// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/is_msvc_eti_arg.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/yes_no.hpp>
#include <boost/mpl/aux_/config/eti.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_arity_param.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/ttp.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_spec.hpp,v $
-// $Date: 2007/01/29 07:28:45 $
-// $Revision: 1.8.14.1 $
+// $Source$
+// $Date: 2007-01-29 08:28:45 +0100 (Mon, 29 Jan 2007) $
+// $Revision: 36830 $
#include <boost/mpl/void.hpp>
#include <boost/mpl/lambda_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/lambda_support.hpp,v $
-// $Date: 2005/08/25 16:27:21 $
-// $Revision: 1.13 $
+// $Source$
+// $Date: 2005-08-25 18:27:28 +0200 (Thu, 25 Aug 2005) $
+// $Revision: 30670 $
#include <boost/mpl/aux_/config/lambda.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_eti_base.hpp,v $
-// $Date: 2004/11/28 01:37:05 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-11-28 02:39:23 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26324 $
#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
#include <boost/mpl/aux_/config/eti.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/msvc_never_true.hpp,v $
-// $Date: 2004/09/02 15:40:43 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/msvc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na.hpp,v $
-// $Date: 2004/11/28 01:37:30 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-11-28 02:39:23 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26324 $
#include <boost/mpl/bool.hpp>
#include <boost/mpl/aux_/na_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_assert.hpp,v $
-// $Date: 2005/07/13 13:13:38 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2005-07-13 15:13:38 +0200 (Wed, 13 Jul 2005) $
+// $Revision: 30043 $
#include <boost/mpl/aux_/na.hpp>
#include <boost/mpl/aux_/config/msvc.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_fwd.hpp,v $
-// $Date: 2004/11/28 01:37:30 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-11-28 02:39:23 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26324 $
#include <boost/mpl/aux_/adl_barrier.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/na_spec.hpp,v $
-// $Date: 2004/11/28 01:38:15 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-11-28 02:39:23 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26324 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/lambda_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/nested_type_wknd.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-28 15:56:59 +0200 (Tue, 28 Sep 2004) $
+// $Revision: 25453 $
#include <boost/mpl/aux_/config/gcc.hpp>
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/nttp_decl.hpp,v $
-// $Date: 2004/12/16 22:43:05 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-12-16 23:43:05 +0100 (Thu, 16 Dec 2004) $
+// $Revision: 26536 $
#include <boost/mpl/aux_/config/nttp.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/def_params_tail.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/limits/arity.hpp>
#include <boost/mpl/aux_/config/dtp.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/default_params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/preprocessor.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/enum.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/preprocessor.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/filter_params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9)
#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/params.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/preprocessor.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/sub.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/preprocessor.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/preprocessor/tuple.hpp,v $
-// $Date: 2004/09/02 15:40:56 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0
#define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/static_cast.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/workaround.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/template_arity.hpp,v $
-// $Date: 2004/09/07 12:24:48 $
-// $Revision: 1.11 $
+// $Source$
+// $Date: 2004-09-07 14:24:50 +0200 (Tue, 07 Sep 2004) $
+// $Revision: 24957 $
#include <boost/mpl/aux_/config/ttp.hpp>
#include <boost/mpl/aux_/config/lambda.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/template_arity_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:44 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
namespace boost { namespace mpl { namespace aux {
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/type_wrapper.hpp,v $
-// $Date: 2004/09/28 13:56:59 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-28 15:56:59 +0200 (Tue, 28 Sep 2004) $
+// $Revision: 25453 $
#include <boost/mpl/aux_/config/ctps.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/value_wknd.hpp,v $
-// $Date: 2004/12/20 17:51:57 $
-// $Revision: 1.14 $
+// $Source$
+// $Date: 2004-12-20 18:52:43 +0100 (Mon, 20 Dec 2004) $
+// $Revision: 26558 $
#include <boost/mpl/aux_/static_cast.hpp>
#include <boost/mpl/aux_/config/integral.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/aux_/yes_no.hpp,v $
-// $Date: 2005/08/25 16:27:21 $
-// $Revision: 1.8 $
+// $Source$
+// $Date: 2005-08-25 18:27:28 +0200 (Thu, 25 Aug 2005) $
+// $Revision: 30670 $
#include <boost/mpl/aux_/nttp_decl.hpp>
#include <boost/mpl/aux_/config/arrays.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/bind.hpp,v $
-// $Date: 2004/10/26 14:51:04 $
-// $Revision: 1.13 $
+// $Source$
+// $Date: 2004-10-26 16:51:08 +0200 (Tue, 26 Oct 2004) $
+// $Revision: 25875 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/bind_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/bind_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/aux_/na.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/bool.hpp,v $
-// $Date: 2004/09/26 09:54:25 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-26 11:54:25 +0200 (Sun, 26 Sep 2004) $
+// $Revision: 25411 $
#include <boost/mpl/bool_fwd.hpp>
#include <boost/mpl/integral_c_tag.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/bool_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/adl_barrier.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/eval_if.hpp,v $
-// $Date: 2004/11/28 01:54:10 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-11-28 02:58:27 +0100 (Sun, 28 Nov 2004) $
+// $Revision: 26325 $
#include <boost/mpl/if.hpp>
#include <boost/mpl/aux_/na_spec.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/has_xxx.hpp,v $
-// $Date: 2006/11/09 01:05:31 $
-// $Revision: 1.4.6.1 $
+// $Source$
+// $Date: 2006-11-09 02:05:31 +0100 (Thu, 09 Nov 2006) $
+// $Revision: 35933 $
#include <boost/mpl/bool.hpp>
#include <boost/mpl/aux_/type_wrapper.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/identity.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/na_spec.hpp>
#include <boost/mpl/aux_/lambda_support.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/if.hpp,v $
-// $Date: 2004/09/07 08:51:31 $
-// $Revision: 1.25 $
+// $Source$
+// $Date: 2004-09-07 10:53:22 +0200 (Tue, 07 Sep 2004) $
+// $Revision: 24947 $
#include <boost/mpl/aux_/value_wknd.hpp>
#include <boost/mpl/aux_/static_cast.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/int.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/int_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/int_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/adl_barrier.hpp>
#include <boost/mpl/aux_/nttp_decl.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c.hpp,v $
-// $Date: 2006/11/08 21:44:27 $
-// $Revision: 1.22.6.1 $
+// $Source$
+// $Date: 2006-11-08 22:44:30 +0100 (Wed, 08 Nov 2006) $
+// $Revision: 35926 $
#include <boost/mpl/integral_c_fwd.hpp>
#include <boost/mpl/aux_/config/ctps.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c_fwd.hpp,v $
-// $Date: 2006/11/08 21:44:27 $
-// $Revision: 1.4.14.1 $
+// $Source$
+// $Date: 2006-11-08 22:44:30 +0100 (Wed, 08 Nov 2006) $
+// $Revision: 35926 $
#include <boost/mpl/aux_/config/workaround.hpp>
#include <boost/mpl/aux_/adl_barrier.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/integral_c_tag.hpp,v $
-// $Date: 2004/09/28 13:56:58 $
-// $Revision: 1.2 $
+// $Source$
+// $Date: 2004-09-28 15:56:59 +0200 (Tue, 28 Sep 2004) $
+// $Revision: 25453 $
#include <boost/mpl/aux_/adl_barrier.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/lambda.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.5 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/lambda_fwd.hpp>
#include <boost/mpl/bind.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/lambda_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/void_fwd.hpp>
#include <boost/mpl/aux_/na.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/limits/arity.hpp,v $
-// $Date: 2004/09/02 15:40:57 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
# define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/next.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/next_prior.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/next_prior.hpp,v $
-// $Date: 2004/09/17 06:09:38 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-17 08:09:38 +0200 (Fri, 17 Sep 2004) $
+// $Revision: 25163 $
#include <boost/mpl/aux_/common_name_wknd.hpp>
#include <boost/mpl/aux_/na_spec.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/not.hpp,v $
-// $Date: 2004/09/02 15:40:41 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/bool.hpp>
#include <boost/mpl/aux_/nttp_decl.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/or.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/config/use_preprocessed.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/placeholders.hpp,v $
-// $Date: 2004/09/16 14:08:46 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-16 16:09:12 +0200 (Thu, 16 Sep 2004) $
+// $Revision: 25148 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/protect.hpp,v $
-// $Date: 2004/09/07 21:37:24 $
-// $Revision: 1.10 $
+// $Source$
+// $Date: 2004-09-07 23:37:24 +0200 (Tue, 07 Sep 2004) $
+// $Revision: 24963 $
#include <boost/mpl/aux_/arity.hpp>
#include <boost/mpl/aux_/config/dtp.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/quote.hpp,v $
-// $Date: 2006/05/03 03:27:58 $
-// $Revision: 1.5.14.2 $
+// $Source$
+// $Date: 2006-05-03 05:27:58 +0200 (Wed, 03 May 2006) $
+// $Revision: 33913 $
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/void.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/size_t.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/size_t_fwd.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/size_t_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/adl_barrier.hpp>
#include <boost/config.hpp> // make sure 'size_t' is placed into 'std'
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/void.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.9 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/void_fwd.hpp>
#include <boost/mpl/bool.hpp>
//
// See http://www.boost.org/libs/mpl for documentation.
-// $Source: /cvsroot/boost/boost/boost/mpl/void_fwd.hpp,v $
-// $Date: 2004/09/02 15:40:42 $
-// $Revision: 1.3 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/mpl/aux_/adl_barrier.hpp>
// See http://www.boost.org/libs/utility/operators.htm for documentation.
// Revision History
+// 24 May 07 Changed empty_base to depend on T, see
+// http://svn.boost.org/trac/boost/ticket/979
// 21 Oct 02 Modified implementation of operators to allow compilers with a
// correct named return value optimization (NRVO) to produce optimal
// code. (Daniel Frey)
namespace boost {
namespace detail {
+template <typename T> class empty_base {
+
// Helmut Zeisel, empty base class optimization bug with GCC 3.0.0
#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==0 && __GNU_PATCHLEVEL__==0
-class empty_base {
bool dummy;
-};
-#else
-class empty_base {};
#endif
+};
+
} // namespace detail
} // namespace boost
// Note that friend functions defined in a class are implicitly inline.
// See the C++ std, 11.4 [class.friend] paragraph 5
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct less_than_comparable2 : B
{
friend bool operator<=(const T& x, const U& y) { return !(x > y); }
friend bool operator>=(const U& x, const T& y) { return !(y > x); }
};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct less_than_comparable1 : B
{
friend bool operator>(const T& x, const T& y) { return y < x; }
friend bool operator>=(const T& x, const T& y) { return !(x < y); }
};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct equality_comparable2 : B
{
friend bool operator==(const U& y, const T& x) { return x == y; }
friend bool operator!=(const T& y, const U& x) { return !(y == x); }
};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct equality_comparable1 : B
{
friend bool operator!=(const T& x, const T& y) { return !(x == y); }
// implementation available.
#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct NAME##2 : B \
{ \
friend T operator OP( const T& lhs, const U& rhs ) \
{ T nrv( rhs ); nrv OP##= lhs; return nrv; } \
}; \
\
-template <class T, class B = ::boost::detail::empty_base> \
+template <class T, class B = ::boost::detail::empty_base<T> > \
struct NAME##1 : B \
{ \
friend T operator OP( const T& lhs, const T& rhs ) \
{ T nrv( lhs ); nrv OP##= rhs; return nrv; } \
};
-#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( const T& lhs, const U& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-}; \
- \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct BOOST_OPERATOR2_LEFT(NAME) : B \
-{ \
- friend T operator OP( const U& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( const T& lhs, const T& rhs ) \
- { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
+#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
+struct NAME##2 : B \
+{ \
+ friend T operator OP( const T& lhs, const U& rhs ) \
+ { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
+}; \
+ \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
+struct BOOST_OPERATOR2_LEFT(NAME) : B \
+{ \
+ friend T operator OP( const U& lhs, const T& rhs ) \
+ { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
+}; \
+ \
+template <class T, class B = ::boost::detail::empty_base<T> > \
+struct NAME##1 : B \
+{ \
+ friend T operator OP( const T& lhs, const T& rhs ) \
+ { T nrv( lhs ); nrv OP##= rhs; return nrv; } \
};
#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
// BOOST_OPERATOR2_LEFT(NAME) only looks cool, but doesn't provide
// optimization opportunities to the compiler :)
-#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
-struct NAME##2 : B \
-{ \
- friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
- friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \
-}; \
- \
-template <class T, class B = ::boost::detail::empty_base> \
-struct NAME##1 : B \
-{ \
- friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
+#define BOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP ) \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
+struct NAME##2 : B \
+{ \
+ friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
+ friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \
+}; \
+ \
+template <class T, class B = ::boost::detail::empty_base<T> > \
+struct NAME##1 : B \
+{ \
+ friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
};
#define BOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct NAME##2 : B \
{ \
friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
}; \
\
-template <class T, class U, class B = ::boost::detail::empty_base> \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct BOOST_OPERATOR2_LEFT(NAME) : B \
{ \
friend T operator OP( const U& lhs, const T& rhs ) \
{ return T( lhs ) OP##= rhs; } \
}; \
\
-template <class T, class B = ::boost::detail::empty_base> \
+template <class T, class B = ::boost::detail::empty_base<T> > \
struct NAME##1 : B \
{ \
friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
// incrementable and decrementable contributed by Jeremy Siek
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct incrementable : B
{
friend T operator++(T& x, int)
typedef T incrementable_type;
};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct decrementable : B
{
friend T operator--(T& x, int)
// Iterator operator classes (contributed by Jeremy Siek) ------------------//
-template <class T, class P, class B = ::boost::detail::empty_base>
+template <class T, class P, class B = ::boost::detail::empty_base<T> >
struct dereferenceable : B
{
P operator->() const
}
};
-template <class T, class I, class R, class B = ::boost::detail::empty_base>
+template <class T, class I, class R, class B = ::boost::detail::empty_base<T> >
struct indexable : B
{
R operator[](I n) const
#if defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
#define BOOST_BINARY_OPERATOR( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct NAME##2 : B \
{ \
friend T operator OP( const T& lhs, const U& rhs ) \
{ T nrv( lhs ); nrv OP##= rhs; return nrv; } \
}; \
\
-template <class T, class B = ::boost::detail::empty_base> \
+template <class T, class B = ::boost::detail::empty_base<T> > \
struct NAME##1 : B \
{ \
friend T operator OP( const T& lhs, const T& rhs ) \
#else // defined(BOOST_HAS_NRVO) || defined(BOOST_FORCE_SYMMETRIC_OPERATORS)
#define BOOST_BINARY_OPERATOR( NAME, OP ) \
-template <class T, class U, class B = ::boost::detail::empty_base> \
+template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct NAME##2 : B \
{ \
friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
}; \
\
-template <class T, class B = ::boost::detail::empty_base> \
+template <class T, class B = ::boost::detail::empty_base<T> > \
struct NAME##1 : B \
{ \
friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
#undef BOOST_BINARY_OPERATOR
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct equivalent2 : B
{
friend bool operator==(const T& x, const U& y)
}
};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct equivalent1 : B
{
friend bool operator==(const T&x, const T&y)
}
};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct partially_ordered2 : B
{
friend bool operator<=(const T& x, const U& y)
{ return (y < x) || (y == x); }
};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct partially_ordered1 : B
{
friend bool operator>(const T& x, const T& y)
// Combined operator classes (contributed by Daryle Walker) ----------------//
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct totally_ordered2
: less_than_comparable2<T, U
, equality_comparable2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct totally_ordered1
: less_than_comparable1<T
, equality_comparable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct additive2
: addable2<T, U
, subtractable2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct additive1
: addable1<T
, subtractable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct multiplicative2
: multipliable2<T, U
, dividable2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct multiplicative1
: multipliable1<T
, dividable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct integer_multiplicative2
: multiplicative2<T, U
, modable2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct integer_multiplicative1
: multiplicative1<T
, modable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct arithmetic2
: additive2<T, U
, multiplicative2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct arithmetic1
: additive1<T
, multiplicative1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct integer_arithmetic2
: additive2<T, U
, integer_multiplicative2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct integer_arithmetic1
: additive1<T
, integer_multiplicative1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct bitwise2
: xorable2<T, U
, andable2<T, U
, orable2<T, U, B
> > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct bitwise1
: xorable1<T
, andable1<T
, orable1<T, B
> > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct unit_steppable
: incrementable<T
, decrementable<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct shiftable2
: left_shiftable2<T, U
, right_shiftable2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct shiftable1
: left_shiftable1<T
, right_shiftable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct ring_operators2
: additive2<T, U
, subtractable2_left<T, U
, multipliable2<T, U, B
> > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct ring_operators1
: additive1<T
, multipliable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct ordered_ring_operators2
: ring_operators2<T, U
, totally_ordered2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct ordered_ring_operators1
: ring_operators1<T
, totally_ordered1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct field_operators2
: ring_operators2<T, U
, dividable2<T, U
, dividable2_left<T, U, B
> > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct field_operators1
: ring_operators1<T
, dividable1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct ordered_field_operators2
: field_operators2<T, U
, totally_ordered2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct ordered_field_operators1
: field_operators1<T
, totally_ordered1<T, B
> > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct euclidian_ring_operators2
: ring_operators2<T, U
, dividable2<T, U
, modable2_left<T, U, B
> > > > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct euclidian_ring_operators1
: ring_operators1<T
, dividable1<T
, modable1<T, B
> > > {};
-template <class T, class U, class B = ::boost::detail::empty_base>
+template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct ordered_euclidian_ring_operators2
: totally_ordered2<T, U
, euclidian_ring_operators2<T, U, B
> > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct ordered_euclidian_ring_operators1
: totally_ordered1<T
, euclidian_ring_operators1<T, B
> > {};
-template <class T, class P, class B = ::boost::detail::empty_base>
+template <class T, class P, class B = ::boost::detail::empty_base<T> >
struct input_iteratable
: equality_comparable1<T
, incrementable<T
, dereferenceable<T, P, B
> > > {};
-template <class T, class B = ::boost::detail::empty_base>
+template <class T, class B = ::boost::detail::empty_base<T> >
struct output_iteratable
: incrementable<T, B
> {};
-template <class T, class P, class B = ::boost::detail::empty_base>
+template <class T, class P, class B = ::boost::detail::empty_base<T> >
struct forward_iteratable
: input_iteratable<T, P, B
> {};
-template <class T, class P, class B = ::boost::detail::empty_base>
+template <class T, class P, class B = ::boost::detail::empty_base<T> >
struct bidirectional_iteratable
: forward_iteratable<T, P
, decrementable<T, B
// which is an indirect base class of bidirectional_iterable,
// random_access_iteratable must not be derived from totally_ordered1
// but from less_than_comparable1 only. (Helmut Zeisel, 02-Dec-2001)
-template <class T, class P, class D, class R, class B = ::boost::detail::empty_base>
+template <class T, class P, class D, class R, class B = ::boost::detail::empty_base<T> >
struct random_access_iteratable
: bidirectional_iteratable<T, P
, less_than_comparable1<T
// Otherwise, because a Borland C++ 5.5 bug prevents a using declaration
// from working, we are forced to use inheritance for that compiler.
-# define BOOST_IMPORT_TEMPLATE4(template_name) \
- template <class T, class U, class V, class W, class B = ::boost::detail::empty_base> \
+# define BOOST_IMPORT_TEMPLATE4(template_name) \
+ template <class T, class U, class V, class W, class B = ::boost::detail::empty_base<T> > \
struct template_name : ::template_name<T, U, V, W, B> {};
-# define BOOST_IMPORT_TEMPLATE3(template_name) \
- template <class T, class U, class V, class B = ::boost::detail::empty_base> \
+# define BOOST_IMPORT_TEMPLATE3(template_name) \
+ template <class T, class U, class V, class B = ::boost::detail::empty_base<T> > \
struct template_name : ::template_name<T, U, V, B> {};
-# define BOOST_IMPORT_TEMPLATE2(template_name) \
- template <class T, class U, class B = ::boost::detail::empty_base> \
+# define BOOST_IMPORT_TEMPLATE2(template_name) \
+ template <class T, class U, class B = ::boost::detail::empty_base<T> > \
struct template_name : ::template_name<T, U, B> {};
-# define BOOST_IMPORT_TEMPLATE1(template_name) \
- template <class T, class B = ::boost::detail::empty_base> \
+# define BOOST_IMPORT_TEMPLATE1(template_name) \
+ template <class T, class B = ::boost::detail::empty_base<T> > \
struct template_name : ::template_name<T, B> {};
# endif // BOOST_NO_USING_TEMPLATE
# define BOOST_OPERATOR_TEMPLATE(template_name) \
template <class T \
,class U = T \
- ,class B = ::boost::detail::empty_base \
+ ,class B = ::boost::detail::empty_base<T> \
,class O = typename is_chained_base<U>::value \
> \
struct template_name : template_name##2<T, U, B> {}; \
// In this case we can only assume that template_name<> is equivalent to the
// more commonly needed template_name1<> form.
# define BOOST_OPERATOR_TEMPLATE(template_name) \
- template <class T, class B = ::boost::detail::empty_base> \
+ template <class T, class B = ::boost::detail::empty_base<T> > \
struct template_name : template_name##1<T, B> {};
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
{
return do_assign(p1, p2, f);
}
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)
+#if !defined(BOOST_NO_MEMBER_TEMPLATES)
template <class ST, class SA>
unsigned int BOOST_REGEX_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
return this->assign(that);
}
-#if !defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)
+#if !defined(BOOST_NO_MEMBER_TEMPLATES)
template <class ST, class SA>
explicit reg_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
: basic_regex<charT, traits>(p, f)
value_type const,
std::random_access_iterator_tag,
boost::use_default,
- signed long
+ std::ptrdiff_t
> type;
};
m_eof = true;
}
- void advance(signed long n)
+ void advance(std::ptrdiff_t n)
{
m_pos += n * sizeof(CharT);
update_char();
}
- long distance(const std_file_iterator& iter) const
+ std::ptrdiff_t distance(const std_file_iterator& iter) const
{
- return (long)(m_pos - iter.m_pos) / sizeof(CharT);
+ return (std::ptrdiff_t)(m_pos - iter.m_pos) / sizeof(CharT);
}
private:
void prev_char(void)
{ m_curChar--; }
- void advance(signed long n)
+ void advance(std::ptrdiff_t n)
{ m_curChar += n; }
- long distance(const mmap_file_iterator& iter) const
+ std::ptrdiff_t distance(const mmap_file_iterator& iter) const
{ return m_curChar - iter.m_curChar; }
void seek_end(void)
// See http://www.boost.org/libs/test for the library home page.
//
-// File : $RCSfile: enable_warnings.hpp,v $
+// File : $RCSfile$
//
-// Version : $Revision: 1.6 $
+// Version : $Revision: 32455 $
//
// Description : enable previosly suppressed warnings
// ***************************************************************************
// ***************************************************************************
// Revision History :
//
-// $Log: enable_warnings.hpp,v $
+// $Log$
// Revision 1.6 2006/01/28 07:09:08 rogeeff
// 4180 suppressed
//
// See http://www.boost.org/libs/test for the library home page.
//
-// File : $RCSfile: suppress_warnings.hpp,v $
+// File : $RCSfile$
//
-// Version : $Revision: 1.6 $
+// Version : $Revision: 32455 $
//
// Description : suppress some warnings
// ***************************************************************************
// ***************************************************************************
// Revision History :
//
-// $Log: suppress_warnings.hpp,v $
+// $Log$
// Revision 1.6 2006/01/28 07:09:08 rogeeff
// 4180 suppressed
//
// See http://www.boost.org/libs/test for the library home page.
//
-// File : $RCSfile: nullstream.hpp,v $
+// File : $RCSfile$
//
-// Version : $Revision: 1.4 $
+// Version : $Revision: 27444 $
//
// Description : simulate /dev/null stream
// ***************************************************************************
// ***************************************************************************
// Revision History :
//
-// $Log: nullstream.hpp,v $
+// $Log$
// Revision 1.4 2005/02/20 08:27:08 rogeeff
// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
//
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/bool_trait_def.hpp,v $
-// $Date: 2006/07/12 11:10:22 $
-// $Revision: 1.19.4.1 $
+// $Source$
+// $Date: 2006-07-12 13:10:22 +0200 (Wed, 12 Jul 2006) $
+// $Revision: 34511 $
#include <boost/type_traits/detail/template_arity_spec.hpp>
#include <boost/type_traits/integral_constant.hpp>
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/bool_trait_undef.hpp,v $
-// $Date: 2004/09/02 15:41:27 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
#undef BOOST_TT_AUX_BOOL_C_BASE
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/size_t_trait_def.hpp,v $
-// $Date: 2005/08/25 16:27:26 $
-// $Revision: 1.9 $
+// $Source$
+// $Date: 2005-08-25 18:27:28 +0200 (Thu, 25 Aug 2005) $
+// $Revision: 30670 $
#include <boost/type_traits/detail/template_arity_spec.hpp>
#include <boost/type_traits/integral_constant.hpp>
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/size_t_trait_undef.hpp,v $
-// $Date: 2004/09/02 15:41:27 $
-// $Revision: 1.4 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1
#undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/type_trait_def.hpp,v $
-// $Date: 2004/09/02 15:41:27 $
-// $Revision: 1.7 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#include <boost/type_traits/detail/template_arity_spec.hpp>
#include <boost/mpl/aux_/lambda_support.hpp>
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-// $Source: /cvsroot/boost/boost/boost/type_traits/detail/type_trait_undef.hpp,v $
-// $Date: 2004/09/02 15:41:27 $
-// $Revision: 1.6 $
+// $Source$
+// $Date: 2004-09-02 17:41:37 +0200 (Thu, 02 Sep 2004) $
+// $Revision: 24874 $
#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1
#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
-#define BOOST_VERSION 103400
+#define BOOST_VERSION 103401
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
// but as a *string* in the form "x_y" where x is the major version
-// number and y is the minor version number. This is used by
-// <config/auto_link.hpp> to select which library version to link to.
+// number and y is the minor version number, or in the form "x_y_z"
+// where z is the patch version number when the patch version number
+// is not zero (z > 0). This is used by <config/auto_link.hpp> to
+// select which library version to link to.
-#define BOOST_LIB_VERSION "1_34"
+#define BOOST_LIB_VERSION "1_34_1"
#endif
#define _POSIX_PTHREAD_SEMANTICS // Sun readdir_r() needs this
+// enable the XPG-compliant version of readdir_r() on AIX
+#if defined(_AIX)
+# define _LINUX_SOURCE_COMPAT
+#endif
+
#if !(defined(__HP_aCC) && defined(_ILP32) && \
!defined(_STATVFS_ACPP_PROBLEMS_FIXED))
# define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect,
return n;
}
-stream_offset file_descriptor::seek
+std::streampos file_descriptor::seek
(stream_offset off, BOOST_IOS::seekdir way)
{
using namespace std;
#ifdef BOOST_IOSTREAMS_WINDOWS
if (pimpl_->flags_ & impl::has_handle) {
LONG lDistanceToMove = static_cast<LONG>(off & 0xffffffff);
- LONG lDistanceToMoveHigh =
- off < 0xffffffff ?
- static_cast<LONG>(off >> 32) :
- 0;
+ LONG lDistanceToMoveHigh = static_cast<LONG>(off >> 32);
DWORD dwResultLow =
::SetFilePointer( pimpl_->handle_,
lDistanceToMove,
if (::GetLastError() != NO_ERROR) {
throw detail::bad_seek();
} else {
- return (static_cast<boost::intmax_t>(lDistanceToMoveHigh) << 32) +
- dwResultLow;
+ return offset_to_position((lDistanceToMoveHigh << 32) + dwResultLow);
}
}
#endif // #ifdef BOOST_IOSTREAMS_WINDOWS
SEEK_END );
if (result == -1)
throw detail::bad_seek();
- return result;
+ return offset_to_position(result);
}
void file_descriptor::close() { close_impl(*pimpl_); }
(p.new_file_size != 0 && !readonly) ?
CREATE_ALWAYS :
OPEN_EXISTING,
- FILE_ATTRIBUTE_TEMPORARY,
+ readonly ?
+ FILE_ATTRIBUTE_READONLY :
+ FILE_ATTRIBUTE_TEMPORARY,
NULL );
if (pimpl_->handle_ == INVALID_HANDLE_VALUE)
if (impl.handle_ != 0)
::close(impl.handle_);
impl.clear(true);
- throw_system_failure( msg );
+ throw_system_failure(msg);
}
} // End namespace detail.
#include <boost/iostreams/detail/config/dyn_link.hpp>
#include <boost/iostreams/filter/zlib.hpp>
-#include "zlib.h" // To configure Boost to work with zlib, see the
+#include "zlib.h" // Jean-loup Gailly's and Mark Adler's "zlib.h" header.
+ // To configure Boost to work with zlib, see the
// installation instructions here:
// http://boost.org/libs/iostreams/doc/index.html?path=7
throw std::bad_alloc();
default:
throw zlib_error(error);
+ ;
}
}
void zlib_base::after(const char*& src_begin, char*& dest_begin, bool compress)
{
z_stream* s = static_cast<z_stream*>(stream_);
- char*& next_in = reinterpret_cast<char*&>(s->next_in);
- char*& next_out = reinterpret_cast<char*&>(s->next_out);
+ char* next_in = reinterpret_cast<char*>(s->next_in);
+ char* next_out = reinterpret_cast<char*>(s->next_out);
if (calculate_crc_) {
const zlib::byte* buf = compress ?
reinterpret_cast<const zlib::byte*>(src_begin) :
}
total_in_ = s->total_in;
total_out_ = s->total_out;
- src_begin = const_cast<const char*&>(next_in);
+ src_begin = const_cast<const char*>(next_in);
dest_begin = next_out;
}
void zlib_base::reset(bool compress, bool realloc)
{
z_stream* s = static_cast<z_stream*>(stream_);
- zlib_error::check(
+ // Undiagnosed bug:
+ // deflateReset(), etc., return Z_DATA_ERROR
+ //zlib_error::check(
realloc ?
(compress ? deflateReset(s) : inflateReset(s)) :
(compress ? deflateEnd(s) : inflateEnd(s))
- );
+ ;
+ //);
}
void zlib_base::do_init