C++14 - Generic Lambdalar

c++
c14

#1

C++11 ile gelen anonymous fonksiyonlar oluşturmamızı sağlayan lambdalar, C++14 ile birlikte auto anahtar sözcüğünün kullanımı sayesinde daha genel olarak tanımlanabilirler. Örneğin;

#include <iostream>
#include <vector>

using namespace std;

int main()
{

    vector<int> ivec = {1, 2, 4, 4, 5, 6, 7, 8, 2, 8};

    //C++11
    auto printVec11 = [] (std::vector<int> &vec) {
        for (auto i : vec)
            cout << i << " ";
    };

    //C++14
    auto printVec14 = [] (auto &vec) {
        for (auto i : vec)
            cout << i << " ";
    };

    printVec11(ivec);
    cout << "\n";
    printVec14(ivec);

    return 0;
}