C++ 标准中的哪一段禁止将常量指针转换为非常量指针?

Ayr*_*osa 5 c++ language-lawyer

const char*C++ 标准中的哪一段禁止从实参到形参的转换char*?我知道这是正确的。我只是想知道标准中哪里有这样的规定?

#include <iostream>

std::string message("Hello");

void my_log(char* pchar) {
    std::cout << pchar << '\n';
}


void my_func(const std::string& message)
{
    my_log(const_cast<char*>((&message)->c_str()));     // Ok
    my_log((&message)->c_str());                        // Doesn't compile
}


int main() {
    my_func(message);
}
Run Code Online (Sandbox Code Playgroud)

请参阅此处的实例。