C++ convert string literal to multi-character literal at compile time -


basically, if have string:

"abcd" 

i want end equivalent of:

'abcd' 

at compile time. have tried using macros, preprocessor magic, , microsoft's charize operator (#@), none of them work correctly. end result should allow me this:

template <long n> struct some_type {}; long whatever = str_to_multi_char_literal("abcd"); some_type<whatever> xyz; 

let assume can forget big/little endian now, use constexpr union

union dirty_hack {     long l;     char[4] chars; }; 

if need consider endian, becomes more complex. size of long 8, not 4.

another thought, if long 32bit, char32_t char4b = u'\uaabbffff' supported in c++11. need figure out map a 45 (hex value of a). cast char4b long.


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -