delorie.com/archives/browse.cgi | search |
Message-ID: | <397BC997.9C504DD9@puckbell.net> |
From: | Tasci Synx <nospam AT puckbell DOT net> |
X-Mailer: | Mozilla 4.73 [en] (Win98; U) |
X-Accept-Language: | en |
MIME-Version: | 1.0 |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Enabling Static Data in Templates |
Lines: | 65 |
Date: | Sun, 23 Jul 2000 21:44:07 -0700 |
NNTP-Posting-Host: | 63.197.122.98 |
X-Complaints-To: | abuse AT pacbell DOT net |
X-Trace: | news.pacbell.net 964413410 63.197.122.98 (Sun, 23 Jul 2000 21:36:50 PDT) |
NNTP-Posting-Date: | Sun, 23 Jul 2000 21:36:50 PDT |
Organization: | SBC Internet Services |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
This might be a problem with djgpp, so I wanted to ask here. The Ansi C++ standard gives an example of a static data member in a templated class: --------------------------------------------------------- template<class T> class X { static T s; }; template<class T> T X<T>::s = 0; --------------------------------------------------------- However, upon putting such a thing in a header file, I received a linker error. test.o: In function `foo<int>::blech(void)': test.cpp:15: undefined reference to `foo<int>::bar' collect2: ld returned 1 exit status Here is the test code I compiled: --------------------------------------------------------- // in test.h #include <iostream> using std::cout; template <class Type> struct foo { static Type bar; static void blech(void); }; template <class Type> Type foo<Type>::bar = 33; template <class Type> inline void foo<Type>::blech(void) { cout << "Pass the bar:" << bar << endl; } --------------------------------------------------------- --------------------------------------------------------- // in test.cpp #include "test.h" void main(void) { foo<int> test; test.blech(); } --------------------------------------------------------- Is this a problem specific to djgpp? Is there a switch I can use to make sure my static templated data members are created properly? Thank you. Tasci -- Stories 'n stuff: http://velar.ctrl-c.liu.se/vcl/Authors/Starling/ To send me an email, just replace the @ and the . -----wassdamo at pacbell dot net
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |