微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用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.jb51.cc/c/111583.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐