/** * @file accessmode.h * @author L.-C. C. * @brief * @version 0.1 * @date 2019-01-20 * * @copyright Copyright (c) 2019 * */ #pragma once #include #if __cplusplus >= 201402L #include #endif // __cplusplus >= 201402L namespace safe { enum class AccessMode { ReadOnly, ReadWrite }; template struct AccessTraits { static constexpr bool IsReadOnly = false; }; template struct AccessTraits> { static constexpr bool IsReadOnly = false; }; template struct AccessTraits> { static constexpr bool IsReadOnly = false; }; #if __cplusplus >= 201402L template struct AccessTraits> { static constexpr bool IsReadOnly = true; }; #endif // __cplusplus >= 201402L } // namespace safe