| 212 | |
| 213 | template <typename T, typename Visitor> |
| 214 | static void visit_fn_const(const void *storage, Visitor &v) FL_NOEXCEPT { |
| 215 | // Use bit_cast_ptr for safe type-punning on properly aligned storage |
| 216 | // The storage is guaranteed to be properly aligned by alignas(max_align<Types...>::value) |
| 217 | const T* typed_ptr = fl::bit_cast_ptr<const T>(storage); |
| 218 | v.accept(*typed_ptr); |
| 219 | } |
| 220 | |
| 221 | // –– destroy via table |
| 222 | void destroy_current() FL_NOEXCEPT { |