M
mati
Hi
The following code works:
#include <vector>
class C {
private:
static const int m_static = 2;
public:
void f(const std::vector<int>& v)
{
int a = m_static;
std::vector<int> stripped(v.begin()+a, v.end());
//std::vector<int> s2(v.begin()+m_static,v.end());
}
};
int main()
{
C c;
std::vector<int> pv;
int i;
pv.push_back(i);
pv.push_back(i);
pv.push_back(i);
c.f(pv);
}
But when I erase the comment in the void f(...), then compiler gives an
error:
g++ -ansi -Wall -o test test.cpp
std::allocator<int> > const&)]+0xdb): undefined reference to `C::m_static'
collect2: ld returned 1 exit status
make: *** [test] Error 1
g++ --version
g++ (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
Can anybody tell me what I'm doing wrong?
The following code works:
#include <vector>
class C {
private:
static const int m_static = 2;
public:
void f(const std::vector<int>& v)
{
int a = m_static;
std::vector<int> stripped(v.begin()+a, v.end());
//std::vector<int> s2(v.begin()+m_static,v.end());
}
};
int main()
{
C c;
std::vector<int> pv;
int i;
pv.push_back(i);
pv.push_back(i);
pv.push_back(i);
c.f(pv);
}
But when I erase the comment in the void f(...), then compiler gives an
error:
g++ -ansi -Wall -o test test.cpp
test.cpp.text._ZN1C1fERKSt6vectorIiSaIiEE[C::f(std::vector<int,/tmp/cckLnGUY.o: In function `C::f(std::vector said:> const&)':
std::allocator<int> > const&)]+0xdb): undefined reference to `C::m_static'
collect2: ld returned 1 exit status
make: *** [test] Error 1
g++ --version
g++ (GCC) 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)
Can anybody tell me what I'm doing wrong?