Quantcast
Channel: Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1616

sfinae bug with intel c++ compiler 15

$
0
0

Following code (also attached)  compiles fine with clang gcc but fails with an error with icc.

 

#include <iostream>                                                                                 

                                                                                                    

struct MyIndex : std::integral_constant<int, -1> {};                                                

                                                                                                    

struct Dimension {                                                                                  

  using Dynamic = MyIndex;                                                                          

};                                                                                                  

                                                                                                    

template<class T, T Key>                                                                            

constexpr bool make_true2(const std::integral_constant<T, Key>&)                                    

{                                                                                                   

  return 1;                                                                                         

}                                                                                                   

                                                                                                    

template<int I>                                                                                     

constexpr int make_true() {                                                                         

  return make_true2(Dimension::Dynamic());                                                          

}                                                                                                   

                                                                                                    

template<                                                                                           

    int I                                                                                           

  , typename std::enable_if<make_true<I>(), int>::type = 0                                          

>                                                                                                   

int myfunc() {                                                                                      

  return 9;                                                                                         

}                                                                                                   

                                                                                                    

int main() {                                                                                        

  std::cout << myfunc<0>() << std::endl;                                                            

  return 0;                                                                                         

}                                                                                                 

AdjuntoTamaño
Descargarmain.cpp501 bytes

Viewing all articles
Browse latest Browse all 1616

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>