Compare commits

..

21 Commits

Author SHA1 Message Date
456723606e Release 1.46.0
[SVN r69125]
2011-02-21 18:42:22 +00:00
06dedcd232 Merge trunk BOOST_ASSERT_MSG additions
[SVN r68912]
2011-02-15 14:54:16 +00:00
6f1d2476fa Change PDF URL to SF download page.
[SVN r67530]
2011-01-01 12:32:32 +00:00
e27a27c9f3 Merge documentation fixes.
* Use `doc/src/*.css` instead of `doc/html/*.css`.
* Remove wiki and people directories.
* Some documentation fixes.
* Left out `minimal.css` changes and boostbook changes because of clashes.


[SVN r63347]
2010-06-26 12:30:09 +00:00
12f96b5653 Merge warning fixes from Trunk.
[SVN r58217]
2009-12-07 13:23:38 +00:00
23d7abde22 rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
9e4d6dfeff Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
2637358ba9 Merge PDF build changes from Trunk.
[SVN r51417]
2009-02-23 18:39:32 +00:00
9e411076c6 merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
3488b2bdf2 Merge some documentation updates and fixes from trunk.
Merged revisions 47364,47402-47403 via svnmerge from 
https://svn.boost.org/svn/boost/trunk

........
  r47364 | danieljames | 2008-07-12 20:32:15 +0100 (Sat, 12 Jul 2008) | 1 line
  
  Fix a PDF link that I missed before. (in static assert)
........
  r47402 | danieljames | 2008-07-13 20:42:56 +0100 (Sun, 13 Jul 2008) | 2 lines
  
  Note that emplace is only available on a few compilers.
........
  r47403 | danieljames | 2008-07-13 21:07:45 +0100 (Sun, 13 Jul 2008) | 2 lines
  
  Update the implementation details.
........


[SVN r47405]
2008-07-13 21:08:33 +00:00
28e09a3cca Merge changes from Trunk.
[SVN r47306]
2008-07-11 10:49:31 +00:00
481c2efbac Merge minor change from Trunk.
[SVN r43358]
2008-02-21 16:51:41 +00:00
3b702727b9 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
f298ed51a9 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
851fd2622e Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
720fb456d5 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
2fa11699bf Added links to PDF docs.
[SVN r37653]
2007-05-09 17:20:56 +00:00
69dbf6f12d Remove obsolete Boost.Build v1 files.
[SVN r35880]
2006-11-06 17:10:46 +00:00
66dd3d2595 Added trivial docs change, based on user suggestion, and brought example code into synch.
[SVN r34874]
2006-08-11 18:14:13 +00:00
7a0a3fbf32 Added license info.
[SVN r34585]
2006-07-17 10:49:22 +00:00
c5de8ff789 This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
5 changed files with 61 additions and 17 deletions

View File

@ -5,16 +5,35 @@
using quickbook ; using quickbook ;
path-constant boost-images : ../../../doc/src/images ;
xml static_assert : static_assert.qbk ; xml static_assert : static_assert.qbk ;
boostbook standalone boostbook standalone
: :
static_assert static_assert
: :
<xsl:param>boost.root=../../../..
<xsl:param>nav.layout=none <xsl:param>nav.layout=none
<xsl:param>navig.graphics=0 <xsl:param>navig.graphics=0
# PDF Options:
# TOC Generation: this is needed for FOP-0.9 and later:
<xsl:param>fop1.extensions=0
# Or enable this if you're using XEP:
<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<xsl:param>fop.extensions=0
# No indent on body text:
<xsl:param>body.start.indent=0pt
# Margin size:
<xsl:param>page.margin.inner=0.5in
# Margin size:
<xsl:param>page.margin.outer=0.5in
# Yes, we want graphics for admonishments:
<xsl:param>admon.graphics=1
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
<format>pdf:<xsl:param>admon.graphics.extension=".svg"
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/doc/html
; ;
install html : ../../../doc/html/boostbook.css ;
install ../ : ../../../boost.png ;

View File

@ -15,6 +15,10 @@
[last-revision $Date$] [last-revision $Date$]
] ]
This manual is also available in
[@http://sourceforge.net/projects/boost/files/boost-docs/
printer friendly PDF format].
[section:intro Overview and Tutorial] [section:intro Overview and Tutorial]
The header `<boost/static_assert.hpp>` supplies a single macro `BOOST_STATIC_ASSERT(x)`, The header `<boost/static_assert.hpp>` supplies a single macro `BOOST_STATIC_ASSERT(x)`,
@ -94,12 +98,17 @@ the user that the template is being misused.
#include <boost/type_traits.hpp> #include <boost/type_traits.hpp>
template <class RandomAccessIterator > template <class RandomAccessIterator >
RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator to) RandomAccessIterator foo(RandomAccessIterator from,
RandomAccessIterator to)
{ {
// this template can only be used with // this template can only be used with
// random access iterators... // random access iterators...
typedef typename std::iterator_traits< RandomAccessIterator >::iterator_category cat; typedef typename std::iterator_traits<
BOOST_STATIC_ASSERT((boost::is_convertible<cat, const std::random_access_iterator_tag&>::value)); RandomAccessIterator >::iterator_category cat;
BOOST_STATIC_ASSERT(
(boost::is_convertible<
cat,
const std::random_access_iterator_tag&>::value));
// //
// detail goes here... // detail goes here...
return from; return from;
@ -122,7 +131,7 @@ Suppose we have a template-class that requires an unsigned integral type with
at least 16-bits of precision as a template argument, we can achieve this at least 16-bits of precision as a template argument, we can achieve this
using something like this: using something like this:
#include <climits> #include <limits>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
template <class UnsignedInt> template <class UnsignedInt>

View File

@ -17,6 +17,12 @@
#include <boost/config.hpp> #include <boost/config.hpp>
#include <boost/detail/workaround.hpp> #include <boost/detail/workaround.hpp>
#ifndef BOOST_NO_STATIC_ASSERT
# define BOOST_STATIC_ASSERT_MSG( B, Msg ) static_assert(B, Msg)
#else
# define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
#endif
#ifdef __BORLANDC__ #ifdef __BORLANDC__
// //
// workaround for buggy integral-constant expression support: // workaround for buggy integral-constant expression support:
@ -28,7 +34,17 @@
# define BOOST_SA_GCC_WORKAROUND # define BOOST_SA_GCC_WORKAROUND
#endif #endif
#ifdef BOOST_HAS_STATIC_ASSERT //
// If the compiler issues warnings about old C style casts,
// then enable this:
//
#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))
# define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
#else
# define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
#endif
#ifndef BOOST_NO_STATIC_ASSERT
# define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) # define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)
#else #else
@ -78,14 +94,14 @@ template<int x> struct static_assert_test{};
#elif defined(BOOST_MSVC) #elif defined(BOOST_MSVC)
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\ typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__) BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
#elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND) #elif defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND)
// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error // agurt 15/sep/02: a special care is needed to force Intel C++ issue an error
// instead of warning in case of failure // instead of warning in case of failure
# define BOOST_STATIC_ASSERT( B ) \ # define BOOST_STATIC_ASSERT( B ) \
typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
[ ::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >::value ] [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ]
#elif defined(__sgi) #elif defined(__sgi)
// special version for SGI MIPSpro compiler // special version for SGI MIPSpro compiler
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
@ -100,12 +116,12 @@ template<int x> struct static_assert_test{};
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
BOOST_STATIC_CONSTANT(int, \ BOOST_STATIC_CONSTANT(int, \
BOOST_JOIN(boost_static_assert_test_, __LINE__) = \ BOOST_JOIN(boost_static_assert_test_, __LINE__) = \
sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) ) sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >) )
#else #else
// generic version // generic version
#define BOOST_STATIC_ASSERT( B ) \ #define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\ typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)>\ sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
#endif #endif
@ -115,7 +131,7 @@ template<int x> struct static_assert_test{};
enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \ enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
= sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) } = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
#endif #endif
#endif // ndef BOOST_HAS_STATIC_ASSERT #endif // defined(BOOST_NO_STATIC_ASSERT)
#endif // BOOST_STATIC_ASSERT_HPP #endif // BOOST_STATIC_ASSERT_HPP

View File

@ -12,7 +12,7 @@
#include <boost/type_traits.hpp> #include <boost/type_traits.hpp>
template <class RandomAccessIterator > template <class RandomAccessIterator >
RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator to) RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator /*to*/)
{ {
// this template can only be used with // this template can only be used with
// random access iterators... // random access iterators...

View File

@ -5,7 +5,7 @@
// See http://www.boost.org for most recent version including documentation. // See http://www.boost.org for most recent version including documentation.
#include <climits> #include <limits>
#include <boost/limits.hpp> #include <boost/limits.hpp>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>