Yes, explicitly creating std::string fixes the problem. This is not needed for newer gcc versions(>=6).
Thanks a lot Ben and Omer. > On 12-Sep-2019, at 10:57 PM, Omer F. Ozarslan <o...@utdallas.edu> wrote: > > I'm looking into it. Will submit PR today. > > On Thu, Sep 12, 2019 at 11:32 AM Ben Kietzman <ben.kietz...@rstudio.com> > wrote: >> >> 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 >>> >>>