Tôi muốn tạo một thông báo có độ dài hoặc số lượng đối số không xác định. Tôi lấy một mẫu đơn giản nhưCách đặt các loại mẫu khác nhau vào một vector
template <typename T> class Argument {
public:
int size;
int type;
T data;
};
và với một số quá tải
addMessage (int value) {
Argument<int> *a = new Argument<int>;
vec.push_back(a);
}
(tương tự cho chuỗi và vân vân) Tôi cố gắng đẩy tất cả vào một vector. Tôi đã thử
std::vector<Argument* > vec;
std::vector<Argument<typename T>* > vec;
std::vector<Argument<>* > vec;
nhưng không có gì trong số này có vẻ hiệu quả. Có cách nào để làm việc này không? Cảm ơn trước.
Có vẻ như tôi đã sai khi tôi nghĩ rằng các mẫu được tạo để có "tất cả các loại" trong tầm tay. Vì không có Boost được sử dụng trong dự án này nhưng tôi sẽ gắn bó với thừa kế. thx – DaClown
'std :: variant' có sẵn từ C++ 17. http://en.cppreference.com/w/cpp/utility/variant – biowep