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|
|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.|