mirror of
https://github.com/boostorg/hana.git
synced 2026-02-22 03:22:21 +00:00
StdTuple: Add note about redundant Applicative instance.
This commit is contained in:
@@ -73,7 +73,10 @@ namespace boost { namespace hana {
|
||||
{ return helper(f, tuple, std::index_sequence_for<Xs...>{}); }
|
||||
};
|
||||
|
||||
//! @todo Check `Applicative` laws.
|
||||
//! @todo
|
||||
//! Get rid of this redundant instance once
|
||||
//! http://llvm.org/bugs/show_bug.cgi?id=19616
|
||||
//! is fixed.
|
||||
template <>
|
||||
struct Applicative::instance<StdTuple> : Applicative::mcd {
|
||||
template <typename X>
|
||||
|
||||
34
test/ext/std/tuple/bugs/libcxx_19616.cpp
Normal file
34
test/ext/std/tuple/bugs/libcxx_19616.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
@copyright Louis Dionne 2014
|
||||
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/tuple.hpp>
|
||||
|
||||
#include <boost/hana/detail/static_assert.hpp>
|
||||
|
||||
#include <tuple>
|
||||
using namespace boost::hana;
|
||||
|
||||
|
||||
int main() {
|
||||
// Make sure we workaround the bug at:
|
||||
// http://llvm.org/bugs/show_bug.cgi?id=19616
|
||||
BOOST_HANA_STATIC_ASSERT(
|
||||
lift<StdTuple>(std::make_tuple(1)) ==
|
||||
std::make_tuple(std::make_tuple(1))
|
||||
);
|
||||
|
||||
// The following shows the actual bug:
|
||||
#if 0
|
||||
static_assert(
|
||||
std::tuple_cat(
|
||||
std::make_tuple(std::make_tuple(1)),
|
||||
std::make_tuple()
|
||||
)
|
||||
==
|
||||
std::make_tuple(std::make_tuple(1))
|
||||
, "");
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user