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

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

Testcase:

#include <tuple>
std::tuple<int, int, int> f();
void g() {
    int a, b, c;
    std::tie(a, b, c) = f();
}

Compile with:

/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)

It was fine with ICC 13:
/opt/intel/composer_xe_2013.5.192/bin/intel64/icpc -mmic -std=c++11 -c -o tie.o tie.cpp

Vc: SIMD Vector Classes for C++ http://code.compeng.uni-frankfurt.de/projects/vc
5 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

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.  

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

Vc: SIMD Vector Classes for C++ http://code.compeng.uni-frankfurt.de/projects/vc

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

thanks for reporting.

Jennifer

FYI.

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

Jennifer

Connectez-vous pour laisser un commentaire.