C ++语法将ColorA拆分成浮点数?

时间:2015-03-21 23:52:03

标签: c++

我记得能够做这样的事情,但我不记得如何。我想从ColorA数据类型中提取浮点数,在C ++中执行此操作的最短语法是什么?

ColorA(r,g,b,a)= material.getAmbient();

1 个答案:

答案 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;
}