Opened 10 years ago
Closed 7 years ago
#7876 closed Bugs (fixed)
container::map fails with unions
Reported by: | Owned by: | Ion Gaztañaga | |
---|---|---|---|
Milestone: | To Be Determined | Component: | container |
Version: | Boost 1.52.0 | Severity: | Problem |
Keywords: | container map union | Cc: | matekm@… |
Description
Hello,
At least in boost 1.52.0 there seems to be a problem with container::map and the use of unions (and I suppose the problem might exist with similar types like container::set, etc., though I haven't tested it). Try this code snippet to reproduce:
#include <map> #include <boost/container/map.hpp> union TU {}; void boostMapFail(void) { std::map <unsigned int, TU> stdTest; boost::container::map<unsigned int, TU> boostTest; TU u; stdTest[5U] = u; // Does compile :-) boostTest[5U] = u; // Fails miserably :-( }
This fails under and MSVC2005 and GCC 4.3:
MSVC2005: boost/move/move.hpp(254) : error C2569: 'TU' : enum/union cannot be used as a base class
GCC 4.3: boost/move/move.hpp:254: error: base type 'TU' fails to be a struct or class type
On the contrary, using std::map instead of boost::container::map *does* compile without a hitch, so I would expect boost to behave identically.
Best regards
Peter
Change History (3)
comment:1 by , 8 years ago
Cc: | added |
---|
comment:3 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed as no further error was reported.
Hi,
This problem was fixed as in master and develop branch code provided in this ticket description compiles without an error.