使用Args.中的n个参数..从位置m开始
Using n arguments from Args... starting from position m
假设我有不同的函数,它们有可变数量的参数。第一个参数始终是通过其他方式获得的指针。我通过使用模板包扩展的另一个模板获得的所有其他参数
我用来调用这些函数的模板如下:
template<typename RT, typename... Args>
inline RT call(RT(*function)(Args...))
{
return function(pointer_from_somewhere, bind_argument<Args>::get_arg()...);
}
这显然不会编译,因为它对所有参数执行模板扩展,因此参数太多
由于我总是通过其他方式获得第一个参数,因此如何从第二个参数开始对sizeof...(Args) - 1
参数进行模板包扩展?
编辑:
虽然为了演示目的对模板进行了精简,但第一个参数(指针)始终被重新解释为第一个参数的类型可能是相关的。我使用std::tuple_element<0, std::tuple<Args...>>::type
来找出第一个参数的类型。
这就是您想要的吗?
template<typename RT, typename A0, typename... Args>
inline RT call(RT(*function)(A0, Args...))
{
return function(pointer_from_somewhere, bind_argument<Args>::get_arg()...);
}
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- C++ 从具有开始位置和结束位置的列表中删除
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 读取从ifstream中n的位置n开始的二进制字节
- 如何从特定位置开始搜索地图/多映像
- 从给定位置 C++ 开始对数组进行重新排序
- 返回从字符串末尾 (C++) 之后的位置开始的子字符串
- 从偏移位置开始复制内存
- 使用Args.中的n个参数..从位置m开始
- 从随机起始位置开始的螺旋阵列
- 从任何位置开始迭代整个数组,仅使用一个变量
- 使用cout从特定位置开始打印
- C++映射从迭代器位置开始搜索
- 移动鼠标位置,然后回到开始位置
- 使用glutmotionfunction获取运动开始和结束时的x位置
- 如何使std::regex在字符串中的特定位置开始匹配