Ho la seguente funzione:Tipo di ritorno molto lungo espressione
inline auto iterateSomething(obj & o)
{
auto iterators = baseIterator(o);
auto tranformer = boost::bind(transofrmToSomething, _1, o);
typedef boost::transform_iterator<decltype(tranformer), decltype(iterators.first)> iterator_t;
iterator_t begin(iterators.first, tranformer);
iterator_t end(iterators.second, tranformer);
return std::make_pair(begin, end);
}
Come potete vedere non so il valore di ritorno e anche se ho messo int lì e poi copiare il tipo dal messaggio di errore, è un tipo davvero lungo ...
C'è un modo per specificare il tipo di ritorno come il tipo di ritorno solo nella funzione? c'è qualche soluzione alternativa che non coinvolge un tipo enorme nel tipo di reso?
typedef sono i tuoi amici, potresti anche definire una metafunzione per calcolare il tipo di ritorno. – enobayram
È possibile spostare i typedef all'esterno della funzione. Quindi puoi usarlo per dichiarare il tipo di reso. –