Most vexing parse
Eu recebi o código deAqu.
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();
}
Pela aparência, ele deve receber um erro de compilação devido à linha:
TimeKeeper time_keeper(Timer());
Mas isso só acontece sereturn time_keeper.get_time();
é presente
Por que essa linha importa mesmo, o compilador detectaria ambiguidade emtime_keeper(Timer() )
construção