diff --git a/Jamfile.v2 b/Jamfile.v2 deleted file mode 100644 index 14dfe2f..0000000 --- a/Jamfile.v2 +++ /dev/null @@ -1,31 +0,0 @@ -# copyright John Maddock 2003 -# Use, modification and distribution are subject to 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) - -# bring in the rules for testing -import testing ; - -test-suite static_assert : - [ run static_assert_test.cpp ] -# [ run static_assert_example_1.cpp ] - [ run static_assert_example_2.cpp ] - [ run static_assert_example_3.cpp ] - [ compile-fail static_assert_test_fail_1.cpp ] - [ compile-fail static_assert_test_fail_2.cpp ] - [ compile-fail static_assert_test_fail_3.cpp ] - [ compile-fail static_assert_test_fail_4.cpp ] - [ compile-fail static_assert_test_fail_5.cpp ] - [ compile-fail static_assert_test_fail_6.cpp ] - [ compile-fail static_assert_test_fail_7.cpp ] - [ compile-fail static_assert_test_fail_8.cpp ] - [ compile-fail static_assert_test_fail_9.cpp ] - [ compile-fail static_assert_test_fail_10.cpp ] -; - - - - - - - diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 deleted file mode 100644 index 261c316..0000000 --- a/doc/Jamfile.v2 +++ /dev/null @@ -1,20 +0,0 @@ - -# Copyright John Maddock 2005. Use, modification, and distribution are -# subject to 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) - -using quickbook ; - -xml static_assert : static_assert.qbk ; -boostbook standalone - : - static_assert - : - nav.layout=none - navig.graphics=0 - ; - -install html : ../../../doc/html/boostbook.css ; -install ../ : ../../../boost.png ; - - diff --git a/doc/static_assert.qbk b/doc/static_assert.qbk deleted file mode 100644 index 995d48a..0000000 --- a/doc/static_assert.qbk +++ /dev/null @@ -1,226 +0,0 @@ -[library Boost.StaticAssert - [copyright 2000 2005 Steve Cleary and John Maddock] - [purpose Compile time diagnostics library] - [license - 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 - ) - ] - [authors [Maddock, John], [Cleary, Steve]] - [category template] - [category testing] - [category generic] - [last-revision $Date$] -] - -[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 `` 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; -this is sometimes known as a "compile-time-assertion", but will be called a -"static assertion" throughout these docs. Note that if the condition is `true`, -then the macro will generate neither code nor data - and the macro can also -be used at either namespace, class or function scope. When used in a template, -the static assertion will be evaluated at the time the template is instantiated; -this is particularly useful for validating template parameters. - -One of the aims of `BOOST_STATIC_ASSERT` is to generate readable error messages. -These immediately tell the user that a library is being used in a manner that -is not supported. While error messages obviously differ from compiler to compiler, -but you should see something like: - - Illegal use of STATIC_ASSERTION_FAILURE - -Which is intended to at least catch the eye! - -You can use `BOOST_STATIC_ASSERT` at any place where you can place a declaration, -that is at class, function or namespace scope, this is illustrated by the -following examples: - -[section:namespace Use at namespace scope.] - -The macro can be used at namespace scope, if there is some requirement must -always be true; generally this means some platform specific requirement. -Suppose we require that `int` be at least a 32-bit integral type, and that `wchar_t` -be an unsigned type. We can verify this at compile time as follows: - - #include - #include - #include - #include - - namespace my_conditions { - - BOOST_STATIC_ASSERT(std::numeric_limits::digits >= 32); - BOOST_STATIC_ASSERT(WCHAR_MIN >= 0); - - } // namespace my_conditions - -The use of the namespace my_conditions here requires some comment. -The macro `BOOST_STATIC_ASSERT` works by generating an typedef declaration, -and since the typedef must have a name, the macro generates one automatically by -mangling a stub name with the value of `__LINE__`. When `BOOST_STATIC_ASSERT` is -used at either class or function scope then each use of `BOOST_STATIC_ASSERT` -is guaranteed to produce a name unique to that scope (provided you only use -the macro once on each line). However when used in a header at namespace -scope, that namespace can be continued over multiple headers, each of which -may have their own static assertions, and on the "same" lines, thereby generating -duplicate declarations. In theory the compiler should silently ignore duplicate -typedef declarations, however many do not do so (and even if they do they are -entitled to emit warnings in such cases). To avoid potential problems, if you -use `BOOST_STATIC_ASSERT` in a header and at namespace scope, then enclose -them in a namespace unique to that header. - -[endsect] - -[section:function Use at function scope] - -The macro is typically used at function scope inside template functions, -when the template arguments need checking. Imagine that we have an -iterator-based algorithm that requires random access iterators. -If the algorithm is instantiated with iterators that do not meet our -requirements then an error will be generated eventually, but this may -be nested deep inside several templates, making it hard for the user to -determine what went wrong. One option is to add a static assertion at -the top level of the template, in that case if the condition is not met, -then an error will be generated in a way that makes it reasonably obvious to -the user that the template is being misused. - - #include - #include - #include - - template - 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::value)); - // - // detail goes here... - return from; - } - -A couple of footnotes are in order here: the extra set of parenthesis around the -assert, is to prevent the comma inside the `is_convertible` template being -interpreted by the preprocessor as a macro argument separator; the target type -for `is_convertible` is a reference type, as some compilers have problems -using `is_convertible` when the conversion is via a user defined constructor -(in any case there is no guarantee that the iterator tag classes are -copy-constructible). - -[endsect] - -[section:class Use at class scope] - -The macro is typically used inside classes that are templates. -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 -using something like this: - - #include - #include - - template - class myclass - { - private: - BOOST_STATIC_ASSERT((std::numeric_limits::digits >= 16) - && std::numeric_limits::is_specialized - && std::numeric_limits::is_integer - && !std::numeric_limits::is_signed); - public: - /* details here */ - }; - -[endsect] - -[section:templates Use in templates] - -Normally static assertions when used inside a class or function template, -will not be instantiated until the template in which it is used is instantiated. -However, there is one potential problem to watch out for: if the static assertion -is not dependent upon one or more template parameters, then the compiler is -permitted to evaluate the static assertion at the point it is first seen, -irrespective of whether the template is ever instantiated, for example: - - template - struct must_not_be_instantiated - { - BOOST_STATIC_ASSERT(false); - }; - -Will produce a compiler error with some compilers (for example Intel 8.1 -or gcc 3.4), regardless of whether the template is ever instantiated. A -workaround in cases like this is to force the assertion to be dependent -upon a template parameter: - - template - struct must_not_be_instantiated - { - // this will be triggered if this type is instantiated - BOOST_STATIC_ASSERT(sizeof(T) == 0); - }; - - -[endsect] - -[endsect] - -[section:how How it works] - -`BOOST_STATIC_ASSERT` works as follows. There is class `STATIC_ASSERTION_FAILURE` - which is defined as: - - namespace boost{ - - template struct STATIC_ASSERTION_FAILURE; - - template <> struct STATIC_ASSERTION_FAILURE{}; - - } - -The key feature is that the error message triggered by the undefined -expression `sizeof(STATIC_ASSERTION_FAILURE<0>)`, tends to be consistent -across a wide variety of compilers. The rest of the machinery of -`BOOST_STATIC_ASSERT` is just a way to feed the `sizeof` expression into a `typedef`. -The use of a macro here is somewhat ugly; however boost members have spent -considerable effort trying to invent a static assert that avoided macros, -all to no avail. The general conclusion was that the good of a static assert -working at namespace, function, and class scope outweighed the ugliness of a macro. - -[endsect] - -[section:test Test Programs] - -[table Test programs provided with static_assert -[[Test Program][Expected to Compile][Description]] - -[[[@../../libs/static_assert/static_assert_test.cpp static_assert_test.cpp]] [Yes] [Illustrates usage, and should always compile, really just tests compiler compatibility.]] -[[[@../../libs/static_assert/static_assert_example_1.cpp static_assert_example_1.cpp]] [Platform dependent.] [Namespace scope test program, may compile depending upon the platform. ]] -[[[@../../libs/static_assert/static_assert_example_2.cpp static_assert_example_2.cpp]] [Yes] [Function scope test program. ]] -[[[@../../libs/static_assert/static_assert_example_3.cpp static_assert_example_3.cpp]] [Yes] [Class scope test program. ]] -[[[@../../libs/static_assert/static_assert_test_fail_1.cpp static_assert_test_fail_1.cpp]] [No] [Illustrates failure at namespace scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_2.cpp static_assert_test_fail_2.cpp]] [No] [Illustrates failure at non-template function scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_3.cpp static_assert_test_fail_3.cpp]] [No] [Illustrates failure at non-template class scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_4.cpp static_assert_test_fail_4.cpp]] [No] [Illustrates failure at non-template class scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_5.cpp static_assert_test_fail_5.cpp]] [No] [Illustrates failure at template class scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_6.cpp static_assert_test_fail_6.cpp]] [No] [Illustrates failure at template class member function scope. ]] -[[[@../../libs/static_assert/static_assert_test_fail_7.cpp static_assert_test_fail_7.cpp]] [No] [Illustrates failure of class scope example. ]] -[[[@../../libs/static_assert/static_assert_test_fail_8.cpp static_assert_test_fail_8.cpp]] [No] [Illustrates failure of function scope example. ]] -[[[@../../libs/static_assert/static_assert_test_fail_9.cpp static_assert_test_fail_9.cpp]] [No] [Illustrates failure of function scope example (part 2). ]] - -] - -[endsect] - - - diff --git a/index.html b/index.html deleted file mode 100644 index f1e6c32..0000000 --- a/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Automatic redirection failed, please go to - ../../doc/html/boost_staticassert.html - or view the online version at - - http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_staticassert.html -

Copyright John Maddock 2006

-

Distributed under the Boost Software License, Version 1.0. (See accompanying file - LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt).

- - - - diff --git a/static_assert.htm b/static_assert.htm deleted file mode 100644 index f1e6c32..0000000 --- a/static_assert.htm +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Automatic redirection failed, please go to - ../../doc/html/boost_staticassert.html - or view the online version at - - http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/boost_staticassert.html -

Copyright John Maddock 2006

-

Distributed under the Boost Software License, Version 1.0. (See accompanying file - LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt).

- - - - diff --git a/static_assert_example_1.cpp b/static_assert_example_1.cpp deleted file mode 100644 index 14c529c..0000000 --- a/static_assert_example_1.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include -#include - -#if !defined(WCHAR_MIN) -#define WCHAR_MIN 0 -#endif - -namespace boost{ - -namespace my_conditions { -BOOST_STATIC_ASSERT(std::numeric_limits::digits >= 32); -BOOST_STATIC_ASSERT(WCHAR_MIN >= 0); - -} // namespace my_conditions - -} // namespace boost - -int main() -{ - return 0; -} - - - - diff --git a/static_assert_example_2.cpp b/static_assert_example_2.cpp deleted file mode 100644 index 039c602..0000000 --- a/static_assert_example_2.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// (C) Copyright John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include -#include -#include - -template -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::value)); - // - // detail goes here... - return from; -} - -int main() -{ - std::deque d; - std::list l; - foo(d.begin(), d.end()); // OK - //foo(l.begin(), l.end()); // error - return 0; -} - - - - - - - diff --git a/static_assert_example_3.cpp b/static_assert_example_3.cpp deleted file mode 100644 index e958131..0000000 --- a/static_assert_example_3.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// (C) Copyright John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include - -template -class myclass -{ -private: - BOOST_STATIC_ASSERT((std::numeric_limits::digits >= 16) - && std::numeric_limits::is_specialized - && std::numeric_limits::is_integer - && !std::numeric_limits::is_signed); -public: - /* details here */ -}; - -myclass m1; // this should be OK -//myclass m2; // this should fail -//myclass m3; // and so should this - -int main() -{ - return 0; -} - - diff --git a/static_assert_test.cpp b/static_assert_test.cpp deleted file mode 100644 index 85457e8..0000000 --- a/static_assert_test.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// all these tests should succeed. -// some of these tests are rather simplistic (ie useless) -// in order to ensure that they compile on all platforms. -// - -// Namespace scope -BOOST_STATIC_ASSERT(sizeof(int) >= sizeof(short)); -BOOST_STATIC_ASSERT(sizeof(char) == 1); - -// Function (block) scope -void f() -{ - BOOST_STATIC_ASSERT(sizeof(int) >= sizeof(short)); - BOOST_STATIC_ASSERT(sizeof(char) == 1); -} - -struct Bob -{ - private: // can be in private, to avoid namespace pollution - BOOST_STATIC_ASSERT(sizeof(int) >= sizeof(short)); - BOOST_STATIC_ASSERT(sizeof(char) == 1); - public: - - // Member function scope: provides access to member variables - int x; - char c; - int f() - { -#ifndef _MSC_VER // broken sizeof in VC6 - BOOST_STATIC_ASSERT(sizeof(x) >= sizeof(short)); - BOOST_STATIC_ASSERT(sizeof(c) == 1); -#endif - return x; - } -}; - - - -// Template class scope -template -struct Bill -{ - private: // can be in private, to avoid namespace pollution - BOOST_STATIC_ASSERT(sizeof(Int) > sizeof(char)); - public: - - // Template member function scope: provides access to member variables - Int x; - Char c; - template - void f(Int2 , Char2 ) - { - BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Int2)); - BOOST_STATIC_ASSERT(sizeof(Char) == sizeof(Char2)); - } -}; - -void test_Bill() // BOOST_CT_ASSERTs are not triggerred until instantiated -{ - Bill z; - //Bill bad; // will not compile - int i = 3; - char ch = 'a'; - z.f(i, ch); - //z.f(i, i); // should not compile -} - -int main() -{ - test_Bill(); - return 0; -} - - - - diff --git a/static_assert_test_fail_1.cpp b/static_assert_test_fail_1.cpp deleted file mode 100644 index d8e0107..0000000 --- a/static_assert_test_fail_1.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// all these tests should fail: -// -typedef char a1[2]; -typedef char a2[3]; - -// Namespace scope -BOOST_STATIC_ASSERT(sizeof(a1) == sizeof(a2)); // will not compile - - - - - - diff --git a/static_assert_test_fail_10.cpp b/static_assert_test_fail_10.cpp deleted file mode 100644 index ddc2d1a..0000000 --- a/static_assert_test_fail_10.cpp +++ /dev/null @@ -1,18 +0,0 @@ -//~ Copyright 2005 Redshift Software, Inc. -//~ Distributed under the Boost Software License, Version 1.0. -//~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - -#include - -template -int foo() -{ - BOOST_STATIC_ASSERT( N < 2 ); - - return N; -} - -int main() -{ - return foo<5>(); -} diff --git a/static_assert_test_fail_2.cpp b/static_assert_test_fail_2.cpp deleted file mode 100644 index c75de49..0000000 --- a/static_assert_test_fail_2.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// all these tests should fail: -// -typedef char a1[2]; -typedef char a2[3]; - -// Function (block) scope -void f() -{ - BOOST_STATIC_ASSERT(sizeof(a1) == sizeof(a2)); // should not compile -} - - - - - diff --git a/static_assert_test_fail_3.cpp b/static_assert_test_fail_3.cpp deleted file mode 100644 index 182658a..0000000 --- a/static_assert_test_fail_3.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// this tests should fail: -// -typedef char a1[2]; -typedef char a2[3]; - -struct Bob -{ - private: // can be in private, to avoid namespace pollution - BOOST_STATIC_ASSERT(sizeof(a1) == sizeof(a2)); // will not compile - public: - - // Member function scope: provides access to member variables - int x; - char c; - int f() - { -#ifndef _MSC_VER // broken sizeof in VC6 - BOOST_STATIC_ASSERT(sizeof(x) == 4); - BOOST_STATIC_ASSERT(sizeof(c) == 1); -#endif - return x; - } -}; - - - - - - diff --git a/static_assert_test_fail_4.cpp b/static_assert_test_fail_4.cpp deleted file mode 100644 index 89c2732..0000000 --- a/static_assert_test_fail_4.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include - -// -// all these tests should fail: -// - - -struct Bob -{ - public: - - // Member function scope: provides access to member variables - char x[4]; - char c; - int f() - { -#if !defined(BOOST_MSVC) || BOOST_MSVC > 1200 // broken sizeof in VC6 - BOOST_STATIC_ASSERT(sizeof(x) == 4); - BOOST_STATIC_ASSERT(sizeof(c) == 1); - BOOST_STATIC_ASSERT((sizeof(x) == sizeof(c))); // should not compile -#endif - return x; - } -}; - - - - - - diff --git a/static_assert_test_fail_5.cpp b/static_assert_test_fail_5.cpp deleted file mode 100644 index 155c199..0000000 --- a/static_assert_test_fail_5.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// all these tests should fail: -// - -// Template class scope -template -struct Bill -{ - private: // can be in private, to avoid namespace pollution - BOOST_STATIC_ASSERT(sizeof(Int) == 4); - BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated - public: - - // Template member function scope: provides access to member variables - Int x; - Char c; - template - void f(Int2 , Char2 ) - { - BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Int2)); - BOOST_STATIC_ASSERT(sizeof(Char) == sizeof(Char2)); - //BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated - } -}; - -Bill b; - - - - diff --git a/static_assert_test_fail_6.cpp b/static_assert_test_fail_6.cpp deleted file mode 100644 index b41aa74..0000000 --- a/static_assert_test_fail_6.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// (C) Copyright Steve Cleary & John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include - -// -// all these tests should fail: -// - -// Template class scope -template -struct Bill -{ - private: // can be in private, to avoid namespace pollution - BOOST_STATIC_ASSERT(sizeof(Int) == 4); - //BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated - public: - - // Template member function scope: provides access to member variables - Int x; - Char c; - template - void f(Int2 , Char2 ) - { - BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Int2)); - BOOST_STATIC_ASSERT(sizeof(Char) == sizeof(Char2)); - BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated - } -}; - -void foo() -{ - int i = 0; - char c = 0; - Bill b; - // this should fail: - b.f(i, c); -} - - - - diff --git a/static_assert_test_fail_7.cpp b/static_assert_test_fail_7.cpp deleted file mode 100644 index 7e90126..0000000 --- a/static_assert_test_fail_7.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include - -template -class myclass -{ -private: - BOOST_STATIC_ASSERT(sizeof(UnsignedInt) * CHAR_BIT >= 16); - BOOST_STATIC_ASSERT(std::numeric_limits::is_specialized - && std::numeric_limits::is_integer - && !std::numeric_limits::is_signed); -public: - /* details here */ -}; - -myclass m2; // this should fail -myclass m3; // and so should this - -int main() -{ - return 0; -} - diff --git a/static_assert_test_fail_8.cpp b/static_assert_test_fail_8.cpp deleted file mode 100644 index a087bb7..0000000 --- a/static_assert_test_fail_8.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// (C) Copyright John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include -#include -#include - -template -RandomAccessIterator foo(RandomAccessIterator from, RandomAccessIterator) -{ - // 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::value)); - // - // detail goes here... - return from; -} - -// ensure that delayed instantiation compilers like Comeau see the failure early -// enough for "compile-fail" testing with the Boost.Build testing framework. (Greg Comeau) -template -std::list::iterator - foo(std::list::iterator, std::list::iterator); - -int main() -{ - std::deque d; - std::list l; - foo(d.begin(), d.end()); // OK - foo(l.begin(), l.end()); // error - return 0; -} - - - - - diff --git a/static_assert_test_fail_9.cpp b/static_assert_test_fail_9.cpp deleted file mode 100644 index 09e4af9..0000000 --- a/static_assert_test_fail_9.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// (C) Copyright John Maddock 2000. -// Use, modification and distribution are subject to 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) - -// See http://www.boost.org for most recent version including documentation. - -#include -#include -#include - -template -class myclass -{ -private: - BOOST_STATIC_ASSERT(sizeof(UnsignedInt) * CHAR_BIT >= 16); - BOOST_STATIC_ASSERT(std::numeric_limits::is_specialized - && std::numeric_limits::is_integer - && !std::numeric_limits::is_signed); -public: - /* details here */ -}; - -myclass m1; // this should be OK -//myclass m2; // this should fail -myclass m3; // and so should this - -int main() -{ - return 0; -} -