- 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*!
guest 16.07.2009 11:51 # +2
guest 16.07.2009 16:51 # +1
guest 16.07.2009 21:57 # −2
А вообще можно (но лучше не надо) делать так:
vdata.c_str();
return &vdata[0];
:)
guest 16.07.2009 22:43 # 0
c-style cast делает не только static_cast, но и const_cast и reinterpret_cast, иногда - два из этих.
guest 16.07.2009 22:44 # 0
А кстати. если я ничего не путаю, в новом стандарте это будет вполне легальным и рабочим, безо всяких предварительных c_str. в отличии от каста, снимающего константонсть, который останется вне закона.
Ну кроме случая с пустой строкой.
guest 10.08.2009 19:21 # 0
vdata.c_str();
return &vdata[0];
для строк это в общем случае неверно. а вот vdata.data() - другое дело.
guest 04.09.2009 13:00 # 0