cuốn sách gpt4 ai đã làm

"hàm trả về hàm" khi kế thừa hàm tạo từ std::function

In lại Tác giả: Walker 123 Thời gian cập nhật: 28-11-2023 00:21:29 38 4
mua khóa gpt4 Nike

cố gắng bắt đầu từ std::chức năng Dẫn xuất một lớp và trước tiên, hãy kế thừa hàm tạo. Đây là dự đoán của tôi:

#include 
#include
sử dụng không gian tên std;

mẫu< lớp R, lớp... Args >
lớp MyFunction : public std::function {
công cộng:
sử dụng std::function::function;
};

int chính() {
std::function f_display_42 = []() { std::cout << 42;

MyFunction của tôi = []() { std::cout << 42 };
}

Lỗi được trả về là:

prog.cpp: Khi khởi tạo 'class MyFunction':
prog.cpp:14:24: được yêu cầu từ đây
prog.cpp:6:7: error: hàm trả về một hàm
lớp MyFunction : public std::function {
^
prog.cpp:8:38: error: hàm trả về một hàm
sử dụng std::function::function;
^
prog.cpp:8:38: error: khai báo sử dụng cho người không phải là thành viên ở phạm vi lớp
prog.cpp: Trong hàm 'int main()':
prog.cpp:14:55: error: chuyển đổi từ 'main()::__lambda1'
thành loại không vô hướng 'MyFunction' được yêu cầu
MyFunction của tôi = []() { std::cout << 42 };

Trong GCC 4.8.2.

câu trả lời hay nhất

Thêm vào Chris trả lời , nếu bạn muốn định nghĩa hiện tại hợp lệ, hãy sử dụng

MyFunction của tôi = []() { std::cout << 42 };

Nếu bạn muốn một cái gì đó đẹp như nhau MyFunctionCú pháp là std::chức năng , thì bạn phải cung cấp một mẫu lớp chính chưa được triển khai và một mẫu bắt nguồn từ std::chức năng chuyên môn hóa. (Đây chính xác là std::chức năng xong).

mẫu< lớp R, lớp... Args >
lớp MyFunction;

mẫu< lớp R, lớp... Args >
lớp MyFunction : public std::function
{ ... }

Bản trình diễn trực tiếp

Về c++ - "hàm trả về hàm" khi kế thừa hàm tạo từ std::function, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/27263092/

38 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress