* warning about anonymous type
@ 2007-05-23 14:17 Shriramana Sharma
0 siblings, 0 replies; only message in thread
From: Shriramana Sharma @ 2007-05-23 14:17 UTC (permalink / raw)
To: Linux C Programming List
I need to have a single global variable containing some members. I read
that using a singleton class is not recommended and really I don't have
a need for a class. So I just tested g++ -c on a code fragment:
---------------------------
struct {
int a, b, c ;
} mystruct ;
class {
int a, b, c ;
} myclass ;
---------------------------
g++ -c gives me the warnings:
singleton.cpp:7: warning: non-local variable ‘<anonymous struct>
mystruct’ uses anonymous type
singleton.cpp:13: warning: non-local variable ‘<anonymous class>
myclass’ uses anonymous type
However, testing the struct declaration in C does not give any warnings.
OK, C++ is pickier than C, so this is fine. But I don't really know what
to make of the warnings that g++ gave me. What is the potential problem
if a non-local variable has an anonymous type?
Apparently if a **local** variable has an anonymous type it is OK, since
I did not get this warning when I put the mystruct and myclass
definitions into main(). But I don't get the logic behind:
1) the warning
2) the distinction between local and nonlocal in this case
Please explain.
With thanks as always,
Shriramana Sharma.
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-05-23 14:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-23 14:17 warning about anonymous type Shriramana Sharma
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).