原因:
只有在C++17及更高版本中,auto [alpha, beta, gamma]
的结构化绑定语法是有效的。
解决方法:
1. 换一种方法
可以使用std::tie
来代替。
auto [alpha, beta, gamma] = computeBarycentric2D(x, y, t.v);
float alpha, beta, gamma;
std::tie(alpha, beta, gamma) = computeBarycentric2D(x, y, t.v);
这个函数可以用来创建元组,然后你可以通过解包元组的方式获取其中的值。在前面的代码示例中,我使用了std::tie。
2.使用C++17以上的版本(推荐)
在解决方案资源管理器中,右键单击你的项目,点击属性,选择常规--C++语言标准,将默认的(ISO C++14标准)更换,点击右边的下拉框,
可以选择C++17,也可以选择C++20,都可以解决这个问题。