我有以下功能:返回類型很長的表達
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);
}
正如你所看到的,我不知道返回值,即使我把INT那裏,後來從錯誤消息複製型,它是一個非常長的類型...
有沒有一種方法來指定返回類型作爲函數中唯一返回的類型?是否有任何解決方法不涉及返回類型中的巨大類型?
typedefs是你的朋友,你也可以定義一個元函數來計算返回類型。 – enobayram 2012-03-24 11:25:09
您可以在功能外移動typedefs。然後你可以用它來聲明返回類型。 – 2012-03-24 11:27:46