Opened 18 years ago
Closed 15 years ago
#282 closed Support Requests (wontfix)
boost::optional<enum> fails with /CLR
Reported by: | nobody | Owned by: | Fernando Cacciola |
---|---|---|---|
Milestone: | Component: | optional | |
Version: | None | Severity: | Problem |
Keywords: | Cc: |
Description (last modified by )
----- #include <boost\optional.hpp> #using <mscorlib.dll> #include <tchar.h> using namespace System; enum Numbers { Zero, One, Two, Three }; // This is the entry point for this application int _tmain(void) { boost::optional<Numbers> num; return 0; } ----- optional.hpp(347): error C2300: 'System::Enum' : class does not have a destructor called '~T' I'm using boost 1.31.0; this fails in both VC7.0 and VC7.1. Removing "#using <mscorlib.dll>" and "using namespace System;" gets rid of the compiler error, but then you can't use things like System::String* Thanks, Dan sourceforge.net@jdanielsmith.org
Change History (3)
comment:1 by , 15 years ago
Component: | None → optional |
---|---|
Description: | modified (diff) |
Severity: | → Problem |
Status: | assigned → new |
comment:2 by , 15 years ago
comment:3 by , 15 years ago
Resolution: | None → wontfix |
---|---|
Status: | new → closed |
(I wrote the response about but without logging in, accidentally)
Note:
See TracTickets
for help on using tickets.
Unfortunately this is due to a framework bug: System::Enum does not have a destructor (is an enum) but doesn't support a pseudo-destructor call either (see 12.4.15) which is neccesary to allow the code to compile without complaining about the lack of a destructor.