On Tue, Mar 15, 2016 at 7:41 AM, Artyom Beilis
There is another critical point.
Compilation time - and I'm serious about it. Web development is very dynamic by its nature if you make too many things in "fancy-template-meta-programming-compile-time" you'll loose users.
I don't think that Vinicius' Boost.HTTP tries to be a Web container of some sort, but rather a library used by such containers. That would encapsulate a lot of that dynamic nature into the next architecture layer. If users want C++ for web server development, you would think that they know the nature of C++ and the implications of wanting such optimized code. If not, then maybe provide a macro (something like BOOST_HTTP_FAST_COMPILATION) where optimization is not a goal, but rather compilation times. I don't know if this impacts greatly on the implementation though, or if it only concerns a small portion of the library.
If you try to do all the stuff by GCC/Clang as Turing machine you'll end with horrible compilation times and unmaintainable code
That would be encapsulated into a library, not user code. Indeed maintaining a library is no easy task.
For example one of the reasons I use Boost.Asio very carefully due its header-only nature with almost impossible compilation times.
Better to have high compilation times and very decent optimizes code than not to. But again, this is MHO. Madera