Allow users to include class without including headers used for privates

Viewed 326

Sorry for the long and confusing title.

I have a class header file like this

#pragma once
#include <thread>
#include <boost/asio.hpp>
#include <another3rdpartylib/doodads.h>

class A {
public:
  A();
  Method1();
  Method2();
private:
  std::thread thread;
  boost::asio::socket socket;
  another3dpartylib::doodad gizmo;
}

Now the users of the class don't and shouldn't care about the private parts. How can I allow the users to include the class without dragging <thread>, <boost/asio.hpp> and <another3rdpartylib/doodads.h>?

Technically the only thing the users should care about is sizeof(A). Am I mistaken?

2 Answers
Related