Date: Wed, 24 Dec 2025 19:25:38 +0000
I have std::invoke and std::apply working now for chimeric pointer but I'm
away on holidays at the moment and don't have access to a PC, so I'll
update my compiler when I'm home in January.
I played with a few possible implementations of chimeric_ptr, and most
likely I will go with the following:
struct chimeric_ptr {
void *address_of_original_object;
void *(*addr_of_function)(type_info&);
};
I was worried that this would mean that chimeric pointer cannot be atomic,
but then I discovered the x86_64 CPU instruction CMPXCHG16B, which can do
lockfree atomic operations on 128-Bit integers, so then I'll provide a
specialisation of:
std::atomic< std::chimeric_ptr >
In early January I'll have this done.
away on holidays at the moment and don't have access to a PC, so I'll
update my compiler when I'm home in January.
I played with a few possible implementations of chimeric_ptr, and most
likely I will go with the following:
struct chimeric_ptr {
void *address_of_original_object;
void *(*addr_of_function)(type_info&);
};
I was worried that this would mean that chimeric pointer cannot be atomic,
but then I discovered the x86_64 CPU instruction CMPXCHG16B, which can do
lockfree atomic operations on 128-Bit integers, so then I'll provide a
specialisation of:
std::atomic< std::chimeric_ptr >
In early January I'll have this done.
Received on 2025-12-24 19:25:41
