Skip to content

Commit

Permalink
fixes at_c with C-style array
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanpoelen authored and edouarda committed Apr 3, 2016
1 parent f719035 commit 7d4107a
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 2 additions & 2 deletions brigand/sequences/at.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ namespace brigand
template<class... Ts>
struct element_at<list<Ts...>>
{
template<class T> T static at(Ts..., T*, ...);
template<class T> type_<T> static at(Ts..., T*, ...);
};

template<std::size_t N, typename Seq> struct at_impl;

template<std::size_t N, template<typename...> class L, class... Ts>
struct at_impl<N,L<Ts...>>
: decltype(element_at<brigand::filled_list<void const *, N>>::at(static_cast<Ts*>(nullptr)...))
{
using type = decltype(element_at<brigand::filled_list<void const *, N>>::at(static_cast<Ts*>(nullptr)...));
};
}

Expand Down
4 changes: 4 additions & 0 deletions test/list_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,8 @@ static_assert(std::is_same<brigand::at_c<int_bool_bool_int_list, 2>, bool>::valu
"invalid at result");
static_assert(std::is_same<brigand::at_c<int_bool_bool_int_list, 3>, int>::value,
"invalid at result");
static_assert(std::is_same<brigand::at_c<brigand::list<int[1]>, 0>, int[1]>::value,
"invalid at result");

static_assert(
std::is_same<brigand::at<int_bool_bool_int_list, std::integral_constant<int, 0>>, int>::value,
Expand Down Expand Up @@ -198,6 +200,8 @@ static_assert(std::is_same<brigand::at_c<int_bool_bool_int_list, 2>, bool>::valu
"invalid at result");
static_assert(std::is_same<brigand::at_c<int_bool_bool_int_list, 3>, int>::value,
"invalid at result");
static_assert(std::is_same<brigand::at_c<custom_list<int[1]>, 0>, int[1]>::value,
"invalid at result");

static_assert(
std::is_same<brigand::at<int_bool_bool_int_list, std::integral_constant<int, 0>>, int>::value,
Expand Down

0 comments on commit 7d4107a

Please sign in to comment.