Giriş
Şu satırı dahil ederiz.
Boost ile iki tane farklı bind kütüphanesi geliyor. İlki boost::bind, ikincisi ise boost::lambda::bind. C++11 ile bence her ikisine de gerek kalmadı.
Örnek
Şu satırı dahil ederiz.
C++11 ile gelen std::placeholder sadece std::bind ile kullanılır. boost::placeholder ilaveten lambda gibi de kullanılabilir. Yani std::placeholder ve boost::placeholder tam olarak aynı değil
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/lambda/lambda.hpp>
bindBoost ile iki tane farklı bind kütüphanesi geliyor. İlki boost::bind, ikincisi ise boost::lambda::bind. C++11 ile bence her ikisine de gerek kalmadı.
Örnek
Şu satırı dahil ederiz.
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
Şöyle yaparız.std::array<double, 6> a = {1, 4, 9, 16, 25, 36};
std::for_each(a.begin(), a.end(),
std::cout << boost::lambda::bind(static_cast<double(*)(double)>(std::sqrt),
boost::lambda::_1) << " "
);
Çıktı olarak şunu alırız.1 2 3 4 5 6
Placeholder C++11 ile gelen std::placeholder sadece std::bind ile kullanılır. boost::placeholder ilaveten lambda gibi de kullanılabilir. Yani std::placeholder ve boost::placeholder tam olarak aynı değil
Şöyle yaparız.
include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
}
Şöyle yaparız.#include <vector>
#include <boost/lambda/lambda.hpp>
using boost::lambda::_1;
using namespace std;
int main()
{
vector<int> coll{-1, 2, -2, 3, 5, 7};
count_if(begin(coll), end(coll), _1 > 0 && _1 < 3);
}
Şöyle yaparız.lambda::bind(&internal::on_accept, lambda::_1)
Hiç yorum yok:
Yorum Gönder