plKey's contents are separated into a public interface plKeyData and an internal implementation subclass plKeyImp. However, the main plKey API had an implicit conversion to plKeyImp, making it relatively easy to access the implementation details anyway.
This changes that to require an explicit method call, which only becomes available if you include the implementation header. This will make it easier to find all the places that rely on this conversion.
Confusingly, the implicit conversion was used quite often whenever a plKey was used as a boolean (to check if its underlying pointer is null). Those uses don't actually need the implementation details and are now handled by a simple operator bool.
plKey
's contents are separated into a public interfaceplKeyData
and an internal implementation subclassplKeyImp
. However, the mainplKey
API had an implicit conversion toplKeyImp
, making it relatively easy to access the implementation details anyway.This changes that to require an explicit method call, which only becomes available if you include the implementation header. This will make it easier to find all the places that rely on this conversion.
Confusingly, the implicit conversion was used quite often whenever a
plKey
was used as a boolean (to check if its underlying pointer is null). Those uses don't actually need the implementation details and are now handled by a simpleoperator bool
.