mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-27 17:31:40 +02:00
subprocess: Explicitly define move constructor of Streams class
This suppresses the following warning caused by clang-20. ``` error: definition of implicit copy constructor for 'Streams' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] ``` Copy constructor or move constructor is called when std::vector re-allocates memory. In this case, move constructor should be called, because copying Streams instances breaks file-descriptor management. Communication class is modified as well, since it's instance is a member of Streams class. Github-Pull: arun11299/cpp-subprocess#107 Rebased-From: 38d98d9d20be50c7187b98ac9bc9a6e66920f6ef
This commit is contained in:
parent
174bd43f2e
commit
bb9ffea53f
@ -770,7 +770,10 @@ class Communication
|
|||||||
public:
|
public:
|
||||||
Communication(Streams* stream): stream_(stream)
|
Communication(Streams* stream): stream_(stream)
|
||||||
{}
|
{}
|
||||||
void operator=(const Communication&) = delete;
|
Communication(const Communication&) = delete;
|
||||||
|
Communication& operator=(const Communication&) = delete;
|
||||||
|
Communication(Communication&&) = default;
|
||||||
|
Communication& operator=(Communication&&) = default;
|
||||||
public:
|
public:
|
||||||
int send(const char* msg, size_t length);
|
int send(const char* msg, size_t length);
|
||||||
int send(const std::vector<char>& msg);
|
int send(const std::vector<char>& msg);
|
||||||
@ -807,7 +810,10 @@ class Streams
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Streams():comm_(this) {}
|
Streams():comm_(this) {}
|
||||||
void operator=(const Streams&) = delete;
|
Streams(const Streams&) = delete;
|
||||||
|
Streams& operator=(const Streams&) = delete;
|
||||||
|
Streams(Streams&&) = default;
|
||||||
|
Streams& operator=(Streams&&) = default;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setup_comm_channels();
|
void setup_comm_channels();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user