| 60 | |
| 61 | template<typename T1> |
| 62 | CefRefPtr<CefV8Value> MakeV8Value(T1&& val) |
| 63 | { |
| 64 | using T = std::remove_reference_t<std::remove_const_t<T1>>; |
| 65 | if constexpr (std::is_same_v<bool, T>) |
| 66 | { |
| 67 | return CefV8Value::CreateBool(val); |
| 68 | } |
| 69 | else if constexpr (std::is_integral_v<T>) |
| 70 | { |
| 71 | return CefV8Value::CreateInt(int(val)); |
| 72 | } |
| 73 | else if constexpr (std::is_floating_point_v<T>) |
| 74 | { |
| 75 | return CefV8Value::CreateDouble(double(val)); |
| 76 | } |
| 77 | else if constexpr (std::is_enum_v<T>) |
| 78 | { |
| 79 | return CefV8Value::CreateInt(int(val)); |
| 80 | } |
| 81 | else if constexpr (std::is_same_v<std::string, T> || std::is_same_v<std::wstring, T>) |
| 82 | { |
| 83 | return CefV8Value::CreateString(val); |
| 84 | } |
| 85 | else |
| 86 | { |
| 87 | static_assert(!std::is_same_v<T, T>, "Unsupported type for MakeV8Value"); |
| 88 | } |
| 89 | } |
| 90 | |
| 91 | template<typename T1> |
| 92 | CefRefPtr<CefValue> MakeCefValue(T1&& val) |
no outgoing calls
no test coverage detected