tôi có một tập hợp của các loại liên quan đến một mối quan hệ one-to-one, ví dụ:Bản đồ hai loại tại thời gian biên dịch
TypeA ---> Type1
TypeB ---> Type2
TypeC ---> Type3
Tôi biết những mối quan hệ tại thời gian biên dịch.
Sau đó, tôi có một lớp mẫu mà phụ thuộc vào này hai loại:
template<class T1,class T2>
class MyClass
{
T1 foo;
T2 bar;
};
Bây giờ, người sử dụng thư viện của tôi sẽ gõ cái gì đó như:
MyClass<TypeA,Type1> x;
Đây là bất tiện vì không một sự phụ thuộc giữa hai loại và nó sẽ là đủ cho người dùng chỉ định kiểu đầu tiên.
Ngoài ra, trộn hai loại không nên có thể:
MyClass<TypeA,Type2> y; //it should not compile
Tôi không phải là rất quen thuộc với lập trình meta mẫu, tôi có cảm giác rằng đây là nhiệm vụ khả thi, nhưng tôi có thể sai.
Số lượng loại có liên quan là lớn, tuy nhiên tôi rất vui khi chạy tập lệnh để tạo mã nếu cần.
Bạn có biết nếu có thể hoặc tôi đang lãng phí thời gian của mình? Bạn có ý tưởng nào để chỉ cho tôi đúng hướng không?
Thực hiện một số chỉnh sửa. Xem nếu nó là thích hợp. (Ngoài ra, bạn có thực sự cần một tên dài 'TypeLetter2TypeDigit'? IMHO một cái gì đó như' TypeMap' là đủ.) – iammilind
@iammilind. Cảm ơn bạn. Tên dài là cần thiết để hiển thị những gì tôi muốn. Bạn hoặc OP có thể sử dụng bất kỳ tên nào. –