nde está o comportamento indefinido ao usar const_cast <>?
Se eu fizer
const char* const_str = "Some string";
char* str = const_cast<char*>(const_str); // (1)
str[0] = "P"; // (2)
Onde (qual linha) exatamente é o comportamento indefinido?
Eu tenho procurado muito por isso no SO, mas não encontrei nenhuma resposta explícita e precisa (ou pelo menos nenhuma que eu pudesse entender
Também relacionado: se eu usar uma biblioteca externa que ofereça esse tipo de função:
// The documentation states that str will never be modified, just read.
void read_string(char* str);
Está tudo bem escrever algo como:
std::string str = "My string";
read_string(const_cast<char*>(str.c_str()));
Desde que eu tenho certeza queread_string()
vaiNunc tente escrever parastr
?
Obrigado