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.