nitroshare / qhttpengine

HTTP server for Qt applications
MIT License
159 stars 76 forks source link

DELETE macro conflict #32

Open robozman opened 5 years ago

robozman commented 5 years ago

I'm having an issue when compiling a program that uses qhttpengine on Windows. The use of DELETE at https://github.com/nitroshare/qhttpengine/blob/43f55df51623621ed3efb4e42c7894586d988667/src/include/qhttpengine/socket.h#L134 is resolving the DELETE macro that in defined in winnt.h. This is causing the compile to fail with a syntax error.

My current workaround for this is to rename the DELETE in socket.h to something else but this obviously isn't a good solution to the problem.

Thanks for your help and for your software!

nathan-osman commented 5 years ago

One possible option (assuming you don't need the DELETE constant from winnt.h) is to add the following line before including socket.h:

#undef DELETE
#include <qhttpengine/socket.h>

As for a long term solution, let me give this some careful thought.

(This is one of the reasons I don't like #defines - it pollutes the global namespace and causes problems like this.)