Added workaround for gcc 4.6 with C array

This commit is contained in:
Kohei Takahashi
2018-04-26 00:02:57 +09:00
parent 3b8fb67b52
commit e8da43a539
2 changed files with 7 additions and 0 deletions

View File

@ -70,6 +70,10 @@ namespace boost { namespace fusion
cons(cons<Car2, Cdr2> const& rhs)
: car(rhs.car), cdr(rhs.cdr) {}
#if BOOST_WORKAROUND(BOOST_GCC, / 100 == 406) && !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS)
// Workaround for `array used as initializer` compile error on gcc 4.6 w/ c++0x.
template <typename = void>
#endif
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
cons(cons const& rhs)
: car(rhs.car), cdr(rhs.cdr) {}

View File

@ -81,6 +81,9 @@ int main()
test_at<list<int[3]> >();
test_at<tuple<int[3]> >();
#if !BOOST_WORKAROUND(BOOST_GCC, / 100 == 406) || defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS)
// FIXME: gcc 4.6 w/ c++0x doesn't like set with array...
test_at_key<set<int[3]> >();
#endif
test_at_key<map<pair<int[3], int[3]> > >();
}