https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61323

--- Comment #1 from Joel Yliluoma <bisqwit at iki dot fi> ---
Interestingly enough, only if you add the term "constexpr" to the array
declaration, you get an actually meaningful error message:

constexpr const char* table7[10] = {};          
template<unsigned size, const char*const (&table)[size]> void test7() { }
void tester7() { test7<10,table7>(); } 

Produces: 
test.cc:42:35: error: 'table7' is not a valid template argument for type 'const
char* const (&)[10]' because object 'table7' has not external linkage
 void tester7() { test7<10,table7>(); } 

The problem is that this very setting (non external linkage object as template
argument) should be allowed by C++11 -- the same standard that also gives us
constexpr.

Reply via email to