-
Notifications
You must be signed in to change notification settings - Fork 0
/
CLException.hpp
62 lines (55 loc) · 1.13 KB
/
CLException.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef TCL_EXCEPTION_HPP
#define TCL_EXCEPTION_HPP
#include <string>
#include <exception>
namespace tcl
{
/**
* TinyCLの基本的な例外クラス
*/
class CLException : public std::exception
{
public:
CLException(const std::string& cause)
: std::exception(cause.c_str()) {}
CLException(const std::string& cause, const cl_int& errorNo)
: std::exception((cause + ":" + std::to_string(errorNo)).c_str()) {}
};
/**
* 無効な引数が渡されたときの例外
*/
class CLInvalidArgumentException : public CLException
{
public:
/**
* 無効な引数が渡されたときの例外
*/
CLInvalidArgumentException(const std::string& cause)
: CLException(cause) {}
};
/**
* メモリの確保に失敗したときの例外
*/
class CLFailedAllacException : public CLException
{
public:
/**
* メモリの確保に失敗したときの例外
*/
CLFailedAllacException(const std::string& cause)
: CLException(cause) {}
};
/**
* 指定したデバイスが見つからない
*/
class CLDeviceNotFoundException : public CLException
{
public:
/**
* 指定したデバイスが見つからない
*/
CLDeviceNotFoundException(const std::string& cause)
: CLException(cause) {}
};
}
#endif