19 #ifdef __INTEL_PREVIEW_BREAKING_CHANGES
26 #include <system_error>
27 #include <type_traits>
30 inline namespace _V1 {
35 enum class errc : unsigned int {
64 std::string
message(
int)
const override {
return "SYCL Error"; }
71 class __SYCL_EXPORT
exception :
public virtual std::exception {
74 "no arguments is deprecated.")
85 exception(
int EV,
const std::error_category &ECat,
const std::string &WhatArg)
87 exception(
int,
const std::error_category &,
const char *);
88 exception(
int,
const std::error_category &);
98 const
std::error_category &category() const
noexcept;
100 const
char *what() const
noexcept final;
107 cl_int get_cl_code() const;
112 #ifdef __INTEL_PREVIEW_BREAKING_CHANGES
113 std::shared_ptr<detail::string> MMsg;
115 std::shared_ptr<std::string> MMsg;
118 std::shared_ptr<context> MContext;
124 std::shared_ptr<context> Context =
nullptr)
128 std::shared_ptr<context> Context =
nullptr)
134 #ifdef __INTEL_PREVIEW_BREAKING_CHANGES
135 : MMsg(std::make_shared<detail::string>(Msg)), MContext(
nullptr){}
137 : MMsg(std::make_shared<std::string>(Msg)), MContext(
nullptr) {
145 const std::string &what_arg)
146 :
exception(Ec, SharedPtrCtx, what_arg.c_str()) {
149 const char *WhatArg);
158 runtime_error(
const char *Msg,
pi_int32 Err)
159 : runtime_error(
std::string(Msg), Err) {}
161 runtime_error(
const std::string &Msg,
pi_int32 Err)
166 : exception(Ec, Msg, PIErr) {}
174 :
public runtime_error {
178 kernel_error(
const char *Msg,
pi_int32 Err)
179 : kernel_error(
std::string(Msg), Err) {}
181 kernel_error(
const std::string &Msg,
pi_int32 Err)
187 :
public runtime_error {
191 accessor_error(
const char *Msg,
pi_int32 Err)
192 : accessor_error(
std::string(Msg), Err) {}
194 accessor_error(
const std::string &Msg,
pi_int32 Err)
200 :
public runtime_error {
204 nd_range_error(
const char *Msg,
pi_int32 Err)
205 : nd_range_error(
std::string(Msg), Err) {}
207 nd_range_error(
const std::string &Msg,
pi_int32 Err)
213 :
public runtime_error {
217 event_error(
const char *Msg,
pi_int32 Err)
218 : event_error(
std::string(Msg), Err) {}
220 event_error(
const std::string &Msg,
pi_int32 Err)
226 invalid_parameter_error :
public runtime_error {
228 invalid_parameter_error()
231 invalid_parameter_error(
const char *Msg,
pi_int32 Err)
232 : invalid_parameter_error(
std::string(Msg), Err) {}
234 invalid_parameter_error(
const std::string &Msg,
pi_int32 Err)
244 device_error(
const char *Msg,
pi_int32 Err)
245 : device_error(
std::string(Msg), Err) {}
247 device_error(
const std::string &Msg,
pi_int32 Err)
254 : exception(Ec, Msg, PIErr) {}
259 compile_program_error :
public device_error {
263 compile_program_error(
const char *Msg,
pi_int32 Err)
264 : compile_program_error(
std::string(Msg), Err) {}
266 compile_program_error(
const std::string &Msg,
pi_int32 Err)
272 link_program_error :
public device_error {
276 link_program_error(
const char *Msg,
pi_int32 Err)
277 : link_program_error(
std::string(Msg), Err) {}
279 link_program_error(
const std::string &Msg,
pi_int32 Err)
285 invalid_object_error :
public device_error {
289 invalid_object_error(
const char *Msg,
pi_int32 Err)
290 : invalid_object_error(
std::string(Msg), Err) {}
292 invalid_object_error(
const std::string &Msg,
pi_int32 Err)
297 "
use sycl::exception with sycl::errc::memory_allocation
instead.")
298 memory_allocation_error :
public device_error {
300 memory_allocation_error()
303 memory_allocation_error(
const char *Msg,
pi_int32 Err)
304 : memory_allocation_error(
std::string(Msg), Err) {}
306 memory_allocation_error(
const std::string &Msg,
pi_int32 Err)
312 :
public device_error {
316 platform_error(
const char *Msg,
pi_int32 Err)
317 : platform_error(
std::string(Msg), Err) {}
319 platform_error(
const std::string &Msg,
pi_int32 Err)
324 "
use sycl::exception with sycl::errc::profiling
instead.") profiling_error
325 :
public device_error {
329 profiling_error(
const char *Msg,
pi_int32 Err)
330 : profiling_error(
std::string(Msg), Err) {}
332 profiling_error(
const std::string &Msg,
pi_int32 Err)
337 "
use sycl::exception with sycl::errc::feature_not_supported
instead.")
354 template <>
struct is_error_code_enum<
sycl::
errc> : true_type {};
The context class represents a SYCL context on which kernel functions may be executed.
std::string message(int) const override
const char * name() const noexcept override
exception(std::error_code Ec, std::shared_ptr< context > SharedPtrCtx, const std::string &what_arg)
exception(std::error_code Ec, const std::string &Msg, const pi_int32 PIErr, std::shared_ptr< context > Context=nullptr)
exception(const std::string &Msg)
exception(std::error_code Ec, const char *Msg, const pi_int32 PIErr, std::shared_ptr< context > Context=nullptr)
__SYCL2020_DEPRECATED("The version of an exception constructor which takes " "no arguments is deprecated.") exception()=default
exception(int EV, const std::error_category &ECat, const std::string &WhatArg)
Provides an abstraction of a SYCL kernel.
Defines the iteration domain of both the work-groups and the overall dispatch.
class __SYCL_EBO __SYCL_SPECIAL_CLASS __SYCL_TYPE(accessor) accessor accessor(buffer< DataT, Dimensions, AllocatorT >) -> accessor< DataT, Dimensions, access::mode::read_write, target::device, access::placeholder::true_t >
Buffer accessor.
std::string codeToString(pi_int32 code)
typename backend_traits< B >::errc errc_for
kernel_bundle< bundle_state::executable > build(const kernel_bundle< bundle_state::input > &InputBundle, const std::vector< device > &Devs, const property_list &PropList={})
signed char __SYCL2020_DEPRECATED
const std::error_category & sycl_category() noexcept
std::error_code make_error_code(sycl::errc E) noexcept
Constructs an error code using e and sycl_category()
_Abi const simd< _Tp, _Abi > & noexcept