Visual studio 2017 visual studio 2017中的结构绑定

Visual studio 2017 visual studio 2017中的结构绑定,visual-studio-2017,c++17,Visual Studio 2017,C++17,我知道有人问了类似的问题,但当我尝试在代码中使用c++17结构绑定时(例如,for(auto[I,it]=std::tuple{0,nodes.begin()};I右侧=待测量; it++; } 其他的 { 当前->左=待测量; } } } return(nodes.size()==0)?nullptr:*nodes.begin(); } 据 VS 2017 15.3 17之后应支持结构绑定 我的编译器版本 我在visual studio 2019上尝试了相同的设置和代码。它编译并运行。问题出

我知道有人问了类似的问题,但当我尝试在代码中使用c++17结构绑定时(例如,for(auto[I,it]=std::tuple{0,nodes.begin()};I 参考:

错误C2429语言功能“结构化绑定”需要编译器标志“/std:c++17”

我的代码

TreeNode* ConstructBinaryTree(const int* const intChain, size_t size)
{
    std::list<TreeNode*> nodes;

    for (auto [i, it] = std::tuple{ 0, nodes.begin() }; i < size; i++)
    {
        TreeNode* curr = (it != nodes.end())? *it : nullptr;
        TreeNode* toBeAssiged = new TreeNode(intChain[i]);
        nodes.push_back(toBeAssiged);

        if (curr)
        {
            if (curr->left)
            {
                curr->right = toBeAssiged;
                it++;
            }
            else
            {
                curr->left = toBeAssiged;
            }
        }
    }

    return (nodes.size() == 0)? nullptr : *nodes.begin();
}
TreeNode*ConstructBinaryTree(常量int*常量intChain,size\u t size)
{
std::列表节点;
for(auto[i,it]=std::tuple{0,nodes.begin()};i左)
{
当前->右侧=待测量;
it++;
}
其他的
{
当前->左=待测量;
}
}
}
return(nodes.size()==0)?nullptr:*nodes.begin();
}

VS 2017 15.3 17之后应支持结构绑定

我的编译器版本

我在visual studio 2019上尝试了相同的设置和代码。它编译并运行。问题出在哪里?我在visual studio 2019上尝试了相同的设置和代码。它编译并运行。问题在哪里?