如何使用boost :: optional在C中返回NULL?

前端之家收集整理的这篇文章主要介绍了如何使用boost :: optional在C中返回NULL?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个函数需要在某些情况下返回NULL,还有另一个函数需要测试此函数的返回值.我知道boost :: optional,但不知道如何使用语法.

以下是一个简单的例子:

int funct1(const string& key) {
  // use iterator to look for key in a map
  if(iterator == map.end()) {
    return NULL // need help here!
  else
    return it->second;
}

void funct2(string key) {
  if(funct1(key) == NULL) { // <-- need help here!
    // do something
  } else {
    // do something else
  }

有人可以帮忙用语法吗?

谢谢.

解决方法

它保持在“NULL”状态,直到你设置它.你可以用这个成语:
optional<int> funct1(const string& key) {
  // use iterator to look for key in a map
  optional<int> ret; 
  if (iterator != map.end()) 
  {
    ret =  it->second;
  }

  return ret;
}

然后:

if (!funct1(key)) { /* no value */ }
原文链接:https://www.f2er.com/c/111583.html

猜你在找的C&C++相关文章