在 C++ 中,沒有內(nèi)置的 partial
函數(shù),但你可以使用 C++11 及更高版本的特性(例如:std::bind
和 lambda 表達(dá)式)來模擬部分應(yīng)用函數(shù)的行為
#include<iostream>
#include<functional>
int add(int a, int b) {
return a + b;
}
int main() {
// 使用 std::bind 創(chuàng)建一個部分應(yīng)用的函數(shù)
auto add_five = std::bind(add, 5, std::placeholders::_1);
// 調(diào)用部分應(yīng)用的函數(shù)
int result = add_five(3);
std::cout << "Result: "<< result<< std::endl; // 輸出:8
// 使用 lambda 表達(dá)式創(chuàng)建一個部分應(yīng)用的函數(shù)
auto add_three = [](int b) { return add(3, b); };
// 調(diào)用部分應(yīng)用的函數(shù)
result = add_three(4);
std::cout << "Result: "<< result<< std::endl; // 輸出:7
return 0;
}
在這個示例中,我們定義了一個簡單的 add
函數(shù)。然后,我們使用 std::bind
和 lambda 表達(dá)式分別創(chuàng)建了兩個部分應(yīng)用的函數(shù):add_five
和 add_three
。這些部分應(yīng)用的函數(shù)將其中一個參數(shù)固定為特定值,并接受剩余的參數(shù)。最后,我們調(diào)用這些部分應(yīng)用的函數(shù)并輸出結(jié)果。