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

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

Аватар пользователя Matthias Kretz

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
4 posts / 0 новое
Последнее сообщение
Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.
Аватар пользователя Casey

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.  

Аватар пользователя Matthias Kretz

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
Аватар пользователя Jennifer J. (Intel)

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

thanks for reporting.

Jennifer

Зарегистрируйтесь, чтобы оставить комментарий.