We're trying to use http://cpp-netlib.org and failing to compile it, because in one of its headers it has:
namespace network {
namespace utils {
struct thread_pool;
}
}
and in another:
namespace network {
namespace utils {
typedef ::network::concurrency::thread_pool thread_pool;
}
}
From what I understand from Forward declaration of a typedef in C++ and http://www.cplusplus.com/forum/beginner/75561 in C++ this is basically illegal - you just can't forward declare: "struct A;" and then try to "typedef X A;".
So, my question is, what on earth might they be compiling this with that allows it? Is this some new feature of C++11, since they are claiming to use the latest-greatest-of-C++11?