- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
class Par_host_port
{
private:
std::string vdata;
public:
//...
char* get () { return (char*)vdata.c_str (); }
};
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+131.8
class Par_host_port
{
private:
std::string vdata;
public:
//...
char* get () { return (char*)vdata.c_str (); }
};
char const* превращается... Превращается char const*... В char*!
А вообще можно (но лучше не надо) делать так:
vdata.c_str();
return &vdata[0];
:)
c-style cast делает не только static_cast, но и const_cast и reinterpret_cast, иногда - два из этих.
А кстати. если я ничего не путаю, в новом стандарте это будет вполне легальным и рабочим, безо всяких предварительных c_str. в отличии от каста, снимающего константонсть, который останется вне закона.
Ну кроме случая с пустой строкой.
vdata.c_str();
return &vdata[0];
для строк это в общем случае неверно. а вот vdata.data() - другое дело.