Elemental functions in template classes

Elemental functions in template classes

Ritratto di rettenbs

I just figured out that you can not call math functions when combining elemental functions and template classes:

#include <cmath>
template<typename T>
class A {
public:
 __attribute__((vector))
 T b(T value)
{
  return std::sqrt(value);
 }
 };
int main() 
{
   A classA;
   float b = 4;
   classA.b(b);
 } 

Error message:

 asdf.cpp(13): error #2593: indirect call is not supported in vector function
 return std::sqrt(value);
          ^ 

Compiler version:

icpc (ICC) 12.1.5 20120612
Copyright (C) 1985-2012 Intel Corporation. All rights reserved. 

I can work around this problem using typedefs, but it would be nice to support this with templates as well.

4 post / 0 new
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione
Ritratto di Sergey Kostrov

Did you try to compile your test-case without '__attribute__( ( vector ) )' for the function 'b'?

Ritratto di rettenbs

Yes, works fine.

Ritratto di Judith Ward (Intel)

I see this error in an older version of 12.1. It looks like this was fixed in early August 2012 as our DPD200235034 in both 12.1 and 13.0. Please upgrade to a new version and sorry for the inconvenience.

Judy

Accedere per lasciare un commento.