It looks like the only source of entropy is the build time. So in his example he's generating a GUID with way too little entropy, especially if builds are generated at predictable times, which would cause collisions. If you go further and attempt to encrypt anything using this random stream you're gonna have a bad time.
This sort of reminds me how some IRC servers that engage in hostmask obfuscation can have it possibly reversed via a table lookup because the seed value used to produce that is generated at compile time based on epoch and said time is generally included in the server details, visible to any user at connect--this is specific to Unreal IRCd.
Example:
16:37:30 [network] -!- Welcome to the ircnetwork.network IRC Network afreak!irc@hostmask
16:37:30 [network] -!- Your host is ircnetwork.network, running version Unreal3.2.10.5
16:37:30 [network] -!- This server was created Thu Oct 15 2015 at 00:00:55 UTC
It's an interesting approach, but seems far more complex than just generating a random string via a program in the Makefile and importing it into the code as a #define ... this way would allow you complete freedom to pick the random number in any way that you liked.
Yeah this is one of those C++ template tricks where one wonders if it's really worth it doing it in C++.
Also the purpose seems to be to mark every build as unique. You'd want to store that number somewhere, or it wouldn't be very useful at all. You know, some small database with <who compiled>,<when>,<machine>,<commandline>,<version> and maybe even a diff compared to a known revision number. To really make it useful. That ... just wouldn't be doable in C++.
I'm starting to wonder when someone will write a c++ compiler in c++ templates, in effect making a program whose source code includes its own compiler. I mean, not like gcc, which is written in C and compiled by itself, I mean a program requiring only a c++ template interpreter with none of the other stages.