Slide 36
Slide 36 text
template
class TargetValueWitnessTypes {
public:
using StoredPointer = typename Runtime::StoredPointer;
typedef TargetPointer (TargetPointer, TargetPointer, ConstTargetPointer)> initializeBufferWithCopyOfBuffer;
typedef TargetPointer, ConstTargetPointer)> destroy;
typedef TargetPointer (TargetPointer, TargetPointer, ConstTargetPointer)> initializeWithCopy;
typedef TargetPointer (TargetPointer, TargetPointer, ConstTargetPointer)> assignWithCopy;
typedef TargetPointer (TargetPointer, TargetPointer, ConstTargetPointer)> initializeWithTake;
typedef TargetPointer (TargetPointer, TargetPointer, ConstTargetPointer)> assignWithTake;
typedef TargetPointer, unsigned, ConstTargetPointer)> getEnumTagSinglePayload;
typedef TargetPointer, unsigned, unsigned, ConstTargetPointer)> storeEnumTagSinglePayload;
typedef TargetPointer, int, ConstTargetPointer)> storeExtraInhabitant;
typedef TargetPointer, ConstTargetPointer)> getExtraInhabitantIndex;
typedef TargetPointer, ConstTargetPointer)> getEnumTag;
typedef TargetPointer, ConstTargetPointer)> destructiveProjectEnumData;
typedef TargetPointer, unsigned, ConstTargetPointer)> destructiveInjectEnumTag;
typedef size_t size;
typedef ValueWitnessFlags flags;
typedef size_t stride;
typedef ExtraInhabitantFlags extraInhabitantFlags;
};
36