Tôi hiện đang làm việc trong một dự án và tôi gặp sự cố sau.
Tôi có một phương thức C ++ mà tôi muốn làm việc theo hai cách khác nhau:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
Và tôi không muốn sao chép mã của mình vì chức năng thực tế dài hơn nhiều. Vấn đề là tôi không được thêm thời gian thực thi vào chương trình trong bất kỳ trường hợp nào khi MyFunction được gọi thay vì MyFunctionWithABonus. Đó là lý do tại sao tôi không thể chỉ có một tham số boolean mà tôi kiểm tra bằng so sánh C ++.
Ý tưởng của tôi là sử dụng các mẫu C ++ để sao chép hầu như mã của mình, nhưng tôi không thể nghĩ ra cách làm mà tôi không có thêm thời gian thực thi và không phải sao chép mã.
Tôi không phải là chuyên gia về các mẫu nên tôi có thể thiếu một thứ gì đó.
Có ai trong số bạn có một ý tưởng? Hay đó chỉ là điều không thể trong C ++ 11?