diff options
Diffstat (limited to 'src/boost/libs/static_string/test/compile_fail.hpp')
-rw-r--r-- | src/boost/libs/static_string/test/compile_fail.hpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/boost/libs/static_string/test/compile_fail.hpp b/src/boost/libs/static_string/test/compile_fail.hpp new file mode 100644 index 000000000..d0d0dfdca --- /dev/null +++ b/src/boost/libs/static_string/test/compile_fail.hpp @@ -0,0 +1,27 @@ +#include <fstream> +#include <streambuf> + +namespace boost { +namespace static_strings { + +static_assert(std::is_base_of< + detail::static_string_base<0, char, std::char_traits<char>>, + static_string<0>>::value, + "the zero size optimization shall be used for N = 0"); + +static_assert(std::is_base_of< + detail::static_string_base<(std::numeric_limits<char>::max)() + 1, char, std::char_traits<char>>, + static_string<(std::numeric_limits<char>::max)() + 1>>::value, + "the minimum size type optimization shall be used for N > 0"); + +static_assert(!detail::is_input_iterator<int>::value, "is_input_iterator is incorrect"); +static_assert(!detail::is_input_iterator<double>::value, "is_input_iterator is incorrect"); +static_assert(detail::is_input_iterator<int*>::value, "is_input_iterator is incorrect"); +static_assert(detail::is_input_iterator<std::istreambuf_iterator<char>>::value, "is_input_iterator is incorrect"); + +static_assert(!detail::is_forward_iterator<int>::value, "is_forward_iterator is incorrect"); +static_assert(!detail::is_forward_iterator<double>::value, "is_forward_iterator is incorrect"); +static_assert(detail::is_forward_iterator<int*>::value, "is_forward_iterator is incorrect"); +static_assert(!detail::is_forward_iterator<std::istreambuf_iterator<char>>::value, "is_forward_iterator is incorrect"); +} // boost +} // static_strings
\ No newline at end of file |