Remove explicit default destructors (#157)

From CppCoreGuidelines:

Rule of Zero: C.20: If you can avoid defining default operations, do.
C.52: Use inheriting constructors to import constructors into a derived class that does not need further explicit initialization.
DRY forward and using declarations.
Miscellaneous:

Fix format.sh to output examples with normalised paths in sorted order.

Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
This commit is contained in:
Tushar Maheshwari
2021-07-17 15:32:08 +05:30
committed by GitHub
parent b3a333b417
commit 21d746e858
38 changed files with 67 additions and 125 deletions

View File

@@ -6,7 +6,7 @@
namespace ftxui {
class CapturedMouseInterface {
public:
virtual ~CapturedMouseInterface() {}
virtual ~CapturedMouseInterface() = default;
};
using CapturedMouse = std::unique_ptr<CapturedMouseInterface>;
} // namespace ftxui

View File

@@ -2,29 +2,24 @@
#define FTXUI_COMPONENT_HPP
#include <functional> // for function
#include <memory> // for shared_ptr, make_shared
#include <memory> // for make_shared, shared_ptr
#include <string> // for wstring
#include <vector> // for vector
#include "ftxui/component/component_base.hpp"
#include "ftxui/component/component_options.hpp"
#include "ftxui/dom/elements.hpp" // for Element
#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef, StringRef
#include "ftxui/component/component_base.hpp" // for Component, Components
#include "ftxui/component/component_options.hpp" // for ButtonOption, CheckboxOption, InputOption, MenuOption, RadioboxOption, ToggleOption
#include "ftxui/dom/elements.hpp" // for Element
#include "ftxui/util/ref.hpp" // for Ref, ConstStringRef, StringRef
namespace ftxui {
class ComponentBase;
struct Event;
struct ButtonOption;
struct CheckboxOption;
struct Event;
struct InputOption;
struct MenuOption;
struct RadioboxOption;
struct ToggleOption;
using Component = std::shared_ptr<ComponentBase>;
using Components = std::vector<Component>;
template <class T, class... Args>
std::shared_ptr<T> Make(Args&&... args) {
return std::make_shared<T>(args...);

View File

@@ -22,8 +22,7 @@ using Components = std::vector<Component>;
/// @ingroup component
class ComponentBase {
public:
// Constructor/Destructor.
ComponentBase() = default;
// virtual Destructor.
virtual ~ComponentBase();
// Component hierarchy:
@@ -73,8 +72,6 @@ class ComponentBase {
ComponentBase* parent_ = nullptr;
};
using Component = std::shared_ptr<ComponentBase>;
} // namespace ftxui
#endif /* end of include guard: FTXUI_COMPONENT_BASE_HPP */

View File

@@ -8,14 +8,14 @@
#include <string> // for string
#include "ftxui/component/captured_mouse.hpp" // for CapturedMouse
#include "ftxui/component/event.hpp"
#include "ftxui/screen/screen.hpp" // for Screen
#include "ftxui/component/event.hpp" // for Event
#include "ftxui/screen/screen.hpp" // for Screen
namespace ftxui {
class ComponentBase;
struct Event;
using Component = std::shared_ptr<ComponentBase>;
struct Event;
class ScreenInteractive : public Screen {
public: