I recommend reading the notes section and better yet the following blog entry before one decides to use _Generic with less trivial types:
https://gustedt.wordpress.com/2015/05/11/the-controlling-exp...
https://gustedt.wordpress.com/2015/05/11/the-controlling-exp...
http://en.cppreference.com/w/c/language/generic