wallet2_api: use std::optional instead of handmade optional

Cleaner, adheres to POLA, and allows for better compiler optimization. Declaration should be backwards compatible. Requires C++17.
This commit is contained in:
jeffro256 2024-10-30 13:04:25 -04:00
parent 9866a0e902
commit c1ead13df3
No known key found for this signature in database
GPG Key ID: 6F79797A6E392442

View File

@ -31,14 +31,15 @@
#pragma once #pragma once
#include <string> #include <cstdint>
#include <vector>
#include <list>
#include <set>
#include <ctime> #include <ctime>
#include <iostream> #include <iostream>
#include <list>
#include <optional>
#include <set>
#include <stdexcept> #include <stdexcept>
#include <cstdint> #include <string>
#include <vector>
// Public interface for libwallet library // Public interface for libwallet library
namespace Monero { namespace Monero {
@ -54,18 +55,9 @@ enum NetworkType : uint8_t {
void onStartup(); void onStartup();
} }
// backwards compatible shim for old declaration of handmade optional<> struct
template<typename T> template<typename T>
class optional { using optional = std::optional<T>;
public:
optional(): set(false) {}
optional(const T &t): t(t), set(true) {}
const T &operator*() const { return t; }
T &operator*() { return t; }
operator bool() const { return set; }
private:
T t;
bool set;
};
/** /**
* @brief Transaction-like interface for sending money * @brief Transaction-like interface for sending money