Tôi đang cố gắng tạo lớp quản lý cấu hình, có thể lưu trữ các đối tượng tùy ý bằng chuỗi std ::.Bất kỳ cách nào để có một chức năng mẫu trong một lớp cơ sở trừu tượng?
khởi đầu ý tưởng của tôi cho giao diện của tôi (trừu tượng lớp cơ sở) là này (tất nhiên đây là khủng khiếp không đầy đủ)
class ConfigurationManager
{
public:
static boost::shared_ptr<ConfigurationManager> create();
template<typename T>
virtual T getOption(const std::string& name) = 0;
};
Nhưng sau đó trình biên dịch của tôi chỉ ra rằng mẫu của không thể ảo (và sau đó tôi nhận ra rằng tôi không thể có các mẫu đã xuất).
Nội bộ Tôi sẽ sử dụng boost :: any's (khá nhiều thời gian chạy kiểm tra void *), nhưng tôi không muốn để lộ tăng :: bất kỳ trong giao diện của tôi.
Cách tốt nhất để thực hiện việc này là gì?
Để đi về những gì, chính xác? –
@Oli Để mô phỏng giao diện cú pháp không thể mà tôi đã đăng trong câu hỏi của mình. – Lalaland
Vì vậy, bạn muốn làm các mẫu chức năng đa hình, mặc dù chúng không thực sự khả thi? –