快速提问。如果我有一个函数签名,比如
template <typename T, typename ItType>
ItType binarySearch ( T mid, ItType first, ItType last );
反正有没有做类似以下的事情?我知道这种语法不正确,但你明白了,因为我可以做一个与常规函数类似的 decltype,见下文。编译器在编译时就知道 ItType 的类型,所以它不应该也能推断出 *ItType 的类型吗?
template <typename ItType>
ItType binarySearch ( decltype(*ItType) mid, ItType first, ItType last );
// lambda
auto p = v.begin() + (v.end() - v.begin())/2;
std::partition ( v.begin(), v.end(), [p](decltype(*p) i) { return i < *p; } )