I’m subclassing juce::InputStream, but i get an error on windows:
size_t readIntoMemoryBlock (juce::MemoryBlock& destBlock,
ssize_t maxNumBytesToRead) override
because ssize_t being a POSIX only extension. Then JUCE got this in MathFunctions, because why not:
#if JUCE_WINDOWS && ! JUCE_MINGW
using ssize_t = pointer_sized_int;
#endif
The problem is, if i declare the method like this:
size_t readIntoMemoryBlock (juce::MemoryBlock& destBlock,
juce::ssize_t maxNumBytesToRead) override
Now things won’t compile on posix, because the alias in the juce namespace isn’t defined.
Should that parameter be a std::ptrdiff_t to be compatible with C++ on all platforms ?
As a general suggestion, never alias standard types exposed to public interfaces into your own namespace.
