Is there a pure virtual function in the C++ Standard Library?

[syserr.errcat.overview] has std::error_category

class error_category {
  virtual const char* name() const noexcept = 0;
  virtual string message(int ev) const = 0;
};

There are no others in C++14.


C++17 adds std::pmr::memory_resource in [mem.res.class] to the one in C++14, with the following private pure virtual functions:

class memory_resource {
    virtual void* do_allocate(size_t bytes, size_t alignment) = 0;
    virtual void do_deallocate(void* p, size_t bytes, size_t alignment) = 0;
    virtual bool do_is_equal(const memory_resource& other) const noexcept = 0;
};

And yes, private virtual functions can be overridden.