| September 6, 2011 12:00 AM PDT | |
Reference Number : DPD200027211
Version : 11.1, Intel® C++ Compiler XE 2011
Product : Intel® C++ Composer XE for Linux*, Intel® C++ Compiler for Linux* Professional Edition
Operating System : Linux*
Problem Description : From gcc 4.3 forward, certain gcc header files contain uses of the C++0x feature variadic templates. This feature is not yet supported by the Intel® C++ Compiler, so the use of the feature in these header files causes compilation errors with the Intel compiler. The following is a table of header files and the gcc versions where these header files have issues.
† Header file does not exist in this version of gcc
An example of an error you might see is:
Resolution Status : These issues has been resolved in the Intel® C++ Composer XE 2011 Update 6. Note that using update 6 is a significant compiler upgrade from previous updates.
[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]
Version : 11.1, Intel® C++ Compiler XE 2011
Product : Intel® C++ Composer XE for Linux*, Intel® C++ Compiler for Linux* Professional Edition
Operating System : Linux*
Problem Description : From gcc 4.3 forward, certain gcc header files contain uses of the C++0x feature variadic templates. This feature is not yet supported by the Intel® C++ Compiler, so the use of the feature in these header files causes compilation errors with the Intel compiler. The following is a table of header files and the gcc versions where these header files have issues.
| gcc 4.3 | gcc 4.4 | gcc 4.5 | |
| tuple | fails | fails | fails |
| thread | † | fails | fails |
| mutex | † | fails | fails |
| type_traits | passes | fails | fails |
| functional | passes | passes | fails |
| future | † | † | fails |
† Header file does not exist in this version of gcc
An example of an error you might see is:
error: function is not a template
Resolution Status : These issues has been resolved in the Intel® C++ Composer XE 2011 Update 6. Note that using update 6 is a significant compiler upgrade from previous updates.
[DISCLAIMER: The information on this web site is intended for hardware system manufacturers and software developers. Intel does not warrant the accuracy, completeness or utility of any information on this site. Intel may make changes to the information or the site at any time without notice. Intel makes no commitment to update the information at this site. ALL INFORMATION PROVIDED ON THIS WEBSITE IS PROVIDED "as is" without any express, implied, or statutory warranty of any kind including but not limited to warranties of merchantability, non-infringement of intellectual property, or fitness for any particular purpose. Independent companies manufacture the third-party products that are mentioned on this site. Intel is not responsible for the quality or performance of third-party products and makes no representation or warranty regarding such products. The third-party supplier remains solely responsible for the design, manufacture, sale and functionality of its products. Intel and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others.]
Do you need more help?
This article applies to: Intel® C++ Compiler for Linux* Knowledge Base
For more complete information about compiler optimizations, see our Optimization Notice.
Comments (4) 
| July 18, 2011 12:08 PM PDT
davehomiak | Forgot to point out in my first post that this error is in my code, not a gcc header, and a variadic template is not involved. |
| August 1, 2011 10:04 AM PDT
Brandon Hewitt (Intel)
|
Hi Dave, Unfortunately I can't comment on future product plans, but we are taking this compatibility problem seriously and are working on a fix. |
| January 7, 2012 4:05 PM PST
Sergey Kostrov
|
That's a very interesting to learn. But, to be honest, I will resist to ANY attempt of using 'variadic templates' on our 95%-C++-templates-based project. Why? Because of portability issues with some older C/C++ compilers currently used on the project. Best regards, Sergey |
Trackbacks (2)
-
Twitter Trackbacks for
Some gcc Headers will not Compile due to Use of C++0x Variadic Templates - Intel® Software Network
[intel.com]
on Topsy.com
November 19, 2010 5:19 PM PST - ICC 编译 Google Mock 和 Google Test 的问题 – 中文 - 英特尔® 软件网络
December 22, 2011 8:56 PM PST
Leave a comment 
To obtain technical support, please go to Software Support.


davehomiak
DPD200165009 C++ gcc* 4.5 error: GNU C++ allows C++0x list initializers in non-C++0x modes
but I am still getting errors using gcc 4.5.1 headers like this:
error: hash is not a template
struct hash<test::math::framework::PriceDouble>
so, it fits the description mentioned above. Can you give any estimate of when this will be fixed?
Thanks.