View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003479 | OpenFOAM | Bug | public | 2020-04-10 14:17 | 2020-04-10 16:09 |
Reporter | tniemi | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | sometimes |
Status | resolved | Resolution | fixed | ||
Product Version | dev | ||||
Fixed in Version | dev | ||||
Summary | 0003479: wordAndDictionary, compilation error with gcc older than v 7 | ||||
Description | When compiling dev with an older gcc, the compilation fails with "error: no matching function for call to ‘Foam::wordAndDictionary::wordAndDictionary()’" It seems that the compiler is unable to find a constructor which takes no parameters for that class. The constructor is created with a using clause using Tuple2<word, dictionary>::Tuple2; Tupple2 does have such a constructor, so this is likely a compiler bug. While investigating, I found out that C++11 standard has been reworded regarding inheriting constructors and only gcc 7 or newer support this. The rewording seemed complicated, so I don't know if it is related to this or not, but at least it matches my observations when testing various compilers as v. 5 and 6 seemed to fail. If the using-clause is replaced with a regular constuctor definition, the code compiles with older compilers. | ||||
Steps To Reproduce | Compilations with 5.3.1, 5.4.0, 6.3.0 fail, 7.5.0 works. | ||||
Tags | No tags attached. | ||||