A program can fail to compile in Cygwin using gcc -std=c++11. Headers compile OK (unless, like boost/asio.hpp, they try to use a missing definition). Now, because Cygwin's #ifdef macros bypass some function definitions in the c++11 environment, a programs might not. This does not occur when the same source files are similarly compiled on Fedora Linux.
This example program fails to compile using the gcc -std=c++11 option:
#include <boost/asio.hpp>
int main() { return 0; }
I first encountered this by discovering that the above program didn't compile, and then found even more similar problems when recompiling existing code using the updated standard.
The include sections I've found to be broken are listed in the reply.
[edited to correct typos.]
-std=gnu++11instead?c++11option I found in the documentation. I didn't realize there was another way of specifying the new standard until you pointed it out.(Your method is better. The problem won't recur when you upgrade or reinstall boost.)