Tôi vẫn đang làm việc trên một giải pháp tốt cho One-Of-A-Type Container Problem của tôi - và sau khi phản ánh tôi nghĩ rằng nó sẽ là tốt đẹp để có thể chỉ cần sử dụng một cái gì đó giống như một std::map<std::type_info, boost::any>
. Thật không may, std::type_info
không xác định một số operator<
và tôi nghĩ điều đó là không hợp lý để xác định.C++ 11 có cung cấp các hàm băm cho std :: type_info không?
Tuy nhiên, có vẻ hợp lý để xác định hàm băm cho nó, bởi vì bạn chỉ có thể sử dụng địa chỉ đơn lẻ của đối tượng std::type_info
làm "băm" hợp lý. Do đó, bạn có thể đặt một mã số std::type_info
vào std::unordered_map
làm khóa.
C++ 11 có cung cấp chức năng băm như vậy không? Việc sử dụng địa chỉ bộ nhớ của std::type_info
singleton có phải là một chiến lược băm xấu không?
Nó không phải là một singleton, bằng cách này, nhưng một đối tượng được phân bổ tĩnh. – GManNickG
@GMan: Sự khác biệt là gì? –
Nếu nó là một singleton, sẽ có chính xác một đối tượng 'type_info'. Vì có nhiều loại trong một chương trình, phải có nhiều hơn một đối tượng 'type_info' trong chương trình. –