Workaround MSVC 14.1 problem with template specialization partial ordering that caused compilation failure when next/prior is used with pointers. Added a test.

This commit is contained in:
Andrey Semashev
2017-08-27 17:31:34 +03:00
parent 3275ee3c82
commit 0c6b09ef6a
2 changed files with 18 additions and 3 deletions

View File

@ -92,6 +92,15 @@ int main(int, char*[])
BOOST_TEST(minus_n_unsigned_test(x.rbegin(), x.rend(), x.size()));
BOOST_TEST(minus_n_unsigned_test(x.rbegin(), x.rend(), y.size()));
// Test with pointers
int arr[8] = {};
int* p = arr;
BOOST_TEST(plus_one_test(x.begin(), x.end(), p));
BOOST_TEST(plus_n_test(x.begin(), x.end(), p));
BOOST_TEST(minus_one_test(x.begin(), x.end(), p + sizeof(arr)));
BOOST_TEST(minus_n_test(x.begin(), x.end(), p + sizeof(arr)));
BOOST_TEST(minus_n_unsigned_test(p, p + sizeof(arr), sizeof(arr)));
// Tests with integers
BOOST_TEST(boost::next(5) == 6);
BOOST_TEST(boost::next(5, 7) == 12);