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

regression: no operator "=" matches these operands for std::tie = std::tuple

Matthias_Kretz
New Contributor I
1,340 Views

Testcase:
[cpp]
#include <tuple>

std::tuple<int, int, int> f();

void g() {
    int a, b, c;
    std::tie(a, b, c) = f();
}
[/cpp]
Compile with:

[plain]
/opt/intel/composer_xe_2013_sp1.0.080/bin/intel64/icpc -mmic -std=c++11 -c -o tie.o tie.cpp
tie.cpp(7): error: no operator "=" matches these operands
            operand types are: std::tuple<int &, int &, int &> = std::tuple<int, int, int>
      std::tie(a, b, c) = f();
                        ^

compilation aborted for tie.cpp (code 2)
[/plain]
It was fine with ICC 13:
[plain]/opt/intel/composer_xe_2013.5.192/bin/intel64/icpc -mmic -std=c++11 -c -o tie.o tie.cpp[/plain]

0 Kudos
4 Replies
Casey
Beginner
1,340 Views

That testcase compiles fine for me with icpc 14.0.0 20130728 on Linux without "-mmic" (I don't have the MIC environment and couldn't test that). Does it build without MIC for you?  Perhaps the regression is in that environment.  

0 Kudos
Matthias_Kretz
New Contributor I
1,340 Views

Yes, I tested it without -mmic and yes, it only fails for -mmic.

0 Kudos
JenniferJ
Moderator
1,340 Views

yeh. looks like a bug to me. I'll file a bug report to the compiler team.

thanks for reporting.

Jennifer

0 Kudos
JenniferJ
Moderator
1,340 Views

FYI.

This bug has been fixed in 14.0 update 2 or later, the 15.0.

Jennifer

0 Kudos
Reply