Это снова что-то странное: если мы создаем экземпляры аллокаторов со своими функциями (их число определено), разве не нужно писать для их экземпляров аллокатор, чтобы при множестве типов уметь быстро убирать экземпляр под неиспользуемый тип и при этом избежать дыр?
Как сохранить тип value, если мы знаем, что она принимает все типы в Object, которые кастятся
(type) newvalue //newvalue имеет тип Object
есть порт, который принимает данные, причем тип данных должен быть задан еще при создании порта и не меняется, чтобы вызывать исключение при несоответствии.
struct SimpleVertex {
DirectX::XMFLOAT3 pos;
};
SimpleVertex xyz[]{
DirectX::XMFLOAT3(0.0f, 5.5f, 5.5f),
DirectX::XMFLOAT3(5.5f, -5.5f, 5.5f),
DirectX::XMFLOAT3(-5.5f, -5.5f, 5.5f)
};
template<typename T>
inline HRESULT createvertexbuffer(ID3D11Device* device, ID3D11Buffer** bufferpointer, T structure[]) {
ID3D11Buffer* buffer = nullptr;
D3D11_BUFFER_DESC bd;
ZeroMemory(&bd, sizeof(bd));
bd.Usage = D3D11_USAGE_DEFAULT;
bd.ByteWidth = sizeof(T) * 3;
bd.BindFlags = D3D11_BIND_VERTEX_BUFFER;
bd.CPUAccessFlags = 0;
D3D11_SUBRESOURCE_DATA InitData;
ZeroMemory(&InitData, sizeof(InitData));
InitData.pSysMem = structure;
HRESULT hr = device->CreateBuffer(&bd, &InitData, &buffer);
*bufferpointer = buffer;
return hr;
}