// // Created by David Doebel on 05.03.2026. // #ifndef QUANTENGINE_OPTION_HPP #define QUANTENGINE_OPTION_HPP #include "Instrument.hpp" #include "Exercise.hpp" class Option : public Instrument{ public: Option() = default; virtual ~Option() = default; Option(double maturity, std::unique_ptr exercise, std::unique_ptr payoff, std::unique_ptr engine); [[nodiscard]] Exercise& exercise() const { return *exercise_; } protected: std::unique_ptr exercise_; }; class VanillaOption : public Option { public: using Option::Option; }; #endif //QUANTENGINE_OPTION_HPP