Define copy/move ctors and assignment ops

Delete special member functions where they are not used.
(as part of applying suggestions from cppcoreguidelines-special-member-functions)

These classes don't need to be copyable/movable:
  # copy/move not used:
  zmq:: TransportFactory, Socket, Message, UnmanagedRegion, Poller, Context
  shm:: TransportFactory, Socket, Message, UnmanagedRegion, Poller
  ofi:: TransportFactory, Socket, Message, Context
  shm:: ZMsg, Region, Monitor, TerminalConfig, Manager
  plugins:: Config, Control, TerminalConfig
  fairmq::StateQueue, StateMachine, ProgOptions, PluginServices, PluginManager, Plugin, Device, StateSubscription
  TestData, BadDevice, TestDevice (test suite heplers)

  # used via ptr interface:
  fairmq::UnmanagedRegion, TransportFactory, Socket, Poller, Message

These classes need to be movable/copyable:
 MyClass (test suite helper), fairmq::Channel, fairmq::Parts
This commit is contained in:
Alexey Rybalchenko
2021-09-14 11:38:33 +02:00
committed by Dennis Klein
parent 597d88277b
commit ad824b4de1
42 changed files with 174 additions and 47 deletions

View File

@@ -33,7 +33,11 @@ class ProgOptions
{
public:
ProgOptions();
virtual ~ProgOptions() = default;
ProgOptions(const ProgOptions&) = delete;
ProgOptions(ProgOptions&&) = delete;
ProgOptions& operator=(const ProgOptions&) = delete;
ProgOptions& operator=(ProgOptions&&) = delete;
~ProgOptions() = default;
void ParseAll(const std::vector<std::string>& cmdArgs, bool allowUnregistered);
void ParseAll(int argc, char const* const* argv, bool allowUnregistered = true);