2

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?

xxhxx
  • 871
  • 5
  • 11

0 Answers0