public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/13332] New: template static const unsigned does not appear in .o file
@ 2003-12-06 8:11 gianni at mariani dot ws
2003-12-06 8:18 ` [Bug c++/13332] " pinskia at gcc dot gnu dot org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: gianni at mariani dot ws @ 2003-12-06 8:11 UTC (permalink / raw)
To: gcc-bugs
This code will compile fine but fail on a linker error.
templ_examp.cpp:41: undefined reference to `Bounds<float, (unsigned)4>::size'
However if "static const unsigned size" is changed from an "unsigned" to an
"int" or "short", it appears to work correctly.
template <typename T, unsigned N>
class Bounds
{
public:
static const unsigned size = N;
T * ptr;
T & operator[] ( unsigned i )
{
if ( i >= size )
{
throw "Array outa bounds";
}
return ptr[ i ];
}
Bounds( T ( & i_ptr)[N] )
: ptr( i_ptr )
{
}
};
template <typename T, unsigned N>
Bounds<T,N> make_bounds( T ( & i_ptr)[N] )
{
return Bounds<T,N>( i_ptr );
}
float array[] = { 1., 2., 3., 4. };
#include <iostream>
int main()
{
std::cout << make_bounds( array )[ 2 ];
std::cout << make_bounds( array ).size;
// std::cout << make_bounds( array )[ 20 ]; // throw exception
}
--
Summary: template static const unsigned does not appear in .o
file
Product: gcc
Version: 3.3.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gianni at mariani dot ws
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
@ 2003-12-06 8:18 ` pinskia at gcc dot gnu dot org
2003-12-06 8:50 ` gianni at mariani dot ws
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2003-12-06 8:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2003-12-06 08:18 -------
>From bug 13259 which this is bug is a dup of:
The standard says that you may inline-initialize the static variable,
but you still need to _define_ it somewhere so that a memory location
is assigned to it.
*** This bug has been marked as a duplicate of 13259 ***
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |DUPLICATE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
2003-12-06 8:18 ` [Bug c++/13332] " pinskia at gcc dot gnu dot org
@ 2003-12-06 8:50 ` gianni at mariani dot ws
2003-12-06 8:54 ` pinskia at gcc dot gnu dot org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: gianni at mariani dot ws @ 2003-12-06 8:50 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From gianni at mariani dot ws 2003-12-06 08:50 -------
* still need to _define_ *
So what is it if it's not a definition ?
and
Why don't these problems appear for types other than unsigned ?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
2003-12-06 8:18 ` [Bug c++/13332] " pinskia at gcc dot gnu dot org
2003-12-06 8:50 ` gianni at mariani dot ws
@ 2003-12-06 8:54 ` pinskia at gcc dot gnu dot org
2003-12-06 21:16 ` bangerth at dealii dot org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2003-12-06 8:54 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2003-12-06 08:54 -------
The reason is that they are optimized out but the optimization is not a bug (but there is another
bug for not getting an error which already have a different bug).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
` (2 preceding siblings ...)
2003-12-06 8:54 ` pinskia at gcc dot gnu dot org
@ 2003-12-06 21:16 ` bangerth at dealii dot org
2003-12-08 17:20 ` pinskia at gcc dot gnu dot org
2004-01-21 19:20 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: bangerth at dealii dot org @ 2003-12-06 21:16 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From bangerth at dealii dot org 2003-12-06 21:16 -------
A definition in your case looks like
template <ypename T, unsigned int> const unsigned ind Bounds<T,N>::size;
W.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
` (3 preceding siblings ...)
2003-12-06 21:16 ` bangerth at dealii dot org
@ 2003-12-08 17:20 ` pinskia at gcc dot gnu dot org
2004-01-21 19:20 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2003-12-08 17:20 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2003-12-08 17:20 -------
*** Bug 13356 has been marked as a duplicate of this bug. ***
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |akim at lrde dot epita dot
| |fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/13332] template static const unsigned does not appear in .o file
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
` (4 preceding siblings ...)
2003-12-08 17:20 ` pinskia at gcc dot gnu dot org
@ 2004-01-21 19:20 ` pinskia at gcc dot gnu dot org
5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-21 19:20 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2004-01-21 19:20 -------
*** Bug 13795 has been marked as a duplicate of this bug. ***
--
What |Removed |Added
----------------------------------------------------------------------------
CC| |perry at kundert dot ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13332
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-01-21 19:20 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-06 8:11 [Bug c++/13332] New: template static const unsigned does not appear in .o file gianni at mariani dot ws
2003-12-06 8:18 ` [Bug c++/13332] " pinskia at gcc dot gnu dot org
2003-12-06 8:50 ` gianni at mariani dot ws
2003-12-06 8:54 ` pinskia at gcc dot gnu dot org
2003-12-06 21:16 ` bangerth at dealii dot org
2003-12-08 17:20 ` pinskia at gcc dot gnu dot org
2004-01-21 19:20 ` pinskia at gcc dot gnu dot org
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 read-only IMAP folder(s) and NNTP newsgroup(s).