c7cf80e5df
I often have the problem that when I change a std::wstring to boost::optional<std::wstring> and the variable is used as a parameter with Boost.Format, the result silently changes from the string contents to "1". This change prevents implicit conversion to bool if the compiler supports explicit conversion operators.
29 lines
693 B
C++
29 lines
693 B
C++
// Copyright (C) 2014, Andrzej Krzemienski.
|
|
//
|
|
// 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)
|
|
//
|
|
// See http://www.boost.org/lib/optional for documentation.
|
|
//
|
|
// You are welcome to contact the author at:
|
|
// akrzemi1@gmail.com
|
|
//
|
|
#include "boost/optional.hpp"
|
|
|
|
//
|
|
// THIS TEST SHOULD FAIL TO COMPILE
|
|
//
|
|
|
|
#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS)
|
|
|
|
bool test_implicit_conversion_to_bool()
|
|
{
|
|
boost::optional<int> opt;
|
|
return opt;
|
|
}
|
|
|
|
#else
|
|
# error "Test skipped: this compiler does not support explicit conversion operators."
|
|
#endif
|