这个问题主要是关于设计方法的,我想知道如何用现代 C++ 语言解决这类问题。
我有一个定义如下的库函数(这是来自编译器的真实代码):
template <info::device param>
typename info::param_traits<info::device, param>::return_type
get_info() const;
为了调用此函数,我可以编写如下内容:
some_device.get_info<cl::sycl::info::device::device_type>()
其中cl::sycl::info::device::device_type
是实际参数。
有很长的受支持参数列表,我想要一组结果值(不同函数调用的结果)。
此时,我可以执行以下操作:
some_device.get_info<cl::sycl::info::device::param1>()
some_device.get_info<cl::sycl::info::device::param2>()
...
some_device.get_info<cl::sycl::info::device::paramN>()
但因为这很糟糕,我正在 C++ 11/14 中寻找更好的解决方案。