diff options
author | Deniz Evrenci <denizevrenci@gmail.com> | 2019-10-12 02:44:20 +0900 |
---|---|---|
committer | Victor Zverovich <victor.zverovich@gmail.com> | 2019-10-11 10:44:20 -0700 |
commit | 96f91428c6ad2d19f1ce87ae160b78f52ed989fb (patch) | |
tree | 41f2ed4dff04d1bf0ec2ad0c84d525d55c1fcadd /test | |
parent | b732f28c007b0bd940359e9f3517f2caab7bd1a5 (diff) | |
download | fmtlib-96f91428c6ad2d19f1ce87ae160b78f52ed989fb.tar.gz |
Add defaulted copy and move operations to format_error and system_error (#1347)
* Avoid weak vtables by providing a private virtual member function
* Add warning Wweak-vtables to clang when FMT_PEDANTIC is on
* Add defaulted copy and move operations to format_error and system_error
Compiler generated copy operations are deprecated and move operations
are not generated altogether.
* Add warning Wdeprecated to clang when FMT_PEDANTIC is on
Diffstat (limited to 'test')
-rw-r--r-- | test/core-test.cc | 5 | ||||
-rw-r--r-- | test/test-assert.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/test/core-test.cc b/test/core-test.cc index 76612b99..931f44b7 100644 --- a/test/core-test.cc +++ b/test/core-test.cc @@ -127,8 +127,13 @@ TEST(BufferTest, Ctor) { struct dying_buffer : test_buffer<int> { MOCK_METHOD0(die, void()); ~dying_buffer() { die(); } + + private: + virtual void avoid_weak_vtable(); }; +void dying_buffer::avoid_weak_vtable() {} + TEST(BufferTest, VirtualDtor) { typedef StrictMock<dying_buffer> stict_mock_buffer; stict_mock_buffer* mock_buffer = new stict_mock_buffer(); diff --git a/test/test-assert.h b/test/test-assert.h index 034a4ce6..c02dc0f2 100644 --- a/test/test-assert.h +++ b/test/test-assert.h @@ -14,8 +14,13 @@ class assertion_failure : public std::logic_error { public: explicit assertion_failure(const char* message) : std::logic_error(message) {} + + private: + virtual void avoid_weak_vtable(); }; +void assertion_failure::avoid_weak_vtable() {} + #define FMT_ASSERT(condition, message) \ if (!(condition)) throw assertion_failure(message); |