-
Notifications
You must be signed in to change notification settings - Fork 151
ICC Bug List
Matthias Kretz edited this page Dec 8, 2015
·
3 revisions
Since the Intel bug tracker for ICC is locked up I'll use this space to document some of the bugs I come across and reported. The numbers correspond to the Issue ID in the Intel Business Portal.
ICC tries to static_cast<int *>(double())
. If you replace sizeof...(Ts)
with any integer it compiles just fine.
#include <utility>
template <typename... Ts> void foo(Ts &&...);
template <std::size_t N, typename T> T maybe(T &&);
template <typename... Ts> void baz(Ts &&... args)
{
foo(maybe<sizeof...(Ts)>(static_cast<Ts>(args))...);
}
void bar()
{
int e;
baz(double(), &e);
}
Resolved with ICC 16 Update 1
The following test case does not compile:
template <int N> struct A;
template <> struct A<0> {};
template <int N> struct A : public A<N - 1> {
using Base = A<N -1>;
using Base::A;
};
The output is:
main.cpp(8): error: declaration of a member with the same name as its class
using Base::A;
^
If the line using Base::A
is changed to using A<N -1>::A
, it compiles fine.