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

Reply via email to