Skip to content

Commit edc5719

Browse files
committed
Use C++17 variable templates for traits
1 parent 5ee171f commit edc5719

File tree

5 files changed

+18
-13
lines changed

5 files changed

+18
-13
lines changed

include/libsiedler2/ArchivItem_Bitmap.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (C) 2005 - 2021 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

@@ -55,7 +55,7 @@ inline int baseArchivItem_Bitmap::print(T_PixelBuffer& pixelBuffer, const Archiv
5555
uint16_t from_h) const
5656
{
5757
return print(pixelBuffer.getPixelPtr(), pixelBuffer.getWidth(), pixelBuffer.getHeight(),
58-
traits::GetFormat<T_PixelBuffer>::value, dstPalette, to_x, to_y, from_x, from_y, from_w, from_h);
58+
traits::GetFormat_v<T_PixelBuffer>, dstPalette, to_x, to_y, from_x, from_y, from_w, from_h);
5959
}
6060

6161
inline int baseArchivItem_Bitmap::create(const uint8_t* buffer, uint16_t buffer_width, uint16_t buffer_height,
@@ -75,7 +75,7 @@ inline int baseArchivItem_Bitmap::create(uint16_t width, uint16_t height, const
7575
const ArchivItem_Palette* palette)
7676
{
7777
return create(width, height, pixelBuffer.getPixelPtr(), pixelBuffer.getWidth(), pixelBuffer.getHeight(),
78-
traits::GetFormat<T_PixelBuffer>::value, palette);
78+
traits::GetFormat_v<T_PixelBuffer>, palette);
7979
}
8080

8181
template<class T_PixelBuffer>

include/libsiedler2/ArchivItem_Bitmap_Player.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (C) 2005 - 2021 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

@@ -89,8 +89,8 @@ inline int ArchivItem_Bitmap_Player::print(T_PixelBuffer& pixelBuffer, const Arc
8989
uint16_t from_y, uint16_t from_w, uint16_t from_h, bool only_player) const
9090
{
9191
return print(pixelBuffer.getPixelPtr(), pixelBuffer.getWidth(), pixelBuffer.getHeight(),
92-
traits::GetFormat<T_PixelBuffer>::value, palette, plClrStartIdx, to_x, to_y, from_x, from_y, from_w,
93-
from_h, only_player);
92+
traits::GetFormat_v<T_PixelBuffer>, palette, plClrStartIdx, to_x, to_y, from_x, from_y, from_w, from_h,
93+
only_player);
9494
}
9595

9696
inline int libsiedler2::ArchivItem_Bitmap_Player::create(const uint8_t* buffer, uint16_t buffer_width,
@@ -107,7 +107,7 @@ inline int ArchivItem_Bitmap_Player::create(uint16_t width, uint16_t height, con
107107
const ArchivItem_Palette* palette, uint8_t plClrStartIdx)
108108
{
109109
return create(width, height, pixelBuffer.getPixelPtr(), pixelBuffer.getWidth(), pixelBuffer.getHeight(),
110-
traits::GetFormat<T_PixelBuffer>::value, palette, plClrStartIdx);
110+
traits::GetFormat_v<T_PixelBuffer>, palette, plClrStartIdx);
111111
}
112112

113113
template<class T_PixelBuffer>

include/libsiedler2/GetFormat.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
// Copyright (C) 2005 - 2021 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

55
#pragma once
66

7+
#include "enumTypes.h"
8+
79
namespace libsiedler2::traits {
810
/// Return the texture/buffer format of the given type as the value member
911
template<class T_PixelBuffer>
1012
struct GetFormat;
13+
14+
template<class T_PixelBuffer>
15+
constexpr TextureFormat GetFormat_v = GetFormat<T_PixelBuffer>::value;
1116
} // namespace libsiedler2::traits

include/libsiedler2/ICloneable.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (C) 2005 - 2021 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

@@ -35,7 +35,7 @@ namespace detail {
3535
}
3636
} // namespace detail
3737

38-
template<class T, std::enable_if_t<!std::is_pointer<T>::value, int> = 0>
38+
template<class T, std::enable_if_t<!std::is_pointer_v<T>, int> = 0>
3939
auto clone(const T& obj)
4040
{
4141
return std::unique_ptr<T>(detail::safePtrCast<T>(obj.clone()));

tests/testFolder.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (C) 2005 - 2021 Settlers Freaks (sf-team at siedler25.org)
1+
// Copyright (C) 2005 - 2025 Settlers Freaks (sf-team at siedler25.org)
22
//
33
// SPDX-License-Identifier: GPL-2.0-or-later
44

@@ -44,8 +44,8 @@ struct FolderFixture
4444
{
4545
bfs::create_directories(lstPath);
4646
PixelBufferBGRA buffer(5, 3);
47-
std::array<std::string, std::tuple_size<decltype(bmps)>::value> names = {"a", "1.player.nx5.ny7", "f",
48-
"3.rle.nx1.ny9"};
47+
std::array<std::string, std::tuple_size_v<decltype(bmps)>> names = {"a", "1.player.nx5.ny7", "f",
48+
"3.rle.nx1.ny9"};
4949

5050
for(unsigned i = 0; i < bmps.size(); i++)
5151
{

0 commit comments

Comments
 (0)