11#include " scale_offset.hpp"
22
3+ #include < bit>
34#include < cstdlib>
4- #include < gsl/gsl-lite.hpp >
5+ #include < span >
56#include < stdexcept>
67
78#include " map_types/map_arguments.hpp"
@@ -15,7 +16,7 @@ template <typename T> int offset_value(T& var, float offset)
1516 return 0 ;
1617}
1718
18- template <typename T> int offset_span (gsl ::span<T> span, float offset)
19+ template <typename T> int offset_span (std ::span<T> span, float offset)
1920{
2021 if (span.empty ()) {
2122 return 1 ;
@@ -32,7 +33,7 @@ template <typename T> int scale_value(T& var, float scale)
3233 return 0 ;
3334}
3435
35- template <typename T> int scale_span (gsl ::span<T> span, float scale)
36+ template <typename T> int scale_span (std ::span<T> span, float scale)
3637{
3738 if (span.empty ()) {
3839 return 1 ;
@@ -52,28 +53,28 @@ int libtokamap::map_transform::transform_offset(TypedDataArray& array, float off
5253 const size_t size = array.size ();
5354 switch (type_index_map (array.type_index ())) {
5455 case DataType::Short: {
55- auto * data = reinterpret_cast <short *>(array.buffer ());
56- err = offset_span (gsl ::span{data, size}, offset);
56+ auto * data = std::bit_cast <short *>(array.buffer ());
57+ err = offset_span (std ::span{data, size}, offset);
5758 break ;
5859 }
5960 case DataType::Int: {
60- auto * data = reinterpret_cast <int *>(array.buffer ());
61- err = offset_span (gsl ::span{data, size}, offset);
61+ auto * data = std::bit_cast <int *>(array.buffer ());
62+ err = offset_span (std ::span{data, size}, offset);
6263 break ;
6364 }
6465 case DataType::Long: {
65- auto * data = reinterpret_cast <long *>(array.buffer ());
66- err = offset_span (gsl ::span{data, size}, offset);
66+ auto * data = std::bit_cast <long *>(array.buffer ());
67+ err = offset_span (std ::span{data, size}, offset);
6768 break ;
6869 }
6970 case DataType::Float: {
70- auto * data = reinterpret_cast <float *>(array.buffer ());
71- err = offset_span (gsl ::span{data, size}, offset);
71+ auto * data = std::bit_cast <float *>(array.buffer ());
72+ err = offset_span (std ::span{data, size}, offset);
7273 break ;
7374 }
7475 case DataType::Double: {
75- auto * data = reinterpret_cast <double *>(array.buffer ());
76- err = offset_span (gsl ::span{data, size}, offset);
76+ auto * data = std::bit_cast <double *>(array.buffer ());
77+ err = offset_span (std ::span{data, size}, offset);
7778 break ;
7879 }
7980 default :
@@ -82,27 +83,27 @@ int libtokamap::map_transform::transform_offset(TypedDataArray& array, float off
8283 } else {
8384 switch (type_index_map (array.type_index ())) {
8485 case DataType::Short: {
85- auto * data = reinterpret_cast <short *>(array.buffer ());
86+ auto * data = std::bit_cast <short *>(array.buffer ());
8687 err = offset_value (data, offset);
8788 break ;
8889 }
8990 case DataType::Int: {
90- auto * data = reinterpret_cast <int *>(array.buffer ());
91+ auto * data = std::bit_cast <int *>(array.buffer ());
9192 err = offset_value (data, offset);
9293 break ;
9394 }
9495 case DataType::Long: {
95- auto * data = reinterpret_cast <long *>(array.buffer ());
96+ auto * data = std::bit_cast <long *>(array.buffer ());
9697 err = offset_value (data, offset);
9798 break ;
9899 }
99100 case DataType::Float: {
100- auto * data = reinterpret_cast <float *>(array.buffer ());
101+ auto * data = std::bit_cast <float *>(array.buffer ());
101102 err = offset_value (data, offset);
102103 break ;
103104 }
104105 case DataType::Double: {
105- auto * data = reinterpret_cast <double *>(array.buffer ());
106+ auto * data = std::bit_cast <double *>(array.buffer ());
106107 err = offset_value (data, offset);
107108 break ;
108109 }
@@ -121,28 +122,28 @@ int libtokamap::map_transform::transform_scale(TypedDataArray& array, float scal
121122 const size_t size = array.size ();
122123 switch (type_index_map (array.type_index ())) {
123124 case DataType::Short: {
124- auto * data = reinterpret_cast <short *>(array.buffer ());
125- err = scale_span (gsl ::span{data, size}, scale);
125+ auto * data = std::bit_cast <short *>(array.buffer ());
126+ err = scale_span (std ::span{data, size}, scale);
126127 break ;
127128 }
128129 case DataType::Int: {
129- auto * data = reinterpret_cast <int *>(array.buffer ());
130- err = scale_span (gsl ::span{data, size}, scale);
130+ auto * data = std::bit_cast <int *>(array.buffer ());
131+ err = scale_span (std ::span{data, size}, scale);
131132 break ;
132133 }
133134 case DataType::Long: {
134- auto * data = reinterpret_cast <long *>(array.buffer ());
135- err = scale_span (gsl ::span{data, size}, scale);
135+ auto * data = std::bit_cast <long *>(array.buffer ());
136+ err = scale_span (std ::span{data, size}, scale);
136137 break ;
137138 }
138139 case DataType::Float: {
139- auto * data = reinterpret_cast <float *>(array.buffer ());
140- err = scale_span (gsl ::span{data, size}, scale);
140+ auto * data = std::bit_cast <float *>(array.buffer ());
141+ err = scale_span (std ::span{data, size}, scale);
141142 break ;
142143 }
143144 case DataType::Double: {
144- auto * data = reinterpret_cast <double *>(array.buffer ());
145- err = scale_span (gsl ::span{data, size}, scale);
145+ auto * data = std::bit_cast <double *>(array.buffer ());
146+ err = scale_span (std ::span{data, size}, scale);
146147 break ;
147148 }
148149 default :
@@ -151,27 +152,27 @@ int libtokamap::map_transform::transform_scale(TypedDataArray& array, float scal
151152 } else {
152153 switch (type_index_map (array.type_index ())) {
153154 case DataType::Short: {
154- auto * data = reinterpret_cast <short *>(array.buffer ());
155+ auto * data = std::bit_cast <short *>(array.buffer ());
155156 err = scale_value (data, scale);
156157 break ;
157158 }
158159 case DataType::Int: {
159- auto * data = reinterpret_cast <int *>(array.buffer ());
160+ auto * data = std::bit_cast <int *>(array.buffer ());
160161 err = scale_value (data, scale);
161162 break ;
162163 }
163164 case DataType::Long: {
164- auto * data = reinterpret_cast <long *>(array.buffer ());
165+ auto * data = std::bit_cast <long *>(array.buffer ());
165166 err = scale_value (data, scale);
166167 break ;
167168 }
168169 case DataType::Float: {
169- auto * data = reinterpret_cast <float *>(array.buffer ());
170+ auto * data = std::bit_cast <float *>(array.buffer ());
170171 err = scale_value (data, scale);
171172 break ;
172173 }
173174 case DataType::Double: {
174- auto * data = reinterpret_cast <double *>(array.buffer ());
175+ auto * data = std::bit_cast <double *>(array.buffer ());
175176 err = scale_value (data, scale);
176177 break ;
177178 }
0 commit comments