Может кто-нибудь объяснить, почему следующий код не скомпилируется (странно отформатирован, чтобы легче было увидеть проблему):
ListView ^ listview = gcnew ListView();
listview->Items->AddRange( gcnew array<ListViewItem^> {
gcnew ListViewItem( gcnew array<String^> { L"red", L"fish" } ),
gcnew ListViewItem( gcnew array<String^> { L"green", L"eggs" } )
});
Это дает ошибку компиляции
ошибка C2440: «инициализация»: невозможно преобразовать из «const wchar_t [4]» в «System :: Windows :: Forms :: ListViewItem ^»
Если код разбит на две строки следующим образом, то все хорошо:
ListView^ listview = gcnew ListView();
ListViewItem^ lvi1 = gcnew ListViewItem( gcnew array<String^> { L"red", L"fish" } );
ListViewItem^ lvi2 = gcnew ListViewItem( gcnew array<String^> { L"green", L"eggs" } );
listview->Items->AddRange( gcnew array<ListViewItem^> {
lvi1,
lvi2
});
Не обращая внимания на то, почему кто-то хочет создать монолитную однострочную строку для заполнения ListView, почему у компилятора возникают проблемы с инсталяцией ListViewItems в исходный код и как будет написан такой однострочный элемент?