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

Reply via email to