DNA Calib 1.1
Project brief
Public Member Functions | List of all members
pma::Delete< T, B > Struct Template Reference

#include <ScopedPtr.h>

Collaboration diagram for pma::Delete< T, B >:
Collaboration graph

Public Member Functions

void operator() (B *ptr)
 

Member Function Documentation

◆ operator()()

template<class T , class B = T>
void pma::Delete< T, B >::operator() ( B *  ptr)
inline
27 {
28 // Calling delete on an incomplete type is undefined behavior.
29 // This check will result in a compile error for incomplete types, rather than allow UB.
30 #if !defined(__clang__) && defined(__GNUC__)
31 #pragma GCC diagnostic push
32 #pragma GCC diagnostic ignored "-Wsign-conversion"
33 #endif
34 using complete_type_checker = char[sizeof(T) ? 1 : -1];
35 #if !defined(__clang__) && defined(__GNUC__)
36 #pragma GCC diagnostic pop
37 #endif
38 static_cast<void>(sizeof(complete_type_checker));
39 delete ptr;
40 }

The documentation for this struct was generated from the following file: