std::string
не имеет конструктора или operator=
, который принимает Mstream
в качестве ввода. Однако он имеет конструктор, который принимает char*
и размер в качестве входных данных:
int main(){
Mstream m1;
std::string str(m1.str, m1.len);
}
В качестве альтернативы, вы можете добавить std::string
оператор преобразования к Mstream
, затем вы можете назначить Mstream
до std::string
:
class Mstream{
unsigned int len;
char *str;
operator std::string() const { return std::string(str, len); }
};
int main(){
Mstream m1;
std::string str = m1;
}
В любом случае, убедитесь, что Mstream
правильно инициализирован с действительным указателем char*
и значением длины до того, как попытается выполнитьпреобразование в std::string
.