hana/example/ext/std/array/orderable.cpp
Louis Dionne 8b2bf22c2d [std.array] Fix UB in std.array.less for empty array
We were using `&arr[0]` on empty arrays, which is technically UB since `arr[0]`
is UB on empty arrays. This triggered an infinite loop on Clang-on-Windows.
2017-05-13 12:59:45 -07:00

24 lines
634 B
C++

// Copyright Louis Dionne 2013-2017
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
#include <boost/hana/ext/std/array.hpp>
#include <boost/hana/less.hpp>
#include <array>
namespace hana = boost::hana;
constexpr std::array<int, 4> evens = {{2, 4, 6, 8}};
constexpr std::array<int, 4> odds = {{1, 3, 5, 7}};
constexpr std::array<int, 5> up_to_5 = {{1, 2, 3, 4, 5}};
// arrays with same length
static_assert(hana::less(odds, evens), "");
// arrays with different lengths
static_assert(hana::less(up_to_5, odds), "");
int main() { }