Call the callable with the unerased type.
147 {
149 {
150 case storage_types::extent_type:
151 return f(*reinterpret_cast<const item<byte_io_handle::extent_type> *>(static_cast<const item_base *>(this)));
152 case storage_types::unsigned_int:
153 return f(*reinterpret_cast<const item<unsigned int> *>(static_cast<const item_base *>(this)));
154 case storage_types::unsigned_long_long:
155 return f(*reinterpret_cast<const item<unsigned long long> *>(static_cast<const item_base *>(this)));
156 case storage_types::float_:
157 return f(*reinterpret_cast<const item<float> *>(static_cast<const item_base *>(this)));
158 case storage_types::string:
159 return f(*reinterpret_cast<const item<std::string> *>(static_cast<const item_base *>(this)));
160 case storage_types::unknown:
161 break;
162 }
163 LLFIO_EXCEPTION_THROW(std::invalid_argument("No type set in item"));
164 }
storage_types type
The type of the value.
Definition storage_profile.hpp:93