In a single translation unit you will need to provide the definition of the type. It will look like:
struct AsynchronousFunction::Impl {
// members and functions...
};
Note that I renamed pImpl
into Impl
, the p
in the idiom is for pointer, the member in the containing class would be Impl* pImpl;
.