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

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

最佳答案

如果愿意提供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;
}

关于c++ - C++语法将ColorA拆分为浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29189389/

10-16 03:15