#include <iostream>
#include <algorithm>
#include <array>
using namespace std;
template<class T>
void func(T beg, T end)
{
typedef decltype(*beg) type;
std::for_each(beg, end, [](type t) { cout << t << endl; });
}
int main()
{
std::array<int, 4> arr = { 1,2,3,4 };
func(arr.begin(), arr.end());
return 0;
}
是decltype
當告訴lambda表達式將使用什麼類型的路要走?問題與模板和lambda C++ 0x
你得到的錯誤是什麼。它運行得很好:http://ideone.com/zI3iL – Naveen 2011-04-13 09:29:34
它沒有錯誤,我只是想知道什麼時候使用帶模板的lambda,decltype是告訴lambda模板的唯一方法,是正確的代碼的方式? – hidayat 2011-04-13 09:31:42