我记得能够做这样的事情,但我不记得如何。我想从ColorA数据类型中提取浮点数,在C ++中执行此操作的最短语法是什么?
ColorA(r,g,b,a)= material.getAmbient();
答案 0 :(得分:1)
如果您愿意提供std::tie
功能,可以在此处使用to_tuple
。一个元组转换函数has problems,有一个更糟糕的解决方法,所以这个解决方案是直截了当的。
struct ColorA
{
float r, g, b, a;
auto to_tuple() const
{
return std::make_tuple(r, g, b, a);
}
};
int main()
{
float r, g, b, a;
ColorA color;
std::tie(r, g, b, a) = color.to_tuple();
return 0;
}