Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AnsiString working(AnsiString format,...)
- {
- va_list argptr;
- AnsiString buff;
- va_start(argptr, format);
- buff.vprintf(format.c_str(), argptr);
- va_end(argptr);
- return buff;
- }
- AnsiString broken(const AnsiString &format,...)
- {
- ... the rest, totally identical ...
- }
- AnsiString s1, s2;
- s1 = working("Hello %s", "World");
- s2 = broken("Hello %s", "World");
- va_start(argptr, format);
- argptr = (va_list) (&format+1);
- AnsiString working_ptr(const AnsiString *format,...)
- {
- ASSERT(format != NULL);
- va_list argptr;
- AnsiString buff;
- va_start(argptr, format);
- buff.vprintf(format->c_str(), argptr);
- va_end(argptr);
- return buff;
- }
- ...
- AnsiString format = "Hello %s";
- s1 = working_ptr(&format, "World");
- AnsiString working_dummy(const AnsiString &format, int dummy, ...)
- {
- va_list argptr;
- AnsiString buff;
- va_start(argptr, dummy);
- buff.vprintf(format.c_str(), argptr);
- va_end(argptr);
- return buff;
- }
- ...
- s1 = working_dummy("Hello %s", 0, "World");
- alloca(sizeof(class));
- memcpy(stack, &instance, sizeof(class);
Add Comment
Please, Sign In to add comment