Saiu ontem o spec do C++14, agora está liberado usar função que retorna auto!
https://isocpp.org/blog/2014/08/we-have-cpp14
Se você fizer um template que retorna auto, vira praticamente python :) Compare essas funções que incrementam qualquer coisa:
def incr(x): return x + 1
template<typename T> auto incr(T x) { return x + 1; }
Isso é especialmente atraente quando você quer retornar múltiplos valores, como no Go:
auto get_url(string url) {
string page;
bool error;
return make_pair(page, error);
}
No c++11 a assinatura teria que ser pair<string, bool> get_url(string url) que é redundante, agora o compilador deduz o tipo para você.
https://isocpp.org/blog/2014/08/we-have-cpp14
Se você fizer um template que retorna auto, vira praticamente python :) Compare essas funções que incrementam qualquer coisa:
def incr(x): return x + 1
template<typename T> auto incr(T x) { return x + 1; }
Isso é especialmente atraente quando você quer retornar múltiplos valores, como no Go:
auto get_url(string url) {
string page;
bool error;
return make_pair(page, error);
}
No c++11 a assinatura teria que ser pair<string, bool> get_url(string url) que é redundante, agora o compilador deduz o tipo para você.
Nenhum comentário:
Postar um comentário