On 10/06/17 20:21, Vijay Kiran Kamuju wrote:
+#define call_time_get_char_do_get(this, ret, s, e, base, err, t, fmt, mod) CALL_VTBL_FUNC(this, 12, istreambuf_iterator_char*, \
(const time_get_char*, istreambuf_iterator_char*, istreambuf_iterator_char, istreambuf_iterator_char, ios_base*, int*, struct tm*, char, char), \
(this, ret, s, e, base, err, t, fmt, mod))
+#else +#define call_time_get_char_do_get(this, ret, s, e, base, err, t, fmt, mod) CALL_VTBL_FUNC(this, 20, istreambuf_iterator_char*, \
(const time_get_char*, istreambuf_iterator_char*, istreambuf_iterator_char, istreambuf_iterator_char, ios_base*, int*, struct tm*, char, char), \
(this, ret, s, e, base, err, t, fmt, mod))
You're calling wrong virtual functions in call_time_get_char_do_get macro. Second argument of CALL_VTBL_FUNC macro is function offset in virtual function table.
Thanks, Piotr