Hi Pegasus developers,

Recently it was found that Pegasus had failed to be built on Ubuntu
1604/GCC 5.4.0 for "Lint and build regularly" (tracked by [1]). The reason
is that implicit conversion from member initializer lists (see [2] and [3])
has not been supported for std::tuple by GCC 5.4.0, while being supported
by higher GCC versions (such as Ubuntu 1804/GCC 7.5.0). To build
successfully on Ubuntu 1604/GCC 5.4.0, we have to turn to explicit
constructions for std::tuple which will involve more redundant code.

In case that there is more extra work that we have to do to maintain
compilation for lower GCC versions in the future, I suggest we no
longer support compilation on Ubuntu 1604/GCC 5.4.0. Also, we can specify a
minimum supported GCC version in cmake.

[1] https://github.com/apache/incubator-pegasus/issues/1424
[2] https://en.cppreference.com/w/cpp/utility/tuple/tuple
[3] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387.html

--
Best wishes,
Dan

Reply via email to