19 inline namespace _V1 {
30 if (ResultSize == 0) {
33 std::unique_ptr<char[]> Result(
new char[ResultSize]);
36 Result.get(),
nullptr);
40 template <
typename Param>
41 typename std::enable_if<
42 std::is_same<typename Param::return_type, std::string>::value,
46 "Invalid platform information descriptor");
51 template <
typename Param>
52 typename std::enable_if<std::is_same<Param, info::platform::extensions>::value,
53 std::vector<std::string>>::type
56 "Invalid platform information descriptor");
63 template <
typename Param>
67 inline std::string get_platform_info_host<info::platform::profile>() {
68 return "FULL PROFILE";
72 inline std::string get_platform_info_host<info::platform::version>() {
76 template <>
inline std::string get_platform_info_host<info::platform::name>() {
77 return "SYCL host platform";
81 inline std::string get_platform_info_host<info::platform::vendor>() {
86 inline std::vector<std::string>
87 get_platform_info_host<info::platform::extensions>() {
Param::return_type get_platform_info_host()=delete
std::enable_if< std::is_same< typename Param::return_type, std::string >::value, std::string >::type get_platform_info(sycl::detail::pi::PiPlatform Plt, const PluginPtr &Plugin)
std::string get_platform_info_string_impl(sycl::detail::pi::PiPlatform Plt, const PluginPtr &Plugin, pi_platform_info PiCode)
std::vector< std::string > split_string(std::string_view str, char delimeter)
std::shared_ptr< plugin > PluginPtr
pi_result piPlatformGetInfo(pi_platform platform, pi_platform_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
C++ wrapper of extern "C" PI interfaces.