mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 20:20:35 +00:00
Add copy constructor, copy assignment operator, move constructor and move assignment operator
This commit is contained in:
parent
52c08e3ab4
commit
1237a29fc9
@ -53,6 +53,46 @@ Gnss_Signal::Gnss_Signal(const Gnss_Satellite& satellite_, const std::string& si
|
|||||||
Gnss_Signal::~Gnss_Signal() = default;
|
Gnss_Signal::~Gnss_Signal() = default;
|
||||||
|
|
||||||
|
|
||||||
|
// Copy constructor
|
||||||
|
Gnss_Signal::Gnss_Signal(Gnss_Signal&& other)
|
||||||
|
{
|
||||||
|
*this = std::move(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Copy assignment operator
|
||||||
|
Gnss_Signal& Gnss_Signal::operator=(const Gnss_Signal& rhs)
|
||||||
|
{
|
||||||
|
// Only do assignment if RHS is a different object from this.
|
||||||
|
if (this != &rhs)
|
||||||
|
{
|
||||||
|
// Deallocate, allocate new space, copy values...
|
||||||
|
this->satellite = rhs.get_satellite();
|
||||||
|
this->signal = rhs.get_signal_str();
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Move constructor
|
||||||
|
Gnss_Signal::Gnss_Signal(const Gnss_Signal& other)
|
||||||
|
{
|
||||||
|
*this = std::move(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Move assignment operator
|
||||||
|
Gnss_Signal& Gnss_Signal::operator=(Gnss_Signal&& other)
|
||||||
|
{
|
||||||
|
if (this != &other)
|
||||||
|
{
|
||||||
|
this->satellite = std::move(other.get_satellite());
|
||||||
|
this->signal = std::move(other.get_signal_str());
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
std::string Gnss_Signal::get_signal_str() const
|
std::string Gnss_Signal::get_signal_str() const
|
||||||
{
|
{
|
||||||
return this->signal;
|
return this->signal;
|
||||||
|
@ -54,6 +54,10 @@ public:
|
|||||||
friend bool operator==(const Gnss_Signal& /*sig1*/, const Gnss_Signal& /*sig2*/); //!< operator== for comparison
|
friend bool operator==(const Gnss_Signal& /*sig1*/, const Gnss_Signal& /*sig2*/); //!< operator== for comparison
|
||||||
friend std::ostream& operator<<(std::ostream& /*out*/, const Gnss_Signal& /*sig*/); //!< operator<< for pretty printing
|
friend std::ostream& operator<<(std::ostream& /*out*/, const Gnss_Signal& /*sig*/); //!< operator<< for pretty printing
|
||||||
|
|
||||||
|
Gnss_Signal(Gnss_Signal&& other); //!< Copy constructor
|
||||||
|
Gnss_Signal& operator=(const Gnss_Signal&); //!< Copy assignment operator
|
||||||
|
Gnss_Signal(const Gnss_Signal& other); //!< Move constructor
|
||||||
|
Gnss_Signal& operator=(Gnss_Signal&& other); //!< Move assignment operator
|
||||||
private:
|
private:
|
||||||
Gnss_Satellite satellite;
|
Gnss_Satellite satellite;
|
||||||
std::string signal;
|
std::string signal;
|
||||||
|
Loading…
Reference in New Issue
Block a user