c_str () vs. data () quando se trata de retornar o tipo

epois do C ++ 11, pensei emc_str() edata() equivalentement.

C ++ 17 introduz uma sobrecarga para o último, que retorna um ponteiro não constante referênci, que não tenho certeza se é atualizado completamente com o w.r.t. C ++ 17):

const CharT* data() const;    (1)   
CharT* data();                (2)   (since C++17)

c_str() retorna apenas um ponteiro constante:

const CharT* c_str() const;

Por que a diferenciação desses dois métodos em C ++ 17, especialmente quando C ++ 11 foi quem os tornou homogêneos? Em outras palavras, por que apenas um método ficou sobrecarregado, enquanto o outro nã

questionAnswers(4)

yourAnswerToTheQuestion