Skip to Content
Learning Modern C++ for Finance
book

Learning Modern C++ for Finance

by Daniel Hanson
November 2024
Intermediate to advanced
430 pages
10h 39m
English
O'Reilly Media, Inc.
Book available
Content preview from Learning Modern C++ for Finance

Appendix C. Implementation of Move Special Member Functions

In Chapter 3, and for most of this book, we have been relying on the compiler-provided default move constructor and move assignment operator. However, for those who would like a more in-depth explanation beyond the default cases, this appendix discusses their implementations in the OptionInfo class, simply replicating their default behavior as examples.

Move operations also are related to memory allocations that are common with a vector container, discussed at a high level in Chapter 4. Reading the entirety of this section is not a prerequisite, but it is provided here in case you would like more information.

Returning to the OptionInfo class, the default settings instructing the compiler to generate default versions of the move operations are now removed. Instead, they are declared similarly to the copy operations:

class OptionInfo
{
public:
    OptionInfo(std::unique_ptr<Payoff> payoff, double time_to_exp);
    double option_payoff(double spot) const;
    double time_to_expiration() const;
    void swap(OptionInfo& rhs) noexcept;

    OptionInfo(const OptionInfo& rhs);
    OptionInfo& operator =(const OptionInfo& rhs);

    OptionInfo(OptionInfo&& rhs) noexcept;
    OptionInfo& operator =(OptionInfo&& rhs) noexcept;

    ~OptionInfo() = default;

private:
    std::unique_ptr<Payoff> payoff_ptr_;
    double time_to_exp_;
};

The first detail you will probably notice is that both special move functions have also been declared noexcept. This will also be explained.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Complete Modern C++ (C++11/14/17)

Complete Modern C++ (C++11/14/17)

Umar Lone
The Complete C++ Developer Course

The Complete C++ Developer Course

Codestars By Rob Percival, John P. Baugh

Publisher Resources

ISBN: 9781098100797Errata PageSupplemental Content