User has to define BUFFERSIZE macro to be able to use C++ headers. There are two problems with this approach:
- This is a very generic name; user might want to use it for its own purpose. Please rename it to something clearly libb64-specific, e.g. LIBB64_BUFFERISZE.
- There should be no need to define a macro in the first place. Please provide a sensible default if the macro is not defined.
Alternatively, you might want to use the BUFSIZ macro, which is provided by the <cstdio> header.