Is this non-standard?

Started by
5 comments, last by dmail 15 years, 3 months ago
Consider this class:

Class img
{
public:
enum DIRECTION {TO_ZERO, TO_INFINITY};
};

//in main

img ball;
//VC++ says it's not standard and gives a warning.
ball.setDirectionY(Sprite::DIRECTION::TO_INFINITY);

How can I make so I don't get the warning?
Advertisement
What is the exact warning and paste the whole of main.
Have a look here on how to use enums inside classes:
http://msdn.microsoft.com/en-us/library/2dzy4k6e(VS.71).aspx
Quote:Original post by Dave
What is the exact warning


warning C4482: nonstandard extension used: enum 'Sprite::DIRECTION' used in qualified name

Have yo googled for that error code?
Quote:Original post by Dave
Have yo googled for that error code?


Just now :)

// C4482.cpp// compile with: /c /W1struct S {   enum E { a };};int i = S::E::a;   // C4482int j = S::a;   // OK


Thanks!
When posing code please post valid code not code which you have just made up. You are using a class/namespace name Sprite yet the enumeration is in the namespace img. To use in the current standard you would use
img::TO_ZERO

IIRC the next standard changes this and requires the enum tag to allow for enumeration values in the same namespace(not enum namespace) yet different enum namespace to have the same name.
for example
struct Foo
{
enum bar{something};
enum baz{something};
};
[/source]

This topic is closed to new replies.

Advertisement