Incompatibilidade usando array gerenciado e std: array ao mesmo tempo
Eu tenho meu código C ++ / CLI usando matrizes como esta (por exemplo):
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;
}
Ele está compilando bem até eu adicionar a biblioteca "array" ao projeto:
#include <array>
Então não sei como usar a matriz da CLI gerenciada, porque o compilador pensa que todas as matrizes declaradas são asstd::array
.
Exemplos de erros:
array<String^>^ arr
// ^ Error here: "too few arguments for class template "std::array""
gcnew array<String^>(vec.size())
// ^ Error: "Expected a type specifier"
Como resolver isso? Eu tentei removerusing namespace std
desse arquivo, mas não faz diferença. Devo remover isso de qualquer outro arquivo C ++ no projeto?