, biz bir lambda fonksiyonu sarmak veya saklayabilir nasıl çalışır std :: Bir std::function
:fonksiyon Biliyorsun
#include <iostream>
#include <functional>
int main()
{
std::function<float (float, float)> add = [](float a, float b)
// ^^^^^^^^^^^^^^^^^^^^
{
return a + b;
};
std::cout << add(1, 2) << std::endl;
}
sorum bunun bir şablon sınıftır görebilirsiniz ama kabul edebileceği gibi etrafında std::function
olduğunu işlev her türlü işlev imzası. Bu formda return_value (first_arg, second_arg)
örneğin float (float, float)
için
.
std::function
'un yapısı nedir ve x(y,z)
gibi bir işlev imzasını nasıl kabul eder ve nasıl çalışır? C++ 'da float (float, float)
yeni geçerli bir ifade var mı?
C++ cinsinden bakma türü silme. –
Her zaman derleyici ' '' başlığını açın (Ben tüm önemli derleyiciler gemi std başlıklarını inanmak C++ kodu gibi) ve inceleyin veya [Boost.Function] (http://www.boost.org/doc bir göz olabilir /libs/1_53_0/doc/html/function.html). –
Angew
@Angew: Evet, çok eğitici, +1. Bence std :: function, C++ dilinin hemen her yönüne değiniyor ... –