获取 std::function 的名称

2024-03-15

在下面的玩具示例中,我想获取函数的名称。该函数本身被给出为std::function争论。在C++中是否可以获取a的名称std::function object?

void printName(std::function<void()> func){
    //Need a function name()
    std::cout << func.name();
}

void magic(){};

//somewhere in the code
printName(magic());

output: magic

否则我必须将函数的名称作为第二个参数。


不,没有。函数名称(如变量名称)被编译出来,因此它们在运行时不可见。

最好的选择是传递函数的名称(使用std::string or a const char*)正如您自己建议的那样。 (或者,您可以基于以下解决方案__func__这是在 C++11 中引入的。)

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

获取 std::function 的名称 的相关文章

  • 结构体如何存储在内存中?

    我有一个struct iof header在我的代码中 我确定它的宽度是 24 字节 我执行 sizeof iof header 它返回 32 字节宽 问题1为什么是 32 字节宽而不是 24 字节宽 问题2包括其成员在内 结构体如何存储在
  • 为什么我会收到未找到分析器的警告?

    我创建了一个玩具项目来检查最新的 NET 7 预览版 5 和正则表达式代码生成 它效果很好 所以我对现有项目应用了相同的更改 不是为了生产 而是为了个人生产力 由于某种原因 我收到这些警告 CS8032 An instance of ana
  • 如何在特定时间以毫秒精度触发 C# 函数?

    我有两台计算机 它们的时间通过 NTP 同步 确保时间仅相差几毫秒 其中一台计算机将通过 TCP 向另一台计算机发送一条消息 以在两台计算机上的未来指定时间启动某个 c 函数 我的问题是 如何在特定时间以毫秒精度 或更好 触发 C 中的函数
  • NDK 应用 onDestroy 清理 - 如何 DetachCurrentThread

    因此 如果我们连接 我们必须在完成后分离线程 对吗 JNIEnv get jni env JNIEnv res JAVA VM gt GetEnv void res JNI VERSION 1 6 Using cached JavaVM J
  • 将公历日期转换为儒略日期,然后再转换回来(随着时间)

    我正在编写一个程序 必须将当前的公历日期和时间转换为儒略日期 然后再转换回公历门 最终我需要添加能够添加年 月 日 小时 分钟和秒的功能 但我需要先解决这部分问题 现在我已经从公历日期转换为儒略日期 所以从逻辑上讲 我觉得我应该能够以某种方
  • 使用 C# 将多个音频样本混合到单个文件中

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个能够创建音频文件 mp3 或 wav 的库 NAudio http www codeple
  • 局部函数声明有什么用处吗?

    大多数像我这样的 C 程序员都曾犯过以下错误 class C int main C c declares a function c taking no arguments returning a C not as intended by m
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • 如何在C中同时运行两个子进程?

    所以我开始学习并发编程 但由于某种原因我什至无法掌握基础知识 我有一个名为 fork c 的文件 其中包含一个 main 方法 在此方法中 我将 main 分叉两次 分别进入子进程 1 和 2 在孩子 1 中 我打印了字符 A 50 次 在
  • Monotouch全局异常处理

    我在野外发现了一只令人讨厌的虫子 但我无法确定它的具体情况 有没有办法拥有全局 Try Catch 块 或者有办法处理 Monotouch 中未处理的任何异常 我可以包起来吗UIApplication Main args 在 try cat
  • Linq 合并列表

    我的课 public class Foo public int A get set public List
  • 对作为函数参数传递的指针使用删除

    删除作为函数参数传递的指针是否可以 并且合法 如下所示 include
  • 控制台应用程序中使用 Unicode 字符的 _tprintf

    我正在从 Unicode 构建的控制台应用程序 使用 C 和 Visual Studio 2008 执行这个简单的输出 此代码旨在在 Windows 上运行 tprintf L Some sample string n 一切正常 但是如果我
  • C# 枚举到字符串自动转换?

    是否可以让编译器自动将我的 Enum 值转换为字符串 这样我就可以避免每次都显式调用 ToString 方法 这是我想做的一个例子 enum Rank A B C Rank myRank Rank A string myString Ran
  • 如何让XmlReader读取C#中的属性?

    我有一个 XML Stream 其中包含以下 XML 内容
  • 我在使用 ado.net 时收到错误 Argument 2 may not be pass with ref keywords

    int t 0 cmd Parameters AddWithValue Res ref t 我在第二行收到错误 参数 2 不能与 ref 关键字一起传递 您只能通过引用传递参数ref if the 范围 is a ref参数也是如此 Add
  • 您对“大规模 C++ 软件设计”的看法 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 正在阅读亚马逊评论 https rads stackoverflow com amzn click com 0201633620 and ACC
  • 在 C# 中使用命名空间别名有什么好处? [复制]

    这个问题在这里已经有答案了 使用命名空间别名有什么好处 仅仅是为了简化编码吗 仅当与类发生冲突时我才使用名称空间别名 对我来说 这根本没有简化 我的意见是 如果没有必要 就不要使用
  • 如何构建一棵与或树?

    我需要一个支持 与 和 或 的树结构 例如 给定一个正则表达式 如ab c d e 我想把它变成一棵树 所以 一开始我们有两个 或 分支 它可以向下ab or c d e 如果你低头ab分支 你得到两个节点 a and b or a其次是b
  • 将一个 IEnumerable 拆分为多个 IEnumerable

    我是 linq 新手 我需要根据指示器将 Couple string text bool Indicator 类型的 IEnumerable 拆分为多个 IEnumerable 我尝试使用skipWhile 和 TakeWhile 但没有找

随机推荐

  • 如何在 gulp 4 上将 gulpfile 任务分割成不同的文件,而无需任何像 gulp-hub 这样的包?

    我正在尝试将 gulpfile 任务拆分为不同的文件 我之前做过并将其添加到主 gulpfile 中 只需添加require path taskName 但这在 gulp 4 中不起作用 这是我的styles js file var gul
  • 是否可以在 Solidity 智能合约创建上预留一个地址用于收税?

    我正在使用 Solidity 编程语言 并尝试实现一个合约 即每笔交易都会扣除税费 并且该税费应该转移到正在创建的合约的某个特定地址 那可能吗 是的 这是可能的 所有以太坊代币标准 ERC 20 ERC 721 仅定义一个接口和很少的其他点
  • 如何在.net中将数字格式化为S9(5)V99 ascii

    我一直在寻找 s9 5 v99 但得到了不同的信息 而且不太清楚 有人可以展示如何转换或转换公式吗 谢谢 您在这里向我们展示的是 这PICTURECOBOL 数据声明的子句部分 COBOL 数据声明有点奇怪 需要一些时间来适应 这是一个介绍
  • Facebook API - 减少您请求的数据量,然后重试 1 行请求

    我的广告洞察请求的逻辑如下 如果 Facebook 要求我减少所请求的数据量 我会将日期范围减半 如果日期范围相同 我会减半limit 到了我发送此请求的地步 https graph facebook com v3 2 https grap
  • 使用 ccTouchesMoved 方法移动 CCCamera? (cocos2d、iPhone)

    所以我得到了这个工作 void ccTouchesMoved NSSet touches withEvent UIEvent event UITouch myTouch touches anyObject CGPoint location
  • 双向数据绑定不更新 UI

    我试图理解为什么设置值不会自动刷新用户界面 如果我调用 binding setItem UI 就会刷新 我知道绑定对象包含更新的值 但在设置 item name 和 item checked 后 UI 没有刷新 我究竟做错了什么 我需要每次
  • 如何在flutter中显示全屏图像

    有什么办法可以显示全屏图像吗 var imagejadwal new Image network https firebasestorage googleapis com v0 b c smp bruder appspot com o fo
  • yii:使用查询生成器选择总和

    我尝试执行一个简单的查询 如下所示 tot Yii app gt db gt createCommand gt select sum field gt from products gt where id id gt queryRow 但 t
  • Gradle 依赖项 - 最新快照

    我有一个 gradle 多项目构建 在一个项目中 我定义了对其他 JAR 的一些依赖项 并使用 始终依赖于 JAR 的最新版本 例如 runtime group com app name core version 这非常有效 每当我重新构建
  • jQuery:.ready() 和 .ajaxComplete

    我希望我的 JS 的某些部分在文档准备好或 ajax 查询完成时初始化像这样的东西 if document ready or document ajaxComplete do something 这样的条件可以写吗 我该如何做才正确呢 你可
  • C 中的快速 2D 卷积

    我正在尝试用 Python 实现卷积神经网络 最初 我使用 scipy signal 的 convolve2d 函数来进行卷积 但它有很多开销 而且用 C 实现我自己的算法并从 python 调用它会更快 因为我知道我的输入是什么样的 我实
  • 由于Android 6.0监听PhoneStateListener.LISTEN_DATA_CONNECTION_STATE的变化似乎不再需要READ_PHONE_STATE权限

    我正在将 Android 6 0 运行时权限应用到一个应用程序中 该应用程序侦听运营商数据连接状态更改 我首先尝试从清单中删除 READ PHONE STATE 以检查应用程序需要权限的位置 令我惊讶的是 该应用程序根本没有崩溃 此后 我在
  • OAuth 授权码何时到期?

    我知道 在 OAuth 中使用授权代码 授权代码 时 访问令牌的生命周期应该很短 但刷新令牌的生命周期可以很长 所以我为我的项目决定 访问令牌生命周期 1 天 刷新令牌生命周期 30 天 但授权码的典型生命周期是多长 我认为它应该非常非常短
  • go中如何连接Oracle

    我认为有两种方法可以在 Go 中连接到 Oracle DB 在 Windows 上 github com tgulacsi goracle github com mattn go oci8 但对于我这个水平的人 开源 golang的初学者
  • Liferay DLFileEntryLocalServiceUtil.addFileEntry 不创建 AssetEntry 记录

    我有一个自定义 portlet 它提供了一个用户可以上传文件的表单 上传的文件应存储在文档和媒体 Portlet 中 我正在使用创建文件条目DLFileEntryLocalServiceUtil addFileEntry 文件上传成功 记录
  • NSTask、命令行工具和 root

    我正在开发一个需要使用 dd 的应用程序 我使用应用程序包中的 shell 脚本来执行此操作 该脚本从应用程序本身收集参数 进行一些检查 然后启动 dd 为了进行此操作 我需要使用 root 调用 dd 并且我已经在 StackOverfl
  • iPhone 中社交网络与 OAuth 的集成

    我是 iPhone 编程新手 有人可以解释一下什么是 OAuth 以及它如何在社交网络集成中使用吗 有多少社交网站提供 API Use ShareKit http getsharekit com
  • 如果行包含重复数据,如何突出显示?

    我有以下数据 id number colour 1766 53 red 1767 3 green 1768 202 green 1769 52 blue
  • 查找最深子树节点的级别

    我有树节点 我想找到树节点中最深的子节点 如果有 2 个子节点level 11 level 13分别然后我需要函数返回值13 我怎样才能做到这一点 public int FindLevel TreeNode oParentNode coun
  • 获取 std::function 的名称

    在下面的玩具示例中 我想获取函数的名称 该函数本身被给出为std function争论 在C 中是否可以获取a的名称std function object void printName std function