C++ strict-aliasing agnostic cast
I've read lots of QAs about strict aliasing here in Stack Overflow but all they are pretty common and discussion always tends to refer to deep-deep details of C++ standard which are almost always are difficult to understand properly. Especially when standard do not say things directly but describes something in a muddy unclear way. So, my question is probably a possible duplicate of tonns of QAs here, but, please, just answer a specific question: Is it a correct way to do a "nonalias_cast"?: template<class OUT, class IN> inline auto nonalias_cast(IN *data) { char *tmp = reinterpret_cast<char *