以某种方式在列表中注册我的课程

2023-12-28

我希望能够在一段时间内注册我的课程std::map或向量,现在不要考虑重复等, 但我不想在类构造函数调用或类的任何函数内注册它,以某种方式在类外部进行注册,所以即使我从未实例化它,我也能够知道它存在。

Example:

// Somehow, from outside the myclass, in a scope that will be called
//in the begining of the proccess, add "MyClass1" to a 
//list so it can be instanciated later
class MyClass1{

}

然后我会做一个#define或者如果可以的话,提供一个模板。
我不知道我是否把自己说清楚了(再次)...... 我的观点是,我需要了解我所上的每一堂课,而不必给每一堂课打电话。
我的想法是创建一个#define以便更轻松地声明类的标头并调用将该特定类注册到列表中的内容

这可以完成还是我必须手动映射它?

// desirable:
#define CLASSREGISTER(myclass) makethemagic(##myclass); class myclass {
};

我知道,有了这个定义,我就不能使用继承等...我的观点是尝试举一个例子来说明我想以某种方式创建什么...


这是将类名称放入向量中的方法。如果我错过了重要细节,请发表评论。不过,我认为它不适用于模板。

struct MyClasses {
    static vector<string> myclasses;
    MyClasses(string name) { myclasses.push_back(name); }
};

#define REGISTER_CLASS(cls) static MyClasses myclass_##cls(#cls);

struct XYZ {
};

REGISTER_CLASS(XYZ);

这里的技巧是在调用 main() 之前进行一些计算,您可以通过全局初始化来实现这一点。 REGISTER_CLASS(cls) 实际上生成代码在程序启动时调用 MyClasses 的构造函数。

UPDATE:按照gf的建议,你可以这样写:

#define REGISTER_CLASS(cls) temp_##cls; static MyClasses myclass_##cls(#cls); class cls
class REGISTER_CLASS(XYZ) { int x, y, z; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以某种方式在列表中注册我的课程 的相关文章

  • 如何在 ASP.Net Core 6 Web Api 中依赖注入 Microsoft Graph 客户端

    我正在尝试使用 ASP Net Core 6 设置 Web api 以便用户可以到达我的端点 然后我使用特权帐户在 Teams 中执行一些工作 我认为我没有正确连接 DI 部分 因为在向 Teams 发出请求时出现以下错误 MsalUiRe
  • 在 TPL Dataflow 中,是否可以在创建块之后但使用之前更改 DataflowBlockOptions?

    有效果吗 我想推迟设置 ExecutionDataflowBlockOptions SingleProducerConstrained 属性 直到我准备好将网络链接在一起 因为 我想将创建块及其语义与将网络及其语义链接在一起分开 但据我所知
  • 如何有效地测试action是否用属性(AuthorizeAttribute)修饰?

    我正在使用 MVC 并且有一种情况OnActionExecuting 我需要确定即将执行的Action方法是否用属性修饰 AuthorizeAttribute尤其 我不是问授权是否成功 失败 而是问该方法是否需要授权 对于非 MVC 人员
  • 缓存友好的矩阵移位功能

    我想将二维方阵的第一行移到最后一行 所以如果我有一个像A这样的矩阵 我想要得到B 我可以使用两个简单的 for 循环来做到这一点 例如 void shift int M int N int A M N int i j temp for i
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • ICSharpCode.Decompiler + Mono.Cecil -> 如何为单个方法生成代码?

    我可以使用 Mono Cecil 和 ICSharpCode Decompiler 生成类型或程序集的代码 但是 如果我尝试为单个方法生成代码 我将收到错误 对象引用未设置为对象的实例 你们能给我任何关于这个的提示吗 提前感谢您的所有帮助
  • 使用 C# 启动 Outlook

    我可以让 C 在代码中启动 Outlook 吗 在 VB6 中 我们使用对象 Outlook Application 并编写 Set oOutlook CreateObject Outlook Application Set oNameSp
  • std::istringstream >> 使奇怪的行为加倍

    下面的代码打印0在 mac osx 上使用 clang 其他地方都会打印5 clang https ideone com mVgpzS gcc https ideone com oZ0hy6 include
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 如何转换 UTF-8 <-> UTF16 可移植

    有没有一种简单 可移植的方法 至少是 win32 linux 将 UTF 16 转换为 UTF 8 并返回 最好使用升压 谢谢你的帮助 托比亚斯 Both libiconv http www gnu org software libicon
  • autofac 中的条件组件注册

    是否可以根据其他组件的状态有条件地注册组件 就像是 ContainerBuilder RegisterConditionally
  • 使用 itextSharp 5.3.3 对 Pdf 文档进行数字签名和验证

    我正在尝试使用 iTextSharp 5 3 3 在服务器 c 上进行数字签名和验证 pdf 文档 我使用 DigiSign 在线工具 生成了 Pfx 文件 然后使用 Windows 生成证书 cer 文件
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • ASP Net Core 属性路由和双正斜杠

    正如所指出的here https stackoverflow com a 20524044 3129340 URL 中包含双斜杠是有效的 我有一个使用属性路由的 ASP Net Core 项目 一个名为GroupController用于处理
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • 在 Windows 上构建 MLT 框架时出错

    我一直在遵循官方提供的构建指南here http www mltframework org bin view MLT WindowsBuild 我需要 MLT 来创建视频播放器 并且我选择仅安装前 4 个库 如指南中所述 FFmpeg SD
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • 您可以从 AuthorizeAttribute 返回 HTTP 响应而不引发异常吗?

    我在各种控制器上使用 AuthorizeAttribute 可能需要根据请求本身的某些属性返回 403 或 429 请求过多 我完全在自定义 OnAuthorization 实现中实现了它 然后在必要时抛出一个带有适当响应代码的新 Http
  • 即使没有任何转换,也违反了 C 中的严格别名?

    How can i and u i在此代码中打印不同的数字 即使i定义为int i u i 我只能假设我在这里触发了 UB 但我不知道具体是如何触发的 ideone演示 http ideone com Gcv5Xm如果我选择 C 作为语言
  • 从 C# 应用程序调用 ASP.net Web 服务

    我有个问题 我如何调用 Web 服务并从 C 桌面应用程序获取结果 我正在制作一个桌面应用程序 我希望它能够连接到我的在线 ASP net Web 服务 这怎么可能 在 解决方案资源管理器 中 右键单击项目节点并选择 添加 Service参

随机推荐

  • 按列对 Pandas DataFrame 进行排序

    如何按列对 pandas 数据框进行排序 我在这里读到http pandas pydata org sort values http pandas pydata org pandas docs version 0 19 2 generate
  • MigLayout 对齐中心不会使 JLabel 组件居中

    我在用米格布局 http www miglayout com 我发现它很灵活等 但我在用它居中放置东西时遇到问题 我尝试使用gapleft 50 但似乎百分比数字需要根据不同的帧大小进行更改 因为它也取决于组件的大小 所以如果组件使用居中g
  • 如何在编译时设置 Electron 变量?

    我正在使用 electro builder 来打包 React 应用程序 我的应用程序使用 create react app 样板 有没有一种方法可以在编译时设置变量 以便可以在运行时在主进程的代码内的条件中使用它 我正在寻找 C 预处理器
  • Woocommerce 仅显示可变产品的一种折扣价格

    这是我的 WooCommerce 网站 sweetworldcandy com 问题是 可变产品价格中的最低和最高 值显示我想要的是 如果产品不打折 则显示最低价值 如果产品打折 则通过添加斜杠作为删除标签 显示最低价值和报价的最低价值 我
  • 如何将一个单词拆分为二元组,包括重复的单词?

    我正在尝试将一个单词分成二元组 我正在使用qlcMatrix包 但它只返回不同的二元组 例如 对于单词 detected 它只返回 te 一次 这是我使用的命令 test domain lt c detected library qlcMa
  • 用于存储 jQuery 解析信息的最佳 HTML 属性是什么?

    必须支持 IE6 并且必须验证与 XHTML Strict 1 0 这个很难解释 我使用通用类名来启动关联元素上的插件功能 我还希望将选项与存储在属性中的元素关联 a href url com class popup My Link a 这
  • Git 准备好被推荐给我的老板了吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想向我的老板推荐 Git 作为一个新的源代码控制系统 因为我们还停留在 90 年代的 VSS 哎哟 但是这些工具和第 3 方支持是否足够好 具体来说
  • Angular 4 到 5 更新 ./node_modules/@angular/core/esm5/core.js 中的警告

    我已根据此更新了 Angular 4 至 5tutorial https hackernoon com understanding creating and subscribing to observables in angular 426
  • JobIntentService 与 JobService 有何关系?

    的情况下Service and IntentService主要区别是Service在主线程上运行 同时IntentService不是 当工作完成时后者会自行完成 而我们必须调用stopService or stopSelf 停止一个Serv
  • mysql 获取一天的总工作时间

    我有一个 MySQL 表 其中记录了员工登录和注销时间 这里的in out列中1 代表登录 0 代表注销 id User id Date time in out 1 1 2011 01 20 09 30 03 1 2 1 2011 01 2
  • Mapbox 决定重叠顺序

    I have some features on the map displayed as icons I want to decide which icons should be hidden and which should be dis
  • 不同函数中同名的静态变量如何被系统识别?

    AFAIK 我们可以在不同的函数中有两个同名的静态变量吗 编译器和符号表如何管理它们 他们的身份如何单独管理 编译器不会将静态变量的名称存储在链接符号表中 就链接器而言 它们只是模块的一部分的一些内存 这可能不是在所有情况下 100 正确
  • Spring Security:根据实体不同的身份验证方法

    第一篇文章在这里 希望我做得对 在一个项目中 我们有一个场景 其中有一个具有多个实体的 Web 应用程序 目前 登录是通过默认的 JDBC Spring Security 提供程序进行管理的 工作正常 对于新的需求 我们需要每个实体都可以有
  • 通过 Z3 C++ API 使用浮点运算

    我正在尝试使用 Z3 解决非线性实数问题 我需要 Z3 来生成多个解决方案 在问题域中 精度并不是关键问题 我只需要小数点后一位或两位小数 因此 我需要设置 Z3 不探索实数的所有搜索空间 以最大限度地减少找到多个解决方案的时间 我正在尝试
  • `git rebase` 不更新分支?

    我有这个 master foo v v bar A B C D v E F G 我要这个 master foo v v bar A B C D v E F G so I我认为我需要做 git checkout bar git rebase
  • 如果通常的“t()”不起作用,如何转置 r 中的矩阵?

    我有一个矩阵 我试图在 R 中转置 但 t 函数没有返回正确的答案 如何转置矩阵 gt xx matrix c 3 7 4 8 2 byrow TRUE gt xx 1 2 1 3 7 2 4 8 gt t xx 1 0 7071068 0
  • 如何在Delphi中检查素数

    我想将 1 到 10000 之间的所有素数读入一个动态数组 将所有非素数读入另一个动态数组 然后将素数数组读入richedit1到目前为止我有 procedure primearrays var j k l i m integer k is
  • 如何使用仅在运行时已知的值来初始化对象值?

    假设我正在尝试编写一个简单的井字游戏 它有一个 M x N 字段 游戏只有一个字段 因此它可能应该用单例来表示object 像这样 object Field val height Int 20 val width Int 15 但我不想对高
  • CTE 到底如何发挥作用?

    我碰到这个用于连接行元素的 CTE 解决方案 http www simple talk com sql t sql programming concatenating row values in transact sql 我觉得这太棒了 我
  • 以某种方式在列表中注册我的课程

    我希望能够在一段时间内注册我的课程std map或向量 现在不要考虑重复等 但我不想在类构造函数调用或类的任何函数内注册它 以某种方式在类外部进行注册 所以即使我从未实例化它 我也能够知道它存在 Example Somehow from o