public static ByReference <T> Add(ByReference <T> pointer, int offset) { return(AddRaw(pointer, UncheckedMul(offset, SizeOfT()))); }
private static extern bool PointerEquals(ByReference <T> value1, ByReference <T> value2);
internal static void StoreAtIndex(ByReference <T> pointer, int index, T value) { ByReference <T> temp = Add(pointer, index); Store(temp, value); }
private static extern ByReference <T> SubRaw(ByReference <T> pointer, int rawOffset);
private static extern void Store(ByReference <T> pointer, T value);
public static T LoadAtIndex(ByReference <T> pointer, int index) { ByReference <T> temp = Add(pointer, index); return(Load(temp)); }
public static extern T Load(ByReference <T> pointer);
public static extern ByReference <T1> Cast <T1>(ByReference <T> pointer);
public static extern UIntPtr ToPointer(ByReference <T> pointer);
public static extern ref T ToRef(ByReference <T> source);
internal static extern ByReference <T> AddRaw(ByReference <T> pointer, int rawOffset);