Elemental functions in template classes

Elemental functions in template classes

imagem de 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 posts / 0 new
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.
imagem de Sergey Kostrov

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

imagem de rettenbs

Yes, works fine.

imagem de 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

Faça login para deixar um comentário.