[ox/preloader] Fix for what appears to be a bug in Apple Clang

This commit is contained in:
Gary Talent 2023-09-24 09:50:18 -05:00
parent b797b937f8
commit 5cdf241321

View File

@ -23,14 +23,8 @@ namespace ox {
template<typename PlatSpec> template<typename PlatSpec>
class Preloader; class Preloader;
template<typename PlatSpec, typename T>
constexpr ox::Error preload(Preloader<PlatSpec> *pl, ox::CommonPtrWith<T> auto *obj) noexcept;
template<typename PlatSpec> template<typename PlatSpec>
class Preloader: public ModelHandlerBase<Preloader<PlatSpec>> { class Preloader: public ModelHandlerBase<Preloader<PlatSpec>> {
template<typename PS, typename T>
friend constexpr ox::Error preload(Preloader<PS> *pl, ox::CommonPtrWith<T> auto *obj) noexcept;
private: private:
using PtrType = typename PlatSpec::PtrType; using PtrType = typename PlatSpec::PtrType;
static constexpr auto PtrSize = sizeof(PtrType); static constexpr auto PtrSize = sizeof(PtrType);
@ -119,7 +113,6 @@ class Preloader: public ModelHandlerBase<Preloader<PlatSpec>> {
return ox::OpType::Write; return ox::OpType::Write;
} }
protected:
template<typename T> template<typename T>
constexpr ox::Error pad(const T*) noexcept; constexpr ox::Error pad(const T*) noexcept;
@ -359,8 +352,7 @@ constexpr bool Preloader<PlatSpec>::unionCheckAndIt() noexcept {
} }
template<typename PlatSpec, typename T> template<typename PlatSpec, typename T>
constexpr ox::Error preload( constexpr ox::Error preload(Preloader<PlatSpec> *pl, ox::CommonPtrWith<T> auto *obj) noexcept {
Preloader<PlatSpec> *pl, ox::CommonPtrWith<T> auto *obj) noexcept {
oxReturnError(model(pl->interface(), obj)); oxReturnError(model(pl->interface(), obj));
return pl->pad(obj); return pl->pad(obj);
} }