Quantcast
Channel: Intel® C++ Compiler
Viewing all articles
Browse latest Browse all 1616

Intel C++ compiler, libc++, std::tuple issue

$
0
0

Hi all,

I'm using Intel C++ Compiler 14.0.3 and libc++ on Mac OS X 10.9.3. The following code compiles cleanly in clang and gcc but not on icpc. Maybe a compiler bug?

Many thanks,

-mc.

 

#include <tuple>
#include <algorithm>
#include <vector>


typedef std::tuple<double, double, double> DataTuple;

int main(void)
{
    struct comparator
    {
        bool operator() (const DataTuple& a, const DataTuple& b)
        {
            return (std::get<0>(a) < std::get<0>(b));
        }
    } mycomp;

    std::vector<DataTuple> vec;
    std::sort(vec.begin(), vec.end(), mycomp);

    return 0;
}

Error message:

/mylibcxx/include/tuple(174): error: identifier "_Hp" is undefined

      _NOEXCEPT_(__is_nothrow_swappable<_Hp>::value)

      ^

          detected during:

            instantiation of "void std::__1::swap(std::__1::__tuple_leaf<_Ip, _Hp, _Ep> &, std::__1::__tuple_leaf<_Ip, _Hp, _Ep> &) [with _Ip=0UL, _Hp=double, _Ep=false]" at line 3340 of "/mylibcxx/include/type_traits"

            instantiation of class "std::__1::__is_nothrow_swappable_imp<<unnamed>, _Tp> [with <unnamed>=true, _Tp=std::__1::__tuple_leaf<0UL, double, false>]" at line 3352 of "/mylibcxx/include/type_traits"

            instantiation of class "std::__1::__is_nothrow_swappable<_Tp> [with _Tp=std::__1::__tuple_leaf<0UL, double, false>]" at line 284

            instantiation of "int std::__1::__tuple_leaf<_Ip, _Hp, <unnamed>>::swap(std::__1::__tuple_leaf<_Ip, _Hp, <unnamed>> &) [with _Ip=0UL, _Hp=double, <unnamed>=false]" at line 285

            instantiation of "int std::__1::__tuple_leaf<_Ip, _Hp, <unnamed>>::swap(std::__1::__tuple_leaf<_Ip, _Hp, <unnamed>> &) [with _Ip=0UL, _Hp=double, <unnamed>=false]" at line 481

            instantiation of "void std::__1::__tuple_impl<std::__1::__tuple_indices<_Indx...>, _Tp...>::swap(std::__1::__tuple_impl<std::__1::__tuple_indices<_Indx...>, _Tp...> &) [with _Indx=<0UL, 1UL, 2UL>, _Tp=<double, double, double>]" at line 670

            instantiation of "void std::__1::tuple<_Tp...>::swap(std::__1::tuple<_Tp...> &) [with _Tp=<double, double, double>]" at line 704

            instantiation of "std::__1::enable_if<std::__1::__all<std::__1::__is_swappable<_Tp>::value...>::value, void>::type std::__1::swap(std::__1::tuple<_Tp...> &, std::__1::tuple<_Tp...> &) [with _Tp=<double, double, double>]" at line 3840 of "/mylibcxx/include/algorithm"

            instantiation of "void std::__1::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _Compare=comparator &, _RandomAccessIterator=DataTuple *]" at line 4025 of "/mylibcxx/include/algorithm"

            instantiation of "void std::__1::sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator=DataTuple *, _Compare=comparator &]" at line 4059 of "/mylibcxx/include/algorithm"

            instantiation of "void std::__1::sort(std::__1::__wrap_iter<_Tp *>, std::__1::__wrap_iter<_Tp *>, _Compare) [with _Tp=DataTuple, _Compare=comparator]" at line 19 of "icpc_bug.cpp"

 


Viewing all articles
Browse latest Browse all 1616

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>