This is the code:
class A : public std::vector<int>
{
public:
void fooA()
{
std::cout << "A::fooA() + " << size() << '\n';
}
};
template <typename T>
class B : std::vector<T>
{
public:
void fooB()
{
std::cout << "B::fooB() + " << size() << '\n';
}
};
Class A is correct.
But in class B, size()
is considered undeclared, unless I change it to std::vector<T>::size()
Why doesn't class A have to add std::vector<int>
, but does class B have to?