Чтобы избежать конфликтов с winsock2.h, я хочу обернуть мое включение windows.h в WIN32_LEAN_AND_MEAN (я отменяю его после windows.h, чтобы не мешать приложениям, которые включают мои заголовки). Это приводит к неопределенности timeval, когда winsock2.h не включен. Включение time.h также не определяет timeval.
Как я могу определить временной интервал (a) без необходимости включать winsock2.h, (b) не требовать, чтобы приложения, включающие мои заголовки, включали winsock2.h перед моими заголовками, (c) позволяя приложению включать winsock2.h они нуждаются в них, и (d) нет необходимости определять timeval самостоятельно, потому что он уже может быть определен заголовком, который включает родительское приложение?