Update of /cvsroot/boost/boost/boost/interprocess/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv19387/detail
Modified Files:
atomic.hpp cast_tags.hpp creation_tags.hpp file_wrapper.hpp
gcd_lcm.hpp generic_cast.hpp managed_memory_impl.hpp
managed_open_or_create_impl.hpp move.hpp move_iterator.hpp
named_proxy.hpp null_create_func.hpp os_file_functions.hpp
os_thread_functions.hpp posix_time_types_wrk.hpp ptime_wrk.hpp
utilities.hpp version_type.hpp win32_api.hpp workaround.hpp
Log Message:
Changes to correct regression tests for intel-win-9.1 & cw-9.4
Index: atomic.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/atomic.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- atomic.hpp 4 May 2007 20:53:07 -0000 1.5
+++ atomic.hpp 12 May 2007 12:51:19 -0000 1.6
@@ -15,7 +15,7 @@
//! limitations under the License.
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
@@ -260,17 +260,6 @@
inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
{ *mem = val; }
-/*
-//! Compare the pointer's value with "cmp".
-//! If they are the same swap the value with "with"
-//! "mem": pointer to the pointer
-//! "with": what to swap it with
-//! "cmp": the value to compare it to
-//! Returns the old value of the pointer
-inline void *atomic_casptr(volatile void **mem, void *with, const void *cmp);
-{
-}
-*/
#elif (defined(__PPC__) || defined(__ppc__))
//! Atomically add 'val' to an boost::uint32_t
@@ -283,14 +272,14 @@
asm volatile ("0:\n\t" // retry local label
"lwarx %0,0,%2\n\t" // load prev and reserve
- "add %1,%0,%3\n\t" // temp = prev + delta
+ "add %1,%0,%3\n\t" // temp = prev + val
"stwcx. %1,0,%2\n\t" // conditionally store
"bne- 0b" // start over if we lost
// the reservation
//XXX find a cleaner way to define the temp
//it's not an output
: "=&r" (prev), "=&r" (temp) // output, temp
- : "b" (mem), "r" (delta) // inputs
+ : "b" (mem), "r" (val) // inputs
: "memory", "cc"); // clobbered
return prev;
}
@@ -326,14 +315,7 @@
//! "mem": pointer to the object
//! "val": amount to subtract
inline void atomic_sub32(volatile boost::uint32_t *mem, boost::uint32_t val)
-{
- boost::uint32_t old_value, new_value;
-
- do {
- old_value = *mem;
- new_value = old_value - val;
- } while (atomic_cas32(mem, new_value, old_value) != old_value);
-}
+{ atomic_add32(mem, boost::uint32_t(-val)); }
//! Atomically increment an apr_uint32_t by 1
//! "mem": pointer to the object
@@ -345,15 +327,7 @@
//! "mem": pointer to the atomic value
//! Returns false if the value becomes zero on decrement, otherwise true
inline bool atomic_dec32(volatile boost::uint32_t *mem)
-{
- boost::uint32_t old_value, new_value;
-
- do {
- old_value = *mem;
- new_value = old_value - 1;
- } while (atomic_cas32(mem, new_value, old_value) != old_value);
- return old_value != 1;
-}
+{ return !(atomic_add32(mem, boost::uint32_t(-1u)) - 1u); }
//! Atomically read an boost::uint32_t from memory
inline boost::uint32_t atomic_read32(volatile boost::uint32_t *mem)
@@ -378,17 +352,6 @@
inline void atomic_write32(volatile boost::uint32_t *mem, boost::uint32_t val)
{ atomic_xchg32(mem, val); }
-/*
-//! Compare the pointer's value with "cmp".
-//! If they are the same swap the value with "with"
-//! "mem": pointer to the pointer
-//! "with": what to swap it with
-//! "cmp": the value to compare it to
-//! Returns the old value of the pointer
-inline void *atomic_casptr(volatile void **mem, void *with, const void *cmp);
-{
-}
-*/
#else
#error No atomic operations implemented for this platform, sorry!
Index: cast_tags.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/cast_tags.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- cast_tags.hpp 4 May 2007 20:53:07 -0000 1.2
+++ cast_tags.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: creation_tags.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/creation_tags.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- creation_tags.hpp 4 May 2007 20:53:07 -0000 1.2
+++ creation_tags.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: file_wrapper.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/file_wrapper.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- file_wrapper.hpp 4 May 2007 20:53:07 -0000 1.2
+++ file_wrapper.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
Index: gcd_lcm.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/gcd_lcm.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- gcd_lcm.hpp 4 May 2007 21:10:02 -0000 1.1
+++ gcd_lcm.hpp 12 May 2007 12:51:19 -0000 1.2
@@ -1,7 +1,7 @@
//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright Stephen Cleary 2000.
-// (C) Copyright Ion Gaztañaga 2007.
+// (C) Copyright Ion Gaztanaga 2007.
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
Index: generic_cast.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/generic_cast.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- generic_cast.hpp 4 May 2007 20:53:07 -0000 1.3
+++ generic_cast.hpp 12 May 2007 12:51:19 -0000 1.4
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: managed_memory_impl.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/interprocess/detail/managed_memory_impl.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- managed_memory_impl.hpp 4 May 2007 20:53:07 -0000 1.4
+++ managed_memory_impl.hpp 12 May 2007 12:51:19 -0000 1.5
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
@@ -50,6 +50,15 @@
template<class BasicManagedMemoryImpl>
class create_open_func;
+template<
+ class CharType,
+ class MemoryAlgorithm,
+ template<class IndexConfig> class IndexType
+ >
+struct segment_manager_type
+{
+ typedef segment_manager<CharType, MemoryAlgorithm, IndexType> type;
+};
//!This class is designed to be a base class to classes that manage
//!creation of objects in a fixed size memory buffer. Apart
@@ -73,8 +82,8 @@
friend class create_open_func;
public:
- typedef segment_manager
- <CharType, MemoryAlgorithm, IndexType> segment_manager;
+ typedef typename segment_manager_type
+ <CharType, MemoryAlgorithm, IndexType>::type segment_manager;
typedef typename MemoryAlgorithm::void_pointer void_pointer;
typedef typename MemoryAlgorithm::mutex_family mutex_family;
typedef CharType char_t;
@@ -120,7 +129,7 @@
}
//!Connects to a segment manager in the reserved buffer. Never throws.
- bool open_impl (void *addr, std::size_t size)
+ bool open_impl (void *addr, std::size_t)
{
if(mp_header) return false;
mp_header = static_cast<segment_manager*>(addr);
@@ -229,13 +238,13 @@
//!memory as used and return the pointer to the memory. If no memory
//!is available returns 0. Never throws.
void* allocate (std::size_t nbytes, std::nothrow_t nothrow)
- { return mp_header->allocate(nbytes, std::nothrow); }
+ { return mp_header->allocate(nbytes, nothrow); }
//!Allocates nbytes bytes aligned to "alignment" bytes. "alignment"
//!must be power of two. If no memory
//!is available returns 0. Never throws.
- void * allocate_aligned (std::size_t nbytes, std::size_t alignment,
std::nothrow_t)
- { return mp_header->allocate_aligned(nbytes, alignment, std::nothrow); }
+ void * allocate_aligned (std::size_t nbytes, std::size_t alignment,
std::nothrow_t nothrow)
+ { return mp_header->allocate_aligned(nbytes, alignment, nothrow); }
//!Allocates nbytes bytes aligned to "alignment" bytes. "alignment"
//!must be power of two. If no
Index: managed_open_or_create_impl.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- managed_open_or_create_impl.hpp 4 May 2007 20:53:07 -0000 1.4
+++ managed_open_or_create_impl.hpp 12 May 2007 12:51:19 -0000 1.5
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
@@ -196,7 +196,7 @@
//These are templatized to allow explicit instantiations
template<bool dummy>
- static void write_whole_device(DeviceAbstraction &dev, std::size_t size,
boost::mpl::false_)
+ static void write_whole_device(DeviceAbstraction &, std::size_t,
boost::mpl::false_)
{} //Empty
template<bool dummy>
@@ -246,7 +246,7 @@
}
template<bool dummy>
- static void create_device(DeviceAbstraction &dev, const char *name,
std::size_t size, boost::mpl::true_)
+ static void create_device(DeviceAbstraction &dev, const char *name,
std::size_t, boost::mpl::true_)
{
DeviceAbstraction tmp(create_only, name, read_write);
tmp.swap(dev);
@@ -260,7 +260,7 @@
ConstructFunc construct_func)
{
typedef boost::mpl::bool_<FileBased> file_like_t;
-
+ (void)mode;
error_info err;
bool created = false;
DeviceAbstraction dev;
Index: move.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/move.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- move.hpp 4 May 2007 20:53:07 -0000 1.3
+++ move.hpp 12 May 2007 12:51:19 -0000 1.4
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
Index: move_iterator.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/move_iterator.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- move_iterator.hpp 4 May 2007 20:53:07 -0000 1.2
+++ move_iterator.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
Index: named_proxy.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/named_proxy.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- named_proxy.hpp 4 May 2007 20:53:07 -0000 1.2
+++ named_proxy.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: null_create_func.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/null_create_func.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- null_create_func.hpp 4 May 2007 20:53:07 -0000 1.2
+++ null_create_func.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: os_file_functions.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/os_file_functions.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- os_file_functions.hpp 4 May 2007 20:53:07 -0000 1.4
+++ os_file_functions.hpp 12 May 2007 12:51:19 -0000 1.5
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: os_thread_functions.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/interprocess/detail/os_thread_functions.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- os_thread_functions.hpp 4 May 2007 20:53:07 -0000 1.3
+++ os_thread_functions.hpp 12 May 2007 12:51:19 -0000 1.4
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: posix_time_types_wrk.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/interprocess/detail/posix_time_types_wrk.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- posix_time_types_wrk.hpp 4 May 2007 20:53:07 -0000 1.2
+++ posix_time_types_wrk.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: ptime_wrk.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/ptime_wrk.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- ptime_wrk.hpp 4 May 2007 21:10:02 -0000 1.1
+++ ptime_wrk.hpp 12 May 2007 12:51:19 -0000 1.2
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2006. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2006. 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)
//
Index: utilities.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/utilities.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- utilities.hpp 4 May 2007 20:53:07 -0000 1.5
+++ utilities.hpp 12 May 2007 12:51:19 -0000 1.6
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007.
+// (C) Copyright Ion Gaztanaga 2005-2007.
// (C) Copyright Gennaro Prota 2003 - 2004.
//
// Distributed under the Boost Software License, Version 1.0.
@@ -265,16 +265,16 @@
{
public:
value_eraser(Cont & cont, typename Cont::iterator it)
- : m_map(cont), m_index_it(it), m_erase(true){}
+ : m_cont(cont), m_index_it(it), m_erase(true){}
~value_eraser()
{
if(boost::has_nothrow_destructor<typename Cont::value_type>::value){
- if(m_erase) m_map.erase(m_index_it);
+ if(m_erase) m_cont.erase(m_index_it);
}
else{
//value_eraser is used in exceptions, so we
//disable double-exception danger
- BOOST_TRY{ if(m_erase) m_map.erase(m_index_it); }
+ BOOST_TRY{ if(m_erase) m_cont.erase(m_index_it); }
BOOST_CATCH(...){}
BOOST_CATCH_END
}
@@ -282,7 +282,7 @@
void release() { m_erase = false; }
private:
- Cont &m_map;
+ Cont &m_cont;
typename Cont::iterator m_index_it;
bool m_erase;
};
Index: version_type.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/version_type.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- version_type.hpp 4 May 2007 20:53:07 -0000 1.3
+++ version_type.hpp 12 May 2007 12:51:19 -0000 1.4
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
@@ -81,7 +81,7 @@
private:
struct two {char _[2];};
template <class U> static two test(...);
- template <class U> static char test(typename U::version*);
+ template <class U> static char test(const typename U::version*);
public:
static const bool value = sizeof(test<T>(0)) == 1;
void dummy(){}
Index: win32_api.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/win32_api.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- win32_api.hpp 4 May 2007 20:53:07 -0000 1.2
+++ win32_api.hpp 12 May 2007 12:51:19 -0000 1.3
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
Index: workaround.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/interprocess/detail/workaround.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- workaround.hpp 4 May 2007 20:53:07 -0000 1.5
+++ workaround.hpp 12 May 2007 12:51:19 -0000 1.6
@@ -1,6 +1,6 @@
//////////////////////////////////////////////////////////////////////////////
//
-// (C) Copyright Ion Gaztañaga 2005-2007. Distributed under the Boost
+// (C) Copyright Ion Gaztanaga 2005-2007. 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)
//
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs