Tôi có hai chương trình C++ cần có một bản đồ type -> int
được biết tại thời gian biên dịch và bằng nhau giữa hai chương trình. Hơn nữa, tôi muốn tự động đảm bảo thời gian biên dịch bản đồ là một-một. Làm thế nào bạn sẽ giải quyết được điều đó? (C++ 0x-mở rộng được cho phép). Phần đầu tiên là dễ dàng: Chia sẻ mộtnhập vào ánh xạ int
template < typename T > struct map;
template <> struct map <...> { enum { val = ...; }; };
giữa các chương trình. (Phần thứ hai có nghĩa là tôi không muốn vô tình xác định cùng một số val
cho hai loại khác nhau ở đâu đó trong các chương trình của tôi.)
Tôi có thể hỏi bản đồ này là để làm gì không? – sellibitze
bản sao có thể có của [Kiểu chuyển đổi siêu lập bản mẫu thành số duy nhất] (http://stackoverflow.com/questions/1708458/template-metaprogram-converting-type-to-unique-number) – kennytm
Bản đồ sẽ được sử dụng để truyền dữ liệu tùy ý giữa người gửi và chương trình người nhận (đó cũng là lý do tại sao câu hỏi này không trùng lặp - nó liên quan đến hai chương trình cần chia sẻ cùng một bản đồ). – Thomas