| Frank on Thu, 23 Sep 2004 13:07:34 -0500 (CDT) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: [ALACPP] compilation error |
Throwing a pair of parens at the end of the "throw MyException;" line seems to solve the problem. I think the issue is that the parameter to the throw is actual data where MyException is a classname. The int(1) (and the MyException()) bring a temporary variable into existence which is apparently valid. I think... But my books are still packed up from my move...
Frank Moody
On Thu, Sep 23, 2004 at 01:10:27AM -0700, Jon Stewart wrote:
> I have some code which expands in the preprocessor as such:
>
> void testFunction(void) {
> class MyException {
> void *whatever;
> };
>
> try {
> throw MyException;
> throw SomeOtherKnownGoodExceptionType("message");
> }
> catch(MyException e) {
> ;
> }
> }
>
> This does not compile in gcc 3.4.2. I get:
> "error: expected primary-expression before ';' token"
>
>
> The cpp output sure looks okay to me! But note the hour...
>
> If I change it to:
>
> void testFunction(void) {
> try {
> throw int(1);
> throw SomeOtherKnownGoodExceptionType("message");
> }
> catch(int i) {
> ;
> }
> }
>
> then everything works just fine and dandy.
>
> Am I screwing up the embedded class? Is gcc?
>
>
>
> Jon
> --
> Jon Stewart Advanced Los Angeles C++
> stew1@xxxxxxxxxxx http://www.alacpp.org
> _______________________________________________
> alacpp mailing list
> alacpp@xxxxxxxxxxx
> http://lists.ellipsis.cx/mailman/listinfo/alacpp
_______________________________________________
alacpp mailing list
alacpp@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/alacpp