Issue with "vdprintf" in Print.h with PlatformIO

MartinZ

Member
Hi,

I get this message building my project under PlatformIO for Teensy3.6 after some package updates.
Project worked before but now build shows:
C++:
.platformio\packages\framework-arduinoteensy\cores\teensy3/Print.h:118:62: error: 'vdprintf' was not declared in this scope; did you mean 'vprintf'?
 
Switching back from platform teensy 5.0.0 to older platform with:
C++:
platform = teensy@4.18.0
does the trick.
But why does teensy 5.0.0 rise this problem?
 
Looks like the method:
Code:
int vprintf(const char *format, va_list ap) { return vdprintf((int)this, format, ap); }
Was added last year (May 2023)
Wonder if they should have not put the implementation of it within print.h
but instead into print.cpp, where there are two other methods implemented that use vdprintf (for at least 3 years)

Maybe with the same strict Ansi, stuff like the other two:
Code:
int Print::printf(const char *format, ...)
{
    va_list ap;
    va_start(ap, format);
#ifdef __STRICT_ANSI__
    va_end(ap);
    return 0;  // TODO: make this work with -std=c++0x
#else
    int retval = vdprintf((int)this, format, ap);
    va_end(ap);
    return retval;
#endif
}
 
Back
Top