Я получил код здесь.
class Timer {
public:
Timer();
};
class TimeKeeper {
public:
TimeKeeper(const Timer& t);
int get_time()
{
return 1;
}
};
int main() {
TimeKeeper time_keeper(Timer());
return time_keeper.get_time();
}
По внешнему виду он должен получить ошибку компиляции из-за строки:
TimeKeeper time_keeper(Timer());
Но это происходит только при наличии return time_keeper.get_time();
.
Почему эта строка даже имеет значение, компилятор обнаружит двусмысленность в конструкции time_keeper(Timer() )
.