c++11 - Intel compiler and "cannot have an in-class initializer" when using constexpr -


the following test program compiles , runs fine g++. intel icpc (14.0.2) compile , run if use explicit type double instead of template. template version icpc produces error:

icpc -g -o2 -i. -std=c++0x -c main.cc -o main.o  main.cc(10): error: member of type "const t [9]" cannot have in-class initializer     static constexpr t dx_[9] = { 

test code

template<typename t> class myclass {  public:      static constexpr t dx_[9] = {          1.5,  2.0, -0.5,         -0.5,  0.0,  0.5,          0.5, -2.0, -1.5         }; };  template<typename t> constexpr t myclass<t>::dx_[9];  int main(int argc, char *argv[]) {     return 0; } // main 

why receiving error "cannot have in-class initializer" when using constexpr?

this bug of intel compiler, submitted intel , fixed in future versions.

also see multiple constexpr bugs, sfinae bug intel c++ compiler 15 , method constexpr bug c++ compiler 15 on intel forums.


Comments

Popular posts from this blog

java - WrongTypeOfReturnValue exception thrown when unit testing using mockito -

php - Magento - Deleted Base url key -

android - How to disable Button if EditText is empty ? -