Я знаю, что кто-то задавал похожий вопрос, но я вижу другую ошибку, когда пытаюсь использовать c ++ 17 Structure Binding в моем коде (например, для (auto [i, it] = std :: tuple {0, node.begin ()}; i
Ссылка: Использование c ++ 17 «структурированных привязок» в Visual Studio 2017
Компилятор пожаловался Ошибка языковой функции 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();
}
Согласно https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019
Связывание структуры должно быть поддерживается после VS 2017 15,3 17
Моя версия компилятора