Post Ad333dHZMYaAqdvUOG by smurthys@hachyderm.io
 (DIR) More posts by smurthys@hachyderm.io
 (DIR) Post #Ad333Pq9LBvP9pzuLY by smurthys@hachyderm.io
       2023-12-21T21:10:27Z
       
       0 likes, 0 repeats
       
       In C++, how do I statically assert the type of a null-terminated string literal ("ordinary string literal", [lex.string])? 🙏For example, "it" whose type AFAIK is const char[3]static_assert(std::same_as<decltype("it"), const char[3]>); //failsCE: https://sigcpp.godbolt.org/z/4h475oh7a#question #cpp #cPlusPlus #programming
       
 (DIR) Post #Ad333bCX6JMiORYRGK by vitaut@mastodon.social
       2023-12-21T21:13:01Z
       
       0 likes, 0 repeats
       
       @smurthys static_assert(std::same_as<decltype("it"), const char(&)[3]>);but it doesn't guarantee null termination
       
 (DIR) Post #Ad333dHZMYaAqdvUOG by smurthys@hachyderm.io
       2023-12-21T21:14:21Z
       
       0 likes, 0 repeats
       
       @vitaut Good to know. But still type of "it" is const char[3], correct?
       
 (DIR) Post #Ad333fD2CO8wp9otbE by Coyote@social.singing.dog
       2023-12-21T22:32:58.987299Z
       
       0 likes, 0 repeats
       
       @smurthys @vitaut Yes; decltype returns T& for lvalues (when the argument isn't an identifier or class member) which string literals are.