Skip to content

Commit 68e0dc3

Browse files
committed
build: cure g++-15 C++26 deprecation warning
include/gromox/defs.h: In instantiation of 'T* gromox::me_alloc(size_t) [with T = char; size_t = long unsigned int]': lib/list_file.cpp:209:35: required from here 209 | auto ptr = gromox::me_alloc<char>(table_size * list_file->item_size); include/gromox/defs.h:128:28: warning: 'std::is_trivial_v<char>' is deprecated: use 'is_trivially_default_constructible_v && is_trivially_copyable_v' instead [-Wdeprecated-declarations] 128 | static_assert(std::is_trivial_v<T> && std::is_trivially_destructible_v<T>);
1 parent 6b858c0 commit 68e0dc3

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

include/gromox/defs.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,19 @@ struct stdlib_delete {
121121
inline void operator()(void *x) const { free(x); }
122122
};
123123
template<typename T> static inline T *me_alloc() {
124-
static_assert(std::is_trivial_v<T> && std::is_trivially_destructible_v<T>);
124+
static_assert(std::is_trivially_default_constructible_v<T> && std::is_trivially_copyable_v<T> && std::is_trivially_destructible_v<T>);
125125
return static_cast<T *>(malloc(sizeof(T)));
126126
}
127127
template<typename T> static inline T *me_alloc(size_t elem) {
128-
static_assert(std::is_trivial_v<T> && std::is_trivially_destructible_v<T>);
128+
static_assert(std::is_trivially_default_constructible_v<T> && std::is_trivially_copyable_v<T> && std::is_trivially_destructible_v<T>);
129129
return static_cast<T *>(malloc(sizeof(T) * elem));
130130
}
131131
template<typename T> static inline T *re_alloc(void *x) {
132-
static_assert(std::is_trivial_v<T> && std::is_trivially_destructible_v<T>);
132+
static_assert(std::is_trivially_default_constructible_v<T> && std::is_trivially_copyable_v<T> && std::is_trivially_destructible_v<T>);
133133
return static_cast<T *>(realloc(x, sizeof(T)));
134134
}
135135
template<typename T> static inline T *re_alloc(void *x, size_t elem) {
136-
static_assert(std::is_trivial_v<T> && std::is_trivially_destructible_v<T>);
136+
static_assert(std::is_trivially_default_constructible_v<T> && std::is_trivially_copyable_v<T> && std::is_trivially_destructible_v<T>);
137137
return static_cast<T *>(realloc(x, sizeof(T) * elem));
138138
}
139139
static inline const char *snul(const std::string &s) { return s.size() != 0 ? s.c_str() : nullptr; }

0 commit comments

Comments
 (0)