I received the following compiler error using Intel C++ compiler 17.0 under Visual Studio 2015 Update 3:
error : assertion failed at: "shared/cfe/edgcpfe/templates.c", line 30947
template <typename T, typename... Vs>
class task_t : public task_base_t
{
static auto task_relay(const T& t, Vs&& ...params)
{
return t(std::forward<Vs>(params)...);
}
using task_result_t = decltype(task_relay(std::declval<T>(), std::declval<Vs>()...)); // assertion failure
...
This assertion failure does not present under Intel C++ compiler 17.0 under Visual Studio 2013 Update 5.
The workaround for this issue is revising the using statement thusly:
using task_result_t = decltype(std::declval<T>()(std::forward<Vs>(std::declval<Vs>())...));
Hopefully, this can be resolved in an upcoming patch release.
Regards,
Jason