Skip to content

ICC 19.1.2: CXX17 Work-Arounds (Variant)#1157

Merged
ax3l merged 1 commit intoopenPMD:devfrom
ax3l:fix-icc19.1.2-cxx17
Dec 11, 2021
Merged

ICC 19.1.2: CXX17 Work-Arounds (Variant)#1157
ax3l merged 1 commit intoopenPMD:devfrom
ax3l:fix-icc19.1.2-cxx17

Conversation

@ax3l
Copy link
Member

@ax3l ax3l commented Dec 8, 2021

The Attribute constructors with implicit variant conversion sometimes do not work in ICC 19.1.2.

openPMD-api/src/RecordComponent.cpp(226): error: no instance of constructor "openPMD::Attribute::Attribute" matches the argument list
            argument types are: (openPMD::Extent)
                  Attribute a(getExtent());
                              ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(79): note: this candidate was rejected because arguments do not match
      Attribute(resource r) : Variant(std::move(r))
      ^

Same work-around as for NVCC in #1103

Seen on LLNL's Quartz supercomputer.

X-ref: BLAST-WarpX/warpx#2300

The `Attribute` constructors with implicit variant conversion
sometimes do not work in ICC 19.1.2.

```
openPMD-api/src/RecordComponent.cpp(226): error: no instance of constructor "openPMD::Attribute::Attribute" matches the argument list
            argument types are: (openPMD::Extent)
                  Attribute a(getExtent());
                              ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(50): note: this candidate was rejected because arguments do not match
  class Attribute :
        ^
openPMD-api/include/openPMD/backend/Attribute.hpp(79): note: this candidate was rejected because arguments do not match
      Attribute(resource r) : Variant(std::move(r))
      ^
```

Same work-around as for NVCC in  openPMD#1103
@ax3l ax3l added this to the 0.14.4 milestone Dec 8, 2021
@ax3l ax3l requested a review from franzpoeschel December 8, 2021 19:17
ax3l added a commit to ax3l/warpx that referenced this pull request Dec 8, 2021
Avoids that we need to apply work-arounds in openPMD-api 0.14.3 for
some `std::variant` constructors that the older compiler did not
parse well.

openPMD/openPMD-api#1157
@ax3l ax3l mentioned this pull request Dec 8, 2021
25 tasks
@ax3l ax3l merged commit 5daafd3 into openPMD:dev Dec 11, 2021
@ax3l ax3l deleted the fix-icc19.1.2-cxx17 branch December 11, 2021 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants