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