Ed Catmur

Results 22 issues of Ed Catmur

In C++20, static_cast can perform aggregate construction (__cpp_aggregate_paren_init). This breaks the example https://github.com/boostorg/hana/blob/master/example/core/convert/is_convertible.cpp#L13 by allowing construction of Employee from its single direct base Person. Change the maybe_static_cast control expression to...

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...

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...

[Consider ](https://godbolt.org/z/vzZVqA) a recursive lambda with deduced return type and multiple return statements: auto twice= fix([](auto f, int i) { if (i

replace with direct typedefs

## Description Expose Python exception cause (`raise ... from ...`) to C++ via `std::nested_exception`. Inverse of #3608. Useful after #3605 etc. Does not set std::nested_exception base if a C++ exception...

## Description Alternative to #3886 Inspired by https://github.com/pybind/pybind11/discussions/3836 Add frozenset as a pybind11 type. Add freeze() function converting set to frozenset and list to tuple; use it in std::set and...

## Description https://github.com/pybind/pybind11/discussions/3836 Add frozenset as a pybind11 type. Allow type_caster to be (explicitly) selected and specialized, defaulting to (inherit from) type_caster. Use type_caster for std::set, std::map etc. key converter....

Prefer standard attributes e.g. `[[noreturn]]`, `[[deprecated]]`, etc. Prefer standard (C++11) attribute syntax for nonstandard attributes e.g. `[[gnu::noinline]]`, since mixing standard attributes `[[nodiscard]]` with GNU attribute syntax `__attribute__((noinline))` doesn't always work....

The operator() is not instantiated till later, which makes it difficult to locate an erroneous usage of

fix-proposed
branch