- split src, inc, demo_src?
- give an functor as argument, with a kind of
puts()
functor preset as default?
- a hopefully smaller and faster implementation compared with non-standard-C
ltoa()
and C++to_string()
- do a switchable by #ifdef USE_xxxx implementation via ltoa() and to_string()
- do benchmarks on size and speed, basically and on ESP8266
- add optional parameter for fillup alignment, bit like printf("%20s, %-20s",x,x) -> arg( ulong val, int align=0, char fill=' ' )
- the old C++03 trick of giving a buffer reference is probably not needed with gnu++11
- it is likely not needed with C++14 and absolutely not needed with c++17, but both are not to berequired for PlatformIO
Either integrate
- GoogleTest or
- UnitTest++ instead of handcrafted main()-Demo code. Some crowds in github seem to prefer
- unity Hmmm ... Google Test is perhaps out, because rev13.xx is requiring C++14 in the meantime, need to check, if rev 12.xx is still maintained!
- NoPrintf& trim()
- NoPrintf& cut(siz_t max) for most needed string manipulation.
- integrate either GoogleTest ... needs C++14 since rev 13.xx, but most PlatformIO project still stuck at gnu++11
- SEEN, that C++11 does support Delegating Constructors, made it
- integrate Unit Test -> I started with Lightest
- verify std::string NoPrintf::get() vs. - std::string NoPrintf::get_ref(), do we need the distinction between ref and copy? in C++14 we have RVO, in 17 it is mandatory ... depends on what we have at ESP/PlatformIO ... most PlatformIO project still stuck at gnu++11 (c++11 with gnu extension, which are required for some Espresif parts) -> the good news: gnu++11 does RVO.
- the
NoPrintf& arg( unsigned long int )
got template, but not with template specification (not needed and perhaps an g++ DR in gnu++11).