diff options
author | Tor Egge <Tor.Egge@online.no> | 2021-04-30 12:52:16 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2021-04-30 12:52:16 +0200 |
commit | 3e6a6c2a6be5183c63dc5a03109714a5b8ba2b1f (patch) | |
tree | 1f2a31993b683df6ca8b2196ae376ffccaf38ef5 /fnet | |
parent | d639eeb5b983b5493f269190853735a01acd21a2 (diff) |
Silence warning when casting to FRT_METOD_PT.
Diffstat (limited to 'fnet')
-rw-r--r-- | fnet/src/vespa/fnet/frt/invokable.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/fnet/src/vespa/fnet/frt/invokable.h b/fnet/src/vespa/fnet/frt/invokable.h index 48e6aefe776..df4abd41f90 100644 --- a/fnet/src/vespa/fnet/frt/invokable.h +++ b/fnet/src/vespa/fnet/frt/invokable.h @@ -12,5 +12,22 @@ public: typedef void (FRT_Invokable::*FRT_METHOD_PT)(FRT_RPCRequest *); -#define FRT_METHOD(pt) ((FRT_METHOD_PT) &pt) +namespace fnet::internal { + +template <class T> +using frt_method_precast_pt = void (T::*)(FRT_RPCRequest *); + +template <class T> +FRT_METHOD_PT +frt_method_pt_cast(frt_method_precast_pt<T> pt) +{ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshift-negative-value" + return (FRT_METHOD_PT) pt; +#pragma GCC diagnostic pop +} + +} + +#define FRT_METHOD(pt) (fnet::internal::frt_method_pt_cast(&pt)) |