Właśnie widziałem this really nice talkRock Hard: C++ Evolving autorstwa Borisa Jabesa. W sekcji Dyskusja dotycząca wyższego rzędu Generic Programming mówi, że po to przykład funkcji, która jest bardziej ogólne w odniesieniu do tego typu powrotnej i prowadzi do mniejszej ilości funkcji szablonu przeciążaEnlightening Usage of C++ 11 decltype
template <typename Func>
auto deduce(const Func & f) -> decltype(f())
{..}
ten jednakże mogą być realizowane przy użyciu zwykłego składni szablonu następująco
template <typename Func>
Func deduce(const Func & f)
{..}
więc myślę wybranym przykładzie nie naprawdę wykazują wyjątkową moc decltype
. Czy ktokolwiek może podać przykład takiego o wiele bardziej szczegółowego użycia? z wykorzystaniem ?
nr Pierwszy przykład oznacza, że '' 'wydedukować (F) '' zwraca typ '' 'wyniku Func''''S. Drugi przykład oznacza, że '' 'deduce (f)' '' zwraca '' 'Func'''. Czy widzisz różnicę? –
Aah, przepraszam, że brakowało mi dodatkowego '()' wewnątrz argumentu dla 'decltype'. Mój błąd. –