473,379 Members | 1,216 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,379 software developers and data experts.

How is "static const int" better than "static enum"?

can not the "static const int" be replaced by "static enum" anywhere?

is it necessary that define special initialization syntax for "static const int"?
Jul 22 '05 #1
3 12324
Ajax Chelsea wrote:
can not the "static const int" be replaced by "static enum" anywhere?
enum is a type, not a variable, so it needs no 'static' storage category.

'int' has an implementation-defined size, and its type is compatible with
variable ints.

'enum' is only guaranteed to have enough bits to store any value used in
their definition.

For a while, compilers could not treat 'static const int' inside a class as
a compile-time constant, and so one couldn't size arrays with it and such.
Using 'enum' as a scalar instead of a typed flag was an easy work-around.
is it necessary that define special initialization syntax for "static

const int"?

?

Constant static data are the only things that can declare inside a class.
This (I suspect) grants them their compile-time constant status.

This is all well-formed, with defined behavior:

class yo { public:
static int z (42);
};

char whatever[yo::z];

But an enum would have worked the same, too.

--
Phlip
Jul 22 '05 #2
Phlip wrote in news:ey*******************@newssvr32.news.prodigy. com:
This is all well-formed, with defined behavior:

class yo { public:
static int z (42);
};

char whatever[yo::z];

But an enum would have worked the same, too.


Also if you also want to use the static integral constant in a
non-compile-time context you also need a definition outside the class,

/* Not in a header file (templates aside)
*/
int yo::z; /* Note no initializer */

int main()
{
int z = yo::z;
int const *zp = &yo::x;
}

enum's don't have this requirment, which is perhapse one way in which
enum's are "better" than static int const's.

Cranking the level of triviality up a notch. An instance of an enum
can also be a static integral constant,

#include <iostream>

struct A
{
enum B { C, D, E };
static B const b = A::E;
};

A::B const A::b;

int main()
{
std::cerr << A::b << "\n";
}

Rob.
--
http://www.victim-prime.dsl.pipex.com/
Jul 22 '05 #3
Rob Williscroft <rt*@freenet.REMOVE.co.uk> wrote in message news:<Xn**********************************@195.129 .110.204>...

Cranking the level of triviality up a notch. An instance of an enum
can also be a static integral constant,

#include <iostream>

struct A
{
enum B { C, D, E };
static B const b = A::E;
};

A::B const A::b;

int main()
{
std::cerr << A::b << "\n";
}

Rob.


so I consider that it is not necessary to specialize syntax of "static
const int(long...)", haha
Jul 22 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: heinquoi | last post by:
hello, i have the code: class window { static const HWND hWnd; static const HINSTANCE hInst; // ... next code here window (HINSTANCE ); }
0
by: Patrick Guio | last post by:
Dear all, I wonder whether anyone might have a better idea/solution to the following. I need an associative container <int,string> for a limited and defined number of values (enum-like) but ir...
6
by: Fao | last post by:
Hi, I am in my first year of C++ in college and my professor wants me to Write a Program with multiple functions,to input two sets of user-defined data types: One type named 'Sign' declared by...
2
by: Susan Baker | last post by:
Hi, I got this error msg whilst building some classes. It is realatively asy to fix. But I just wondered, does anyone know the technical reason why one can't initialiaze a const static...
5
by: vilhelm.sjoberg | last post by:
Hello, I am a resonably confident C programmer, but not very sure about the dark corners of C++. Recently, I had G++ give me a strange error. The program in question is in essence: struct...
72
by: Paminu | last post by:
In math this expression: (a < b) && (b < c) would be described as: a < b < c But why is it that in C these two expressions evaluate to something different for the same values of a, b and...
4
by: babylon | last post by:
I can't do public const short test = new short{1000,2000,3000}; any suggestions? thx
16
by: Chris | last post by:
Looking at some code I see a declaration inside a function like static const string s("some string"); Does the static serve any purpose here?
6
by: .rhavin grobert | last post by:
hello;-) i frequently need the following construction: ReturnParam Function() { /...do something.../ someType var = something; /...do something.../ return something;
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.