summaryrefslogtreecommitdiffstats
path: root/src/common/bit_cast.h
blob: c6110c5426a762685fdb94f7e756461bb46b8684 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <version>

#ifdef __cpp_lib_bit_cast
#include <bit>
#endif

namespace Common {

template <typename To, typename From>
constexpr inline To BitCast(const From& from) {
#ifdef __cpp_lib_bit_cast
    return std::bit_cast<To>(from);
#else
    return __builtin_bit_cast(To, from);
#endif
}

} // namespace Common