Несовместимость с использованием управляемого массива и std: array одновременно
У меня есть мой код C ++ / CLI с использованием таких массивов, как это (например):
array<String^>^ GetColNames() {
vector<string> vec = impl->getColNames();
array<String^>^ arr = gcnew array<String^>(vec.size());
for (int i = 0; i < vec.size(); i++) {
arr[i] = strConvert(vec[i]);
}
return arr;
}
Он компилируется нормально, пока я не добавлю библиотеку "массив" в проект:
#include <array>
Тогда я не знаю, как использовать управляемый массив CLI, потому что компилятор считает, что все объявленные массивы являютсяstd::array
.
Примеры ошибок:
array<String^>^ arr
// ^ Error here: "too few arguments for class template "std::array""
gcnew array<String^>(vec.size())
// ^ Error: "Expected a type specifier"
Как это решить? Я пытался удалитьusing namespace std
из этого файла, но это не имеет значения. Должен ли я удалить это из любого другого файла C ++ в проекте?