CUDA имеет три функции, которые принимают отдельные скалярные значения и создают структуры CUDA-Runtime-API-speci c с этими значениями:
__host__ cudaExtent make_cudaExtent ( size_t w, size_t h, size_t d );
__host__ cudaPitchedPtr make_cudaPitchedPtr ( void* d, size_t p, size_t xsz, size_t ysz );
__host__ cudaPos make_cudaPos ( size_t x, size_t y, size_t z );
Эти функции делают что-то кроме того, что мы могли бы делаем себя как:
cudaExtent { w, h, d };
cudaPitchedPtr { d, p, xsz, ysz };
cudaPos { x, y, z };
? То есть CUDA как-то "благословляет" созданные структуры? С одной стороны, не похоже, что такое «благословение» должно быть; но тогда - зачем API для этого? Я имею в виду, что не все структуры, связанные с API CUDA, имеют такие функции конструктора.