3.0
Changed
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 orBlock_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.
Added
NSStringUtil.h
: addedmakeNSString
,makeCFString
andmakeStdString
conversion functions between C++ character ranges and ObjectiveC strings.
See README for more details