0

For homework I'm apparently supposed to implement some functions defined in <algorithm> . So this is what I have so far:

template <class I> bool m_equal( I b, I e, I b2 )                                                                                                                                                                   
{                                                                                                                                                                                                                   
    for ( ; b != e && b == b2; b++, b2++ );                                                                                                                                                                         
    return b == b2;                                                                                                                                                                                                 
}                                                                                                                                                                                                                   
template <class I, class T> I m_find( I b, I e, const T c )                                                                                                                                                         
{                                                                                                                                                                                                                   
    for ( ; b != e && *b != c; b++ );                                                                                                                                                                               
    return b;                                                                                                                                                                                                       
}                                                                                                                                                                                                                   
template <class I, class T> void m_copy( I b,I e, I d )                                                                                                                                                             
{                                                                                                                                                                                                                   
    while ( b != e ) *d++ = *b++;                                                                                                                                                                                   
}                                                                                                                                                                                                                   
template <class I, class T> void m_remove_copy_if (I b, I e, I d, T p)                                                                                                                                              
{                                                                                                                                                                                                                   
    for ( ; b != e; b++ ) if ( !p( b ) ) *d++ = *b;                                                                                                                                                                 
}

My compile command is:

cc ex0.cpp -o ex0

And the error log:

/tmp/ccvD4Xto.o: In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
ex0.cpp:(.text+0x3c): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const'
ex0.cpp:(.text+0x87): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
ex0.cpp:(.text+0xc5): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
ex0.cpp:(.text+0x10d): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
/tmp/ccvD4Xto.o: In function `__static_initialization_and_destruction_0(int, int)':
ex0.cpp:(.text+0x157): undefined reference to `std::ios_base::Init::Init()'
/tmp/ccvD4Xto.o: In function `__tcf_0':
ex0.cpp:(.text+0x1a4): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccvD4Xto.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

What is exactly is the problem? Thanks for help in advance.

2
Contributors
2
Replies
3
Views
9 Years
Discussion Span
Last Post by Sturm
0

Using a C compiler to compile C++ code.
The compiler driver will correctly invoke the correct compiler, but will fail to add on the correct libraries.

What command other than 'cc' should you use?

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.