Using the _Generic
feature in C11, how do you deal with string literals?
For instance:
#include
#define foo(x) _Generic(
The behaviour of Clang was incorrect (C11 Defect report 481) until 3.7.1. It was fixed in Clang 3.8.0, released on March 8, 2016.
The Committee response to the DR 481 says the following:
This paper elicited a long and productive discussion. The committee agrees with the author of the
_Generic
proposal that the intent was that selecting on qualified types was explicitly to be avoided as was selecting on arrays by size. The intent of_Generic
was to give C a mechanism to somewhat express the notion of “overloaded function” found in C++, and in particular a possible mechanism for implementors to use to implement the atomic type generic functions from section 7.17.7.