From 142aec37e12a59531dede2b5f85fd114c786d0c3 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Wed, 11 Sep 2024 14:43:11 +0200 Subject: Fixing and testing constexpr'ness --- modules/codec/c++/data.hpp | 24 +++++++++++------------ modules/remote-hip/c++/transfer.hpp | 2 +- modules/remote-hip/examples/hip_transfer_data.cpp | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/codec/c++/data.hpp b/modules/codec/c++/data.hpp index f55d870..b14d785 100644 --- a/modules/codec/c++/data.hpp +++ b/modules/codec/c++/data.hpp @@ -135,50 +135,50 @@ public: data(typename native_data_type::type value__): value_{std::move(value__)}{} - void set(typename native_data_type::type val){ + constexpr void set(typename native_data_type::type val){ value_ = val; } - typename native_data_type::type get() const {return value_;} + constexpr typename native_data_type::type get() const {return value_;} - data operator*(const data& rhs)const{ + constexpr data operator*(const data& rhs)const{ return {get() * rhs.get()}; } - data operator/(const data& rhs)const{ + constexpr data operator/(const data& rhs)const{ return {get() / rhs.get()}; } - data operator+(const data& rhs)const{ + constexpr data operator+(const data& rhs)const{ return {get() + rhs.get()}; } - data& operator+=(const data& rhs){ + constexpr data& operator+=(const data& rhs){ value_ += rhs.get(); return *this; } - data& operator-=(const data& rhs){ + constexpr data& operator-=(const data& rhs){ value_ -= rhs.get(); return *this; } - data operator-(const data& rhs)const{ + constexpr data operator-(const data& rhs)const{ return {get() - rhs.get()}; } - data& operator++() { + constexpr data& operator++() { set(get() + static_cast::type>(1)); return *this; } template - bool operator==(const data& rhs)const{ + constexpr bool operator==(const data& rhs)const{ return get() == rhs.get(); } template - bool operator<(const data& rhs) const { + constexpr bool operator<(const data& rhs) const { return get() < rhs.get(); } @@ -186,7 +186,7 @@ public: * Casts */ template - data cast_to() const { + constexpr data cast_to() const { auto raw_to = static_cast::type>(value_); return {raw_to}; } diff --git a/modules/remote-hip/c++/transfer.hpp b/modules/remote-hip/c++/transfer.hpp index d0ece27..a4c4c30 100644 --- a/modules/remote-hip/c++/transfer.hpp +++ b/modules/remote-hip/c++/transfer.hpp @@ -65,7 +65,7 @@ public: return make_error(); } - return {(find_res.second)}; + return {(find_res->second)}; } }; diff --git a/modules/remote-hip/examples/hip_transfer_data.cpp b/modules/remote-hip/examples/hip_transfer_data.cpp index a7c1b8c..9fbf674 100644 --- a/modules/remote-hip/examples/hip_transfer_data.cpp +++ b/modules/remote-hip/examples/hip_transfer_data.cpp @@ -3,7 +3,7 @@ #include -__global__ void print_value(saw::data* val){ +__global__ void print_value(saw::data* val){ int v = val->get(); printf("Hello world: %d", v); } @@ -42,9 +42,9 @@ saw::error_or real_main(){ } auto dfind = eo_dfind.get_value(); - auto& val = dfind(); + auto& v = dfind(); - print_value<<>>(&val); + print_value<<>>(*(v.get_device_data())); return make_void(); } -- cgit v1.2.3