Объяснение синтаксиса C++ в библиотеке Microsoft WILC++

Программы на C++. Форум разработчиков
Anonymous
Объяснение синтаксиса C++ в библиотеке Microsoft WIL

Сообщение Anonymous »

Я видел такой фрагмент кода в
...\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\include\wil\result.h

Код: Выделить всё

        if (auto pNewRaw = details::ProcessHeapAlloc(0, sizeof(Node)))
{
auto pNew = new (pNewRaw) Node{threadId};
Может кто-нибудь объяснить, что это значит?
В моем случае я получаю ошибки компиляции в строке «auto pNew = new (pNewRaw) Node{threadId};»
и даже не могу догадаться, как правильно обойти проблему..
Это новый стандарт C++ 20?
1>....\packages\Microsoft.Windows.ImplementationLibrary. 1.0.240122.1\include\wil\result.h(419,38): ошибка C2061: синтаксическая ошибка: идентификатор 'pNewRaw'
1>....\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\ include\wil\result.h(419,51): ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '{'
1>....\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\include\wil\result.h(419,60): ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '}'
1>....\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\include\wil\result.h(425,25): ошибка C3536: "pNew": невозможно использовать перед его инициализацией
1>....\packages\Microsoft.Windows.ImplementationLibrary.1.0.240122.1\include\wil\result.h(426,32): ошибка C2664: 'PVOID _InterlockedCompareExchangePointer(летучий PVOID * ,PVOID,PVOID)': невозможно преобразовать аргумент 2 из 'int' в 'PVOID'

Подробнее здесь: https://stackoverflow.com/questions/786 ... il-library

Вернуться в «C++»