Commit 147c589
Base classes should have virtual destructors (#55)
From https://en.cppreference.com/w/cpp/language/destructor ...
Virtual destructors
Deleting an object through pointer to base invokes undefined behavior unless the destructor in the base class is virtual:
class Base {
public:
virtual ~Base() {}
};
class Derived : public Base {};
Base* b = new Derived;
delete b; // safe
A common guideline is that a destructor for a base class must be either public and virtual or protected and nonvirtual
Prevents errors like the following:
INFO: From Compiling external/com_github_cpp_redis_cpp_redis/sources/core/types.cpp:
In file included from external/com_github_cpp_redis_cpp_redis/sources/core/types.cpp:23:
In file included from bazel-out/darwin-fastbuild/bin/external/com_github_cpp_redis_cpp_redis/_virtual_includes/cpp_redis/cpp_redis/core/types.hpp:26:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string:500:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string_view:176:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__string:56:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/algorithm:644:
/Library/Developer/CommandLineTools/usr/include/c++/v1/memory:1880:58: warning: destructor called on non-final 'cpp_redis::xmessage' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
_LIBCPP_INLINE_VISIBILITY void destroy(pointer __p) {__p->~_Tp();}
^1 parent 53e6112 commit 147c589
1 file changed
+4
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
62 | 64 | | |
63 | 65 | | |
64 | 66 | | |
| 67 | + | |
| 68 | + | |
65 | 69 | | |
66 | 70 | | |
67 | 71 | | |
| |||
0 commit comments