c++ - 将此成员称为模板参数
问题描述
假设我有一个模板函数,它采用数据结构,除其他外,对其成员之一执行操作。例如:
template<typename T, int T::*member>
void example(T& t)
{
t->*member++;
}
现在我想使用这个函数,但在某些情况下,成员就是对象本身。所以在上面的例子中,我想传递一个int
作为参数。
int my_value;
example<int, ???>(my_value);
这可能吗?我会用什么代替???。
我知道我可以通过创建一个只包含一个 int 的包装器类型来做到这一点,但我想知道如果没有它是否可以做到这一点。我也知道我可以创建不假定成员关系的函数的第二个副本,但我更愿意保持这个 DRY。最后,我需要成员关系,因为真正的函数在 T 的迭代器上运行,其类型无法更改。
解决方案
推荐阅读
- python - 在服务之间传播 JWT 令牌
- angular - 升级 Angular Typescript Access 缺少的成员
- tensorflow - 纯tensorflow中NMS的自定义实现(使用Fasterrcnn进行点检测)
- ios - 为什么在使用 Podfile 时 Xcode 会(多次)将所有 Swift 库安装到我的设备上?
- java - 无法从 Google 的 IAB 框架中捕获 IllegalStateException
- django - 同一本地主机和会话管理上的许多 django 项目
- javascript - VueJS SFC(单文件组件)不会编译
- laravel - 我可以将变量发送到 laravel 模型中吗?
- java - 我无法清除我的 JTextArea,如何清除 JTextArea?
- php - 如何在类中调用全局对象函数,出现“未定义变量”错误