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 {
 T b(T value)
  return std::sqrt(value);
int main() 
   A classA;
   float b = 4;

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
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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.


Leave a Comment

Please sign in to add a comment. Not a member? Join today