如何使用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 */ }

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...