Language
C++
Compiler
clang 4.0.0
Options
Warnings
Boost 1.65.0
C++1z(GNU)
Boost 1.65.0
C++1z(GNU)
Boost 1.65.0
C++1z(GNU)
no pedantic
#include <iostream>
#include <optional>
struct foo
{
explicit operator std::optional<int>() {
return std::optional<int>( 1 );
}
explicit operator int() {
return 0;
}
};
int main()
{
foo my_foo;
std::optional<int> my_opt( my_foo );
std::cout << "value: " << my_opt.value() << std::endl;
}
$ clang++ prog.cc -Wall -Wextra -I/opt/wandbox/boost-1.65.0/clang-4.0.0/include -std=gnu++1z
value: 0
Exit Code:
0