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.