template under gcc version 3.3.2

Morten Gulbrandsen f1000mhz@yahoo.de
Sat Jan 29 22:33:00 GMT 2005


corey taylor wrote:

>Morten,
>
>  First one note, I don't see you including anything for the std::deque type.
>
>  You should at least add: #include <deque>
>
>corey
>
>  
>
>>g++ -ansi -pedantic -Wall -o stest5_test_00.out stest5_test_00.cpp -L
>>/opt/sfw/gcc-3/lib/ -R /opt/sfw/gcc-3/lib/ -lstdc++
>>stest5_test_00.cpp:11: error: syntax error before `;' token
>>
>>#include <iostream>
>>#include <string>
>>#include <cstdlib>
>>
>>// #include "stack5.hpp"
>>
>>template <typename T>
>>class Stack {
>>  private:
>>    std::deque<T> elems;   // elements
>>    
>>
>
>  
>
OK   I did,

The preceeding code  files   are all good,

I also tried  www.comeaucomputing.com




#include <iostream>
#include <string>
#include <cstdlib>

#include <deque>
#include <vector>
#include <stdexcept>



// #include "stack5.hpp"

//   these files are unchanged
#include "stack5decl.hpp"
#include "stack5assign.hpp"   



int main()
{
    try {
        Stack<int>   intStack;       // stack of ints
        Stack<float> floatStack;     // stack of floats

        // manipulate int stack
        intStack.push(42);
        intStack.push(7);

        // manipulate float stack
        floatStack.push(7.7);

        // assign stacks of different type
        floatStack = intStack;

        // print float stack
        std::cout << floatStack.top() << std::endl;
        floatStack.pop();
        std::cout << floatStack.top() << std::endl;
        floatStack.pop();
        std::cout << floatStack.top() << std::endl;
        floatStack.pop();
    }
    catch (std::exception const& ex) {
        std::cerr << "Exception: " << ex.what() << std::endl;
        return EXIT_FAILURE;  // exit program with ERROR status
    }
}



/*

g++ -o stest5.out stest5.cpp -L /opt/sfw/gcc-3/lib -R /opt/sfw/gcc-3/lib 
-lstdc++

Undefined                       first referenced
 symbol                             in file
Stack<int>::push(int const&)        /var/tmp//ccy3WHcF.o
Stack<float>::push(float const&)    /var/tmp//ccy3WHcF.o
Stack<int>::pop()                   /var/tmp//ccy3WHcF.o
Stack<float>::pop()                 /var/tmp//ccy3WHcF.o
Stack<float>::top() const           /var/tmp//ccy3WHcF.o
Stack<int>::top() const             /var/tmp//ccy3WHcF.o
ld: fatal: Symbol referencing errors. No output written to stest5.out
collect2: ld returned 1 exit status


g++ -v  -o stest5.out stest5.cpp -L /opt/sfw/gcc-3/lib -R 
/opt/sfw/gcc-3/lib -lstdc++
Reading specs from /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/specs
Configured with: ../gcc-3.3.2/configure --prefix=/opt/sfw/gcc-3 
--with-ld=/usr/ccs/bin/ld --with-as=/usr/ccs/bin/as --without-gnu-ld 
--without-gnu-as --enable-shared
Thread model: posix
gcc version 3.3.2
 /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/cc1plus -quiet -v 
-D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2 stest5.cpp 
-D__GNUG__=3 -quiet -dumpbase stest5.cpp -auxbase stest5 -version -o 
/var/tmp//ccDX6SkL.s
GNU C++ version 3.3.2 (i386-pc-solaris2.9)
        compiled by GNU C version 3.3.2.
GGC heuristics: --param ggc-min-expand=47 --param ggc-min-heapsize=32718
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/opt/sfw/gcc-3/i386-pc-solaris2.9/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/sfw/gcc-3/include/c++/3.3.2
 /opt/sfw/gcc-3/include/c++/3.3.2/i386-pc-solaris2.9
 /opt/sfw/gcc-3/include/c++/3.3.2/backward
 /opt/sfw/gcc-3/include
 /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/include
 /usr/include
End of search list.
 /usr/ccs/bin/as -V -Qy -s -o /var/tmp//cc7CpDtM.o /var/tmp//ccDX6SkL.s
as: Sun Compiler Common 9.0 Patch 115114-02 2004/02/09
 /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/collect2 -V -R 
/opt/sfw/gcc-3/lib -Y P,/usr/ccs/lib:/usr/lib -Qy -o stest5.out 
/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/crt1.o 
/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/crti.o 
/usr/ccs/lib/values-Xa.o 
/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/crtbegin.o -L 
/opt/sfw/gcc-3/lib -L/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2 
-L/usr/ccs/bin -L/usr/ccs/lib 
-L/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/../../.. 
/var/tmp//cc7CpDtM.o -lstdc++ -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s 
-lgcc /opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/crtend.o 
/opt/sfw/gcc-3/lib/gcc-lib/i386-pc-solaris2.9/3.3.2/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.385
Undefined                       first referenced
 symbol                             in file
Stack<int>::push(int const&)        /var/tmp//cc7CpDtM.o
Stack<float>::push(float const&)    /var/tmp//cc7CpDtM.o
Stack<int>::pop()                   /var/tmp//cc7CpDtM.o
Stack<float>::pop()                 /var/tmp//cc7CpDtM.o
Stack<float>::top() const           /var/tmp//cc7CpDtM.o
Stack<int>::top() const             /var/tmp//cc7CpDtM.o
ld: fatal: Symbol referencing errors. No output written to stest5.out
collect2: ld returned 1 exit status


*/



best regards

Morten




More information about the Gcc-help mailing list