In this case, it's kind of rightfully picky - designated initializers like that
is not standard C++ and normally only exist in C. GNU may happen to expose them
as part of their GNU flavour of C++.
If you're using `-std=c++11` or such, try `-std=gnu++11`.
You could also try constructing a `pollfd` object before the statement and
pushing that, or possibly passing `pollfd{.fd = _listen_socket, .events =
POLLIN}`.
You're probably looking at some fun interaction of GNU extensions with the
advent of initializer_list:s in C++11.
// Lars
________________________________________
From: [email protected] <[email protected]> on
behalf of Kenneth Hoste <[email protected]>
Sent: Saturday, February 23, 2019 16:43
To: [email protected]
Subject: Re: [easybuild] Assertion error for PyTorch-0.3.1 with intelcuda-2017b
On 22/02/2019 22:10, Vanzo, Davide wrote:
> Hello all!
>
> I am trying to build PyTorch-0.3.1 with intelcuda-2017b but I am hitting
> the error I reported below. Has anybody seen anything similar before?
>
> /tmp/PyTorch/0.3.1/intelcuda-2017b-Python-3.6.3/pytorch-0.3.1/torch/lib/THD/base/data_channels/Store.cpp(44):
> error: no instance of overloaded function "std::vector<_Tp,
> _Alloc>::push_back [with _Tp=pollfd, _Alloc=std::allocator<pollfd>]"
> matches the argument list
> argument types are: ({...})
> object type is: std::vector<pollfd, std::allocator<pollfd>>
> fds.push_back({ .fd = _listen_socket, .events = POLLIN });
> ^
> /opt/easybuild/software/Core/GCCcore/6.4.0/include/c++/6.4.0/bits/stl_vector.h(932):
> note: this candidate was rejected because arguments do not match
> push_back(value_type&& __x)
> ^
> /opt/easybuild/software/Core/GCCcore/6.4.0/include/c++/6.4.0/bits/stl_vector.h(914):
> note: this candidate was rejected because arguments do not match
> push_back(const value_type& __x)
> ^
> /tmp/PyTorch/0.3.1/intelcuda-2017b-Python-3.6.3/pytorch-0.3.1/torch/lib/THD/base/data_channels/Store.cpp(44):
> internal error: assertion failed at: "shared/cfe/edgcpfe/exprutil.c",
> line 747
> fds.push_back({ .fd = _listen_socket, .events = POLLIN });
> ^
> compilation aborted for
> /tmp/PyTorch/0.3.1/intelcuda-2017b-Python-3.6.3/pytorch-0.3.1/torch/lib/THD/base/data_channels/Store.cpp
> (code 4)
Can you share the easyconfig file, so we can try to reproduce this?
It's probably the Intel compilers being a bit picky here, wouldn't be
the first time...
Looks like it may just need some convincing with a cast or something?
My C++ is too rusty to quickly figure this out though...
Maybe this helps:
https://www.reddit.com/r/cpp_questions/comments/6cohwk/no_instance_of_overloaded_function_vector_problem/
.
regards,
Kenneth