Bruce Eckel による Thinking in C++ で、C++ コンパイラが関数に遭遇すると、その名前と引数を使用してその名前を装飾することを読みました。関数の場合、int func(char ch); 名前を _func_char として装飾します。戻り値の型は使用しません。
その場合、以下のプログラムでは、関数名の装飾中に戻り値の型が格納されていない場合、コンパイラはどのように「int から const char* への変換が無効です」と文句を言うのでしょうか? 誰でも明確にできますか?
#include <iostream>
using namespace std;
int func()
{
int i = 5;
return i;
}
int main()
{
string str = func();
}