omit unnecessary bits when explicit operator conversions are supported

This commit is contained in:
James E. King III
2018-10-16 15:04:44 -04:00
parent d76d7dc4d2
commit 82a233bee1
10 changed files with 197 additions and 7 deletions
+23
View File
@@ -0,0 +1,23 @@
// Copyright 2018 James E. King III. Use, modification and
// distribution is 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)
#include <boost/logic/tribool.hpp>
int main(int, char*[])
{
using boost::logic::indeterminate;
using boost::logic::tribool;
tribool i(indeterminate);
#if !defined( BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS )
bool b = i; // expect to see: no viable conversion from 'boost::logic::tribool' to 'bool'
return (int)b;
#else
#error in c++03 explicit conversions are allowed
#endif
// NOTREACHED
return 0;
}