I see SFML doesn't hide the private scope of its classes, can't this create binary compatibility issues in case you want to change them across minor versions? (as in, symbol size changes won't link)
Usually most C++ libraries (such as Qt), to avoid this, allocate the private scope separatedly like this:
myclass.h
class MyClassPrivate;
class MyClass {
MyClassPrivate *p;
public:
void methods();
MyClass();
~MyClass();
}
myclass.cpp
class MyClassPrivate {
public:
member variables
};
MyClass::MyClass() {
p = new MyClassPrivate;
}
MyClass::~MyClass() {
delete p;
}
Well, hope this is of any use.
Cheers!