It looks like a tuple constructor is choking on implicit conversion from string literal (char[6]) to boost::optional<std::string>: https://travis-ci.org/ursa-labs/crossbow/builds/582833123#L1161
That constructor in the 4.8.2 release of GCC requires that parameters be *convertible* to the corresponding element type (and not just that the element be constructible from the parameter) https://github.com/gcc-mirror/gcc/blob/gcc-4_8_2-release/libstdc++-v3/include/std/tuple#L400-L405 Locally, // static_assert(std::is_convertible<char const[5], boost::optional<std::string>>::value, "FAILS"); static_assert(std::is_convertible<std::string, boost::optional<std::string>>::value, "fine"); So I think this can be resolved by wrapping string literal arguments to tuple constructors with std::string to ensure they are convertible. I'll create a JIRA On Thu, Sep 12, 2019 at 8:09 AM Prudhvi Porandla <prud...@dremio.com> wrote: > Hi, > > Gandiva trusty job( > https://travis-ci.org/ursa-labs/crossbow/builds/582833123) is failing > with this commit (ARROW-6326: [C++] Nullable fields when converting > std::tuple to Table < > https://github.com/apache/arrow/commit/d6bc0b6f5975304367000e3090e09d4cf8af1fb9 > >). > The compilation is successful if the optional string column is removed > from boost_optional_types_tuple(see line 36 of cpp/src/arrow/stl_test.cc). > > Could someone help me understand this error? > > > Thanks, > Prudhvi > > >