如何从模板类中的方法返回 NULL

2024-04-27

我有一个如下所示的方法:

template <typename T>
T Test<T>::FindItem(T item)
{
    if(found)
        //return original value, no problem here
    else
        //I want to return NULL here, like:
        return NULL; 
}

在运行时的某些情况下,这会失败,因为某些值无法在 C++ 中转换为 NULL,例如,std::string。我应该遵循什么方法?


如果你想按值返回并且不想弄乱返回指针和new/delete,你可以这样做:

template <typename T>
boost::optional<T> Test<T>::FindItem(T item)
{
    if(found)
        //return original value
    else
        return boost::none; 
}

并这样使用它:

Test<int> var;
boost::optional<int> V = var.FindItem(5)

if (V)
{
    // found
    int val = *V;
}
else
{
    // not found
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从模板类中的方法返回 NULL 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 使用 pandas 在不同轴上绘制条形图和时间序列图

    我有一个 pandas 数据框 它是从具有以下结构的 csv 文件中读取的 Date Latitude Longitude Brand Pump AKI Trip Miles Total Miles Gallons MPG PPG Tota
  • Kafka 一遍又一遍地重放消息 - 心跳会话已过期 - 标记协调器已死亡

    使用 python kafka api 从只有少量消息的主题中读取消息 Kafka 不断地一遍又一遍地重放队列中的消息 它从我的主题接收一条消息 返回每条消息内容 然后抛出ERROR Heartbeat session expired ma
  • 从字符串编译Java源代码? [复制]

    这个问题在这里已经有答案了 有没有办法让正在运行的Java程序编译Java源代码 作为字符串传递 Class newClass Compiler compile class ABC void xyz etc etc 理想情况下 传入源代码引
  • 在 PHP 中 RESTful 上传文件

    因此 我正在编写一个脚本 该脚本将通过 RESTful 接口将视频上传到服务器 文档告诉我 我应该将数据 包括二进制视频文件 作为 POST 请求的一部分传递 我知道如何设置我的 POST 变量 但我不知道如何处理二进制数据 API 说我应
  • 在 jQuery 中替换元素并返回新元素

    如何替换 jQuery 中的元素并返回替换元素而不是被删除的元素 我有以下场景 我有很多复选框 一旦您单击其中一个 该复选框就会被加载图标取代 一旦发生一些 AJAX 事件 加载图标就会被勾号图标取代 使用 jQuery 的replaceW
  • 从弹出视图控制器传递数据

    我有两个视图控制器 我首先打开 当我按下按钮时 第二个视图控制器被推到导航控制器堆栈上 在这里 在第二个视图控制器中 我有一个表视图 当我点击某些行时 它们被选中 如复选框 并且与该行相关的一些数据被添加到数组中 现在 当我完成选择后 我想
  • 获取 gradle 构建的 aapt2 参数?

    我有兴趣尝试使用 aapt2 从命令行编译 Android 应用程序 当我尝试执行以下操作时 链接约束布局库时遇到问题aapt2 link命令 该程序从 Android studio gradle 成功构建 如何使 gradle 命令行调用
  • ASP.NET Core 2.2 中的路由本地化

    我正在使用 ASP NET Core 2 2 开发应用程序 并且正在努力解决如何实现路由本地化的问题 例如 根据请求 如果路线中未指定语言 我需要重定向到路线 en products 如果未指定语言 则从接受语言标头获取区域设置 下面的de
  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • 直接屏幕像素/帧缓冲区访问[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想尝试创建一个玩游戏的程序 IE 机器人 我希望能够直接访问屏幕上的像素 IE 让我的程序 看到 一场比赛 然后 采取行动 或者至少
  • Windows批处理文件-显示所有子文件夹

    我在使用 Windows 批处理文件返回 JUST 文件夹 忽略文件 时遇到困难 这就是我现在所拥有的 目前它正在返回文件和子子文件夹 for r g in xx do echo g 另外 假设我只想返回以几个不同前缀开头的文件夹 例如 我
  • 如何向 gitlab-ci.yml 添加多行 bash EOD 命令?

    这个问题已被问过多次 但大多数问题都很容易解决 尽管使用工具expect它没有像我预期的那样工作 usr bin expect lt
  • 在openxml中向Excel添加样式

    我想在打开的 Excel 文档中设置文本的前景色以写入文本 为此我尝试过 var stylesheet1 spreadSheet WorkbookPart WorkbookStylesPart Stylesheet Fills fills1
  • FF Addon SDK 有打开设置页面的 API 吗?

    I use 简单首选项 https developer mozilla org en US Add ons SDK High Level APIs simple prefs模块来配置插件设置 我怎么能够以编程方式打开插件的设置页面 我们这样
  • 无法使用激活器(Play Framework)加载本机库

    我正在尝试在 Play 2 4 x 应用程序中加载本机库 我编写了一个简单的测试 该测试在 IDE IntelliJ 和 SBT 中都运行良好 在这两种情况下我都设置java library path让测试运行 我在IDE中设置 Djava
  • 为什么我的 BST 根指针由于某种未知原因而发生变化?

    我正在尝试用 C 语言实现二叉搜索树数据结构 但遇到了一个错误 我的指针值由于我不明白的原因而发生变化 请参阅帖子底部的奇怪输出 删除函数和主要函数澄清输出来自何处 我的测试功能如下 int main void Bst bst Bst ca
  • 如何在 Dart 和 Flutter 中将时间四舍五入到最接近的一刻钟?

    我有一个DateTime并愿意四舍五入至 15 秒 或其他间隔 例如 2020 03 16 12 23 53 756 到 2020 03 16 12 23 45 000 和 2020 03 16 12 24 01 1234 到 2020 0
  • 如何缩进现有 OCaml 代码

    我有大约 30 000 行缩进严重的 OCaml 代码 包括 mly 和 mll 文件 并且想要缩进它们 我尝试在谷歌上搜索 ocaml indent 的变体 我能得到的最接近的结果是使用 Omlet vim 并一次缩进一行代码 在插入模式
  • 我的 React 项目中 Firestore 数据库的读取次数非常多

    我正在使用 React 和 firebase firestore 制作一个简单的 CRUD 应用程序 我目前有一组 产品 有四条记录 主页循环显示产品 import React useEffect useState from react i
  • 如何从模板类中的方法返回 NULL

    我有一个如下所示的方法 template