27 std::ostream &
operator<<(std::ostream &os, std::optional<T>
const &opt) {
28 return opt ? os << opt.value() : os <<
"not set ";
39 bool HasDeviceWildCard =
false;
42 bool HasSubDeviceWildCard =
false;
45 bool HasSubSubDeviceWildCard =
false;
48 bool IsNegativeTarget =
false;
56 std::vector<ods_target> TargetList;
61 std::vector<ods_target> &
get() {
return TargetList; }
63 bool backendCompatible(
backend Backend);
66 std::ostream &
operator<<(std::ostream &Out,
const ods_target &Target);
80 friend std::ostream &
operator<<(std::ostream &Out,
85 std::vector<device_filter> FilterList;
92 std::vector<device_filter> &
get() {
return FilterList; }
93 bool backendCompatible(
backend Backend);
95 bool deviceNumberCompatible(
int DeviceNum);
96 friend std::ostream &
operator<<(std::ostream &Out,
103 if (Filter.
DeviceType == info::device_type::host) {
105 }
else if (Filter.
DeviceType == info::device_type::cpu) {
107 }
else if (Filter.
DeviceType == info::device_type::gpu) {
109 }
else if (Filter.
DeviceType == info::device_type::accelerator) {
110 Out <<
"accelerator";
111 }
else if (Filter.
DeviceType == info::device_type::all) {