Использование Visual Studio 2013 и компилятора C++ для написания еще одного связанного списка, и это произошло методом проб и ошибок. Это относится к Visual C++ или является частью стандарта?
Мне очень нравится этот синтаксис. Это очень чисто. Если вы написали библиотеку связанных списков, прежде чем вы знаете, что можете гоняться за указателями, пока ваш мозг не запутается. Однако этот синтаксис кристально ясен.
Много этого материала со статическими значениями инициализатора, но с использованием аргументов функций в качестве инициализаторов? Такого еще не видел.
Было бы приятно узнать, выдает ли компилятор GCC C/C++ ожидаемый результат. Кто угодно?
typedef struct link_in_list {
struct link_in_list *next;
int32_t key;
int32_t value;
} LINK, *pLINK;
// ----------------------------------------------------------------------------
pLINK prepend_list(pLINK head, int32_t key, int32_t value)
{
if (NULL == head) {
// initialize with a constant, variable, and expression
return new LINK{ NULL, key, (key * key) };
} else {
// initialize with stack variables
return new LINK{ head, key, value };
}
}