This reverts commit ff423df2c0.
The `master` branch is closed for the 1.82.0 beta right now, and I
missed the memo. I will re-apply once it opens up for bugfixes.
e315075 re-generated the `struct_macros.hpp` file, which had the
unfortunate side effect of dropping MSVC workarounds that had
been added in 95f8f74 because those were not added to the `.erb` file.
This adds the workarounds to the `.erb` file and re-generates the `.hpp`
file to restore the workarounds.
Thanks to @Grumpfy for pointing this out in [1].
[1]: e315075784 (commitcomment-104250393)
Given the lack of bandwidth and the infrequency at which I get to look
at issues in this repo, simplifying the process of fixing stuff and
releasing is actually important. From now on, we'll just merge stuff
to master and it'll always be ready to be picked up by the next Boost
release.
to avoid warnings in clang 14:
```
In file included from test/headers/boost/hana/any.cpp:1:
In file included from include/boost/hana/any.hpp:15:
In file included from include/boost/hana/any_of.hpp:16:
In file included from include/boost/hana/at.hpp:16:
In file included from include/boost/hana/concept/iterable.hpp:20:
In file included from include/boost/hana/drop_front.hpp:20:
In file included from include/boost/hana/integral_constant.hpp:13:
In file included from include/boost/hana/bool.hpp:17:
In file included from include/boost/hana/core/to.hpp:21:
include/boost/hana/core/make.hpp:35:28: error: left operand of comma operator has no effect [-Werror,-Wunused-value]
static_assert((sizeof...(X), false),
^~~~~~~~~~~~
```
identified by clang14 in C++20 mode:
```
test/issues/github_460.cpp:25:33: error: ISO C++20 considers use of overloaded operator '==' (with operand types 'SomeStruct' and 'SomeStruct') to be ambiguous despite there being a unique best viable function [-Werror,-Wambiguous-reversed-operator]
static_assert(SomeStruct{5} == SomeStruct{5}, "");
~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
test/issues/github_460.cpp:15:20: note: ambiguity is between a regular call to this operator and a call with the argument order reversed
constexpr bool operator==(SomeStruct const& other) {
^
1 error generated.
```
- Prevents comparable operators from considering the tag types like tuple_tag
- Allows Struct classes to implement their own comparable operators so it can
be used with types like std::optional
This resolves a security advisory about a XSS in Highcharts. This wasn't
a big problem because Highcharts is only used in Hana's documentation,
but it's still nice to fix it.
Installing a custom Doxygen has been a problem on Linux for a while,
it keeps breaking. Instead, just use Homebrew on OS X to install Doxygen.
Also, Doxygen keeps spitting new warnings, which breaks the documentation
build. To avoid that, allow warnings when generating the documentation on
Travis.
C++20 removed std::result_of, and it's pretty important for Hana to
support C++20. We could have conditionally supported std::result_of,
however I feel like it's reasonable to require users to move away from
the trait entirely. Staying on deprecated/removing features is not a
healthy thing to do anyway.
Fixes#462