void_value.h
```cpp
#ifndef ASYNCIO_VOID_VALUE_H
#define ASYNCIO_VOID_VALUE_H
namespace ASYNCIO_NS {
struct VoidValue { };
namespace detail {
template<typename T>
struct GetTypeIfVoid: std::type_identity<T> {};
template<>
struct GetTypeIfVoid<void>: std::type_identity<VoidValue> {};
}
/*
GetTypeIfVoid_t的主要作用识别T是否为void
当void时GetTypeIfVoid_t为VoidValue类型,否则为T本身
*/
template<typename T>
using GetTypeIfVoid_t = typename detail::GetTypeIfVoid<T>::type;
}
#endif // ASYNCIO_VOID_VALUE_H
```

浙公网安备 33010602011771号