diff --git a/octa/functional.h b/octa/functional.h index dcaaa8d..2bc0096 100644 --- a/octa/functional.h +++ b/octa/functional.h @@ -102,7 +102,7 @@ template struct EndianSwap { using Argument = T; using Result = T; - T operator()(T v) { + T operator()(T v) const { union { T iv; uint16_t sv; } u; u.iv = v; u.sv = octa::endian_swap16(u.sv); @@ -114,7 +114,7 @@ template struct EndianSwap { using Argument = T; using Result = T; - T operator()(T v) { + T operator()(T v) const { union { T iv; uint32_t sv; } u; u.iv = v; u.sv = octa::endian_swap32(u.sv); @@ -126,7 +126,7 @@ template struct EndianSwap { using Argument = T; using Result = T; - T operator()(T v) { + T operator()(T v) const { union { T iv; uint64_t sv; } u; u.iv = v; u.sv = octa::endian_swap64(u.sv); @@ -146,19 +146,19 @@ namespace detail { struct EndianSame { using Argument = T; using Result = T; - T operator()(T v) { return v; } + T operator()(T v) const { return v; } }; template struct EndianSame { using Argument = T; using Result = T; - T operator()(T v) { return v; } + T operator()(T v) const { return v; } }; template struct EndianSame { using Argument = T; using Result = T; - T operator()(T v) { return v; } + T operator()(T v) const { return v; } }; }