33 static handle_of_t<T> BackendHandle(
const T& instance);
34 static handle_of_t<T>* BackendHandleAddress(T& instance);
35 static T CreateInstance(
const c_type_of_t<T>& structure);
36 static T CreateInstance(handle_of_t<T> structure);
37 static T CreateInstance();
39 static std::vector<T> CreateInstances(std::vector<handle_of_t<T>> handles);
43handle_of_t<T> BackendAccessor<T>::BackendHandle(
const T& instance)
45 return instance.GetHandle();
49handle_of_t<T>* BackendAccessor<T>::BackendHandleAddress(T& instance)
51 return instance.GetHandleAddress();
57 return T{ structure };
61T BackendAccessor<T>::CreateInstance(handle_of_t<T> structure)
63 return T{ structure };
67T BackendAccessor<T>::CreateInstance()
79std::vector<T> BackendAccessor<T>::CreateInstances(std::vector<handle_of_t<T>> handles)
81 std::vector<T> instances;
82 instances.reserve(handles.size());
83 std::transform(handles.begin(), handles.end(), std::back_inserter(instances), [](
const auto& handle) {
84 return CreateInstance(handle);
typename c_type_of_< Type >::type c_type_of_t