6e82afde79
an extract() function. The original implementation used calloc() inside the extract() routine which forced all clients, including embedded builds, to have a heap. This was very heavy handed. The new solution is must more flexible. * If the client want to use the print() functionality, they will have to support calloc and string safe variable argument length function similar to snprintf. This seems reasonable because if you can print, then you can typically support these complex capabilities. * For clients that don't want to print, but still want to parse the bacpp value into a string, they can use the new extract() method, which only requires supports for snprintf. This would require a compile time definition of BACAPP_SNPRINTF_ENABLED. * For clients which don't want the overhead of these heavy handed methods, it is possible to set compile time flags to not inherit either the print() or the extract() functions.