Compare commits

..

6 Commits

Author SHA1 Message Date
5dc6e0a84b This commit was manufactured by cvs2svn to create tag
'Version_1_34_0'.

[SVN r37679]
2007-05-12 21:59:40 +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
2 changed files with 9 additions and 17 deletions

View File

@ -15,12 +15,12 @@
[last-revision $Date$]
]
This manual is also available in
[@http:svn.boost.org/svn/boost/sandbox/pdf/static_assert/release/static_assert.pdf
printer friendly PDF format].
[section:intro Overview and Tutorial]
This documentation is
[@http://boost-consulting.com/vault/index.php?action=downloadfile&filename=boost_static_assert-1.34.pdf&directory=PDF%20Documentation&
also available in printer-friendly PDF format].
The header `<boost/static_assert.hpp>` supplies a single macro `BOOST_STATIC_ASSERT(x)`,
which generates a compile time error message if the integral-constant-expression `x`
is not true. In other words it is the compile time equivalent of the assert macro;
@ -98,17 +98,12 @@ the user that the template is being misused.
#include <boost/type_traits.hpp>
template <class RandomAccessIterator >
RandomAccessIterator foo(RandomAccessIterator from,
RandomAccessIterator to)
RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator to)
{
// this template can only be used with
// random access iterators...
typedef typename std::iterator_traits<
RandomAccessIterator >::iterator_category cat;
BOOST_STATIC_ASSERT(
(boost::is_convertible<
cat,
const std::random_access_iterator_tag&>::value));
typedef typename std::iterator_traits< RandomAccessIterator >::iterator_category cat;
BOOST_STATIC_ASSERT((boost::is_convertible<cat, const std::random_access_iterator_tag&>::value));
//
// detail goes here...
return from;
@ -228,3 +223,4 @@ working at namespace, function, and class scope outweighed the ugliness of a mac
[endsect]

View File

@ -28,10 +28,6 @@
# define BOOST_SA_GCC_WORKAROUND
#endif
#ifdef BOOST_HAS_STATIC_ASSERT
# define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)
#else
namespace boost{
// HP aCC cannot deal with missing names for template value parameters
@ -115,7 +111,7 @@ template<int x> struct static_assert_test{};
enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
= sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
#endif
#endif // ndef BOOST_HAS_STATIC_ASSERT
#endif // BOOST_STATIC_ASSERT_HPP