static assert work around for VC++ compile or any other c++ compiler