According to C++1y/C++14 N3690, does the type of a variable template specialization have to be the same as the type of the primary template?
template
The following compiles with clang trunk -std=c++1y:
-std=c++1y
#include template char y = 3; template<> double y<42> = 2.5; char c {y<17>}; double d {y<42>};
So either a specialization of a variable template doesn't need to have the same type as its primary, or clang has a buggy implementation of N3690