All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
3.1 - 2024-08-08
BlockUtil.h
andCoDispatch.h
are now supported on Linux
3.0 - 2024-01-17
BlockUtil.h
:makeBlock
functionality is completely reworked. New functionality:- Wrap any callables including mutable lambdas or any other callable that provides non-const
operator()
. - If the callable is movable it will be moved into the block, not copied. It will also be moved if the block is "copied to heap"
by ObjectiveC runtime or
Block_copy
in plain C++. - It is possible to use move-only callables.
- All of this is accomplished with NO dynamic memory allocation
- Wrap any callables including mutable lambdas or any other callable that provides non-const
NSStringCharAccess
now conforms completely tostd::ranges::random_access_range
BoxUtil.h
: boxing now detects comparability and enablescompare:
not just via presence of operator<=>
but also when only operators<
,==
,<=
etc. are present.BoxUtil.h
: generated ObjectiveC box classes now have names unique to each shared library/main executable, preventing collisions if multiple modules use boxing.
NSStringUtil.h
: addedmakeNSString
,makeCFString
andmakeStdString
conversion functions between C++ character ranges and ObjectiveC strings.
2.3 - 2024-01-09
BoxUtil.h
header for generic boxing and unboxing of any C++ object to/from an ObjectiveC oneXCTestUtil.h
header for XCTest macros to compare C++ objects while producing useful descriptions in case of failure.
2.2 - 2023-12-22
- Performance optimizations for CoDispatch
2.1 - 2023-12-16
- all variants of
resumeOn
andresumeOnMainQueue
now acceptwhen
argument to request that the resumption happens no earlier than the specified time. When used withco_await resumeOn(currentQueue, when)
this allows the caller to sleep asynchronously without blocking its queue.
2.0 - 2023-12-13
- CoDispatch.h: A collection of classes and functions that allows you to write asynchronous C++ coroutines and generators that execute on GCD dispatch queues. Detailed guide is available here
- Ability to subtract
NSStringCharAccess::iterator
s - Ability to get starting index of
NSStringCharAccess::iterator
inside its string - Extensive unit tests for all functionality
- Crash in
NSNumberEqual
when second argument isnullptr
NSStringCharAccess::empty()
returning opposite result- Compiler warnings in pedantic mode
1.1 - 2022-08-20
- Suppressing compiler warning on an unused argument
1.0 - 2021-06-16
- Initial version