Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从字符串到uint的Boost可选转换问题_C++_C++11_C++14_C++17 - Fatal编程技术网

C++ 从字符串到uint的Boost可选转换问题

C++ 从字符串到uint的Boost可选转换问题,c++,c++11,c++14,c++17,C++,C++11,C++14,C++17,有人能解释为什么第一个转换有效,而第二个可选转换无效吗 // Example program #include <iostream> #include <string> #include <boost/optional.hpp> int main() { std::string x = "16"; uint16_t t = (uint16_t)std::stoi(x); std::cout<<t; // prin

有人能解释为什么第一个转换有效,而第二个可选转换无效吗

// Example program
#include <iostream>
#include <string>
#include <boost/optional.hpp>

int main()
{
  std::string x = "16";
  uint16_t t =  (uint16_t)std::stoi(x);
  std::cout<<t; // prints 16
  
  std::string x2  = "16";
  boost::optional<uint16_t> opt =  (uint16_t)std::stoi(x2);
  std::cout<<opt; // prints 1
}
//示例程序
#包括
#包括
#包括
int main()
{
std::string x=“16”;
uint16_t=(uint16_t)std::stoi(x);

std::cout
boost::optional
有点像指针。在本例中,它的名称可以转换为bool,如果它有值则为true,否则为false。这就是为什么
std::cout
std::cout << *opt;