c++ - Implicitly convert from std::string to eastl::string -
i using string class stl std::string
want replace eastl. easy question:
eastl::string obj = std::string("test");
error: conversion ‘the::string {aka std::basic_string}’ non-scalar type ‘eastl::string {aka eastl::basic_string}’ requested
is possible automate conversion between types?
no, not if eastl::string
not define copy constructor/assignment operator std::string
.
the simplest way go std::string
eastl::string
use .c_str()
method pointer std::string
's internal char array
std::string ss("hello"); eastl::string es = ss.c_str();
you can add own if want modify library. although bad idea
simple example:
class mystring { private: char *str; public: mystring(const std::string &s) { str = new char[s.length() + 1]; /* allocate */ strcpy(this->str, s.c_str()); /* copy */ } ~mystring() { delete [] str; } };
then can create new mystring with:
mystring ms = std::string("hello");
Comments
Post a Comment