Я хочу преобразовать std::list <std::string>
в std::list<System::String^>
и получаю сообщение об ошибке
&& : нельзя использовать эту косвенность для типа '_Ty' с [ _Ty=System::String^ ]
Можно ли конвертировать?
конвертировать.ч
#pragma once
#include <list>
#include <string>
#include <msclr/marshal.h>
__declspec(dllimport) std::list<std::string> x_browseCan();
__declspec(dllexport) std::list<System::String^> wrap_browse_can();
конвертировать.cpp
#include "pch.h"
#include "cok_main.h"
std::list<System::String^> wrap_browse_can() {
std::list<std::string> temporary_list;
std::list<System::String^> object_list;
temporary_list = x_browseCan();
for (std::list<std::string>::iterator it = temporary_list.begin(); it != temporary_list.end(); it++) {
object_list.push_back(msclr::interop::marshal_as<System::String^>(*it));
}
}
List^
— это .NET-версияstd::vector
. Версия .NETstd::list
—System::Collections::Generic::LinkedList<T>^
. 25.12.2019