I had another look and that isn’t quite true. It does define them, but only if __clang__ is defined. I tried removing that #ifdef (and the std::begin/end)
and that works on my GCC-4.8.1 install as well.
but it does not work for gcc+clang on Linux
layout.cpp:47:49: error: no matching function for call to 'begin'
std::copy(std::begin(words),std::end(words),std::begin(writer));
I'll take a look at boost.range, maybe I find code telling me how to deal with this issue