Elemental functions in template classes

Elemental functions in template classes

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 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

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

Yes, works fine.

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

发表评论

登录添加评论。还不是成员?立即加入