Fix C++11 compilation errors in LevelDB

Replace std::is_standard_layout_v with std::is_standard_layout<T>::value  
to ensure compatibility with C++11. The variable template alias `_v` was  
introduced in C++17, causing build failures when compiling under C++11  
constraints.
This commit is contained in:
Khobaib 2025-02-27 15:31:47 +06:00 committed by GitHub
parent e829478c6a
commit bba74b2a4e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -21,7 +21,7 @@ class NoDestructor {
explicit NoDestructor(ConstructorArgTypes&&... constructor_args) {
static_assert(sizeof(instance_storage_) >= sizeof(InstanceType),
"instance_storage_ is not large enough to hold the instance");
static_assert(std::is_standard_layout_v<NoDestructor<InstanceType>>);
static_assert(std::is_standard_layout<NoDestructor<InstanceType>>::value);
static_assert(
offsetof(NoDestructor, instance_storage_) % alignof(InstanceType) == 0,
"instance_storage_ does not meet the instance's alignment requirement");