http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55311
--- Comment #2 from Niels Penneman <niels at penneman dot org> 2012-12-05 08:32:42 UTC --- Workaround for GCC 4.8.0-alpha20121202 (full version details see earlier post) for case #2: replace STRING_PTR template parameter with static_cast<const char *const>(STRING_PTR). Example code below with same invocation arguments is accepted by the compiler. =================================================== extern constexpr char STRING_PTR[] = "test"; template <const char *const C, typename T> struct A {}; template <typename T> struct B: A<static_cast<const char *const>(STRING_PTR), T> {}; =================================================== This workaround does not work for case #1 (with 'using') and does not seem to work on 4.7.2 in general.