Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7953 Discussions

Intel 64 Compiler for IA-64 and x86-64

1badhas
Beginner
466 Views
I'm trying to compile some software that compiles and works on the v10.0 Intel compiler for IA-64 but gives the following errorin the v11.0 Intel compiler for x86-64:


"error #547: nonstandard form for taking the address of a member function"

It compiles fine on both when:
"funcname(memfunc);" is changed to "funcname(&classname::memfunc);"

but again, the first syntax workswith v10.0 on the IA-64.

Is there some known issue related to this concerning the cross platform compilers or even from v10.0 to v11.0? Also, is there a quick fix to this when compiling that would save me from having to go through and update allinstances of this syntax?

0 Kudos
4 Replies
IDZ_A_Intel
Employee
466 Views
it seems related to one of our bug fixes.
The fix is in 11.0 already, which update are you using?

The latest 11.0 is 11.0.075.

Jennifer
0 Kudos
1badhas
Beginner
466 Views

If this helps, "icc -V" gives:

Intel C Intel 64 Compiler Professional for applications running on Intel 64, Version 11.0 Build 20090131 Package ID: l_cproc_p_11.0.081

Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

0 Kudos
Judith_W_Intel
Employee
466 Views
It looks like we changed thisto be compatible with Gnu, since all versions of Gnu will also give an error on this nonstandard pointer to member function expression.

Since it is a discretionary error (you can tell this because we give a diagnostic number) you can easily downgrade this to a warning with -ww547 or disable it entirely with -wd547.

0 Kudos
JenniferJ
Moderator
466 Views
11.0.075 is the update version for the Windows products. For Linux, the latest 11.0 update is 11.0.084.
So give it a try.

Also as JudyW noted, you can disable the warning.

Thanks,
Jennifer
0 Kudos
Reply