Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Dany_G_
Beginner
858 Views

error : identifier "__is_assignable" is undefined

 

Hi!

There is a following error with Intel Parallel Studio 2016.2.180 and Visual Studio 2015

1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : identifier "__is_assignable" is undefined
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : type name is not allowed
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : type name is not allowed
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : identifier "__is_assignable" is undefined
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : type name is not allowed
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\type_traits(550): error : type name is not allowed

How can I solve it?

Thanks!

0 Kudos
16 Replies
Melanie_B_Intel
Employee
858 Views

This is new syntax which Microsoft introduced in vs2015 update 2, released just yesterday. Our 16.0 update 2 doesn't yet support this, but it will be supported in 16.0 update 3.  DPD200378147 in our internal bugs database is tracking this issue.  Sorry for the trouble. 

--Melanie

Garipov__Ruslan
Beginner
858 Views

@Melanie Blower

Can you tell us when Intel C++ Compiler 16.0 Update 3 will be available?

Thanks!

Melanie_B_Intel
Employee
858 Views

Intel doesn't generally publish the dates of upcoming releases.

Judy Ward suggested this workaround.  It will help you to get past this compilation problem although don't rely on it for a correct answer (if your program isn't actually using __is_assignable than you'll be fine)

If you aren't relying on the correctness of is_assignable, is_copy_assignable or is_move_assignable you could use this workaround:

 

-D__is_assignable=__is_trivially_assignable

 

This would cause those 3 type traits to sometimes return FALSE when they should return TRUE (i.e. if the assignment involved non trivial operations).

Hope this is of some help

--Melanie

georg-conrads
Beginner
858 Views

Hi

i would like to suggest to fix this issue as high priority.

Firstly we need the fixes included in VS2015 update2.

Revert VS2015 to update 1 is quite difficult.

This works around is quite dangerous if indirectly you use these calls (is_assignable, is_copy_assignable or is_move_assignable) like Boost....

please inform us about when you plan a fix update.

Thanks

Feilong_H_Intel
Employee
858 Views

Hi Georg,

We have forwarded your concerns to engineering team.

Thanks.

dima_s_
Beginner
858 Views

Hello,

Can you explain how to use this:-D__is_assignable=__is_trivially_assignable

Thanks.

Feilong_H_Intel
Employee
858 Views

Hi dima,

Add that to your compilation command line.  Let's say, your current command line is

icc -c -O2 -ipo a.c

Change it to

icc -c -O2 -ipo -D__is_assignable=__is_trivially_assignable a.c

Patz_L_
Beginner
858 Views

I still have error  "identifier __is_assignable is undefined" with update 3 of intel compiler.
Is that normal?

I noticed the error one month ago after the update of Visual Studio 2015, and directly found this page.
Melanie's trick works well anyway (I actually use "#define __is_assignable  __is_trivially_assignable", instead of a compiler option)

Feilong_H_Intel
Employee
858 Views

Hi Patz,

(Updated on May 5)

16.0 Update 3 support the type_traits header in VC++ now.  If you still see problem compatibility issue with that header, please let me know and upload a small test case.

Thanks.

Feilong_H_Intel
Employee
858 Views

Hi Iceflower,

I upgraded my VS Enterprise 2015 to 2015 Update 2.  Unfortunately I failed to reproduce the error with the small test case above.  Did you use any compiler options?  If possible, please upload your solution in this thread.

Patz_L_
Beginner
858 Views

I confirm Iceflower's post: With his tiny program, I get exactly the same errors .
I'm using the default project compilation switches.

I'm using Visual Studio 2015 pro update 2 (I only installed the visual C++ compiler, and the Clang compiler. No other component)
 

Patz_L_
Beginner
858 Views

I just discovered a difference:
It compiles for the platform x86, but it does not compile for x64 (my default platform)

IceFlower, does the platform make a difference for you too?

Patz_L_
Beginner
858 Views

Thanks Iceflower.
I had obviously both update 2 and 3 were installed. (I have no idea what Intel software Manager does)
I uninstalled everything from Intel, and reinstalled the update 3.

It now works

Feilong_H_Intel
Employee
858 Views

Hi Patz,

Glad to hear that the problem is solved in Update 3.  Thank you for your testing.

TimP
Black Belt
858 Views

This problem cropped up here (with more recent Intel C++) when I "upgraded" from the November release of Windows 10 to current preview build 14352.  I'm trying a repair on VS2015 (Community). 

I'm somewhat disappointed in the Windows preview build.  I spent hours trying the linux subsystem which provides a gcc 4.8 (no OpenMP 4 support) and has too many symlink related failures.  Don't see why this should affect Windows build tools.

Joe_T_1
Beginner
858 Views

I'm getting this error message with Visual studio 14.0.25431.01 update 3 and Intel Parallel Studio XE 2016 Update 4, was this not fixed in Update 4?

Reply