小编Mic*_*sky的帖子

c ++ variadic模板参数迭代

我对这些事情缺乏经验,但我正在尝试创建一个模板函数,在"旋转"参数下评估n变量函数(参见下面的示例)并返回所有这些值的向量.

例如,对于具有函数f(x,y,z)的n = 3,返回的三元\向量应该是

< f(x,0,0),f(0,x,0),f(0,0,x)>

我需要的天真版本可能如下所示(不必正确\工作)

typedef FunctionSignature Function;

template<class Function, size_t Dimensions>
std::array<Function::Out,Dimensions> F(Function::InComponent x)
{
  std::array<Function::Out,Dimensions> Result;

  for (i=0; i<Dimensions; i++)    
     Result[i] = Function::f("rotate((x,0,...,0),i)");

  return Result;
}
Run Code Online (Sandbox Code Playgroud)

但是如何做到这rotate一点.

我也希望运行时for可以以某种方式被消除,因为n在编译时众所周知.

c++ templates generic-programming c++11

5
推荐指数
1
解决办法
958
查看次数

标签 统计

c++ ×1

c++11 ×1

generic-programming ×1

templates ×1