Я полагаю, что сообщение компилятора сводится к следующему: "offsetof" не является известным макросом, и если это была функция, ее параметры не должны содержать имя типа.
Редактировать : Как указывалось в комментариях, offsetof на самом деле является частью библиотеки std. Так что не хватает, вероятно, просто
#include <cstddef>
В качестве альтернативы, вы можете использовать эту реализацию макроса (взято из заголовков Win32 / MFC):
#ifdef _WIN64
#define OFFSET_OF( s, m )\
(size_t)((ptrdiff_t)&reinterpret_cast<const volatile char&>((((s*)0)->m)) )
#else
#define OFFSET_OF( s, m )\
(size_t)&reinterpret_cast<const volatile char&>((((s*)0)->m))
#endif