tengo la siguiente función:Tipo de retorno muy largo expresión
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);
}
Como se puede ver no sé el valor de retorno e incluso si pongo int allí y luego copiar el tipo de mensaje de error, es un tipo muy largo ...
¿Hay alguna forma de especificar el tipo de devolución como el tipo de retorno único en la función? ¿hay alguna solución que no implique un tipo enorme en el tipo de devolución?
typedefs son sus amigos, también podría definir una metafunción para calcular el tipo de devolución. – enobayram
Puede mover los typedefs fuera de la función. Entonces puede usarlo para declarar el tipo de devolución. –