xrpld
Loading...
Searching...
No Matches
basic_prop.h
1#pragma once
2
3#include <memory>
4
5namespace xrpl::test::jtx {
6
8{
9 virtual ~BasicProp() = default;
10 [[nodiscard]] virtual std::unique_ptr<BasicProp>
11 clone() const = 0;
12 virtual bool
13 assignable(BasicProp const*) const = 0;
14};
15
16template <class T>
18{
19 T t;
20
21 template <class... Args>
22 PropType(Args&&... args) : t(std::forward<Args>(args)...)
23 {
24 }
25
26 [[nodiscard]] std::unique_ptr<BasicProp>
27 clone() const override
28 {
30 }
31
32 bool
33 assignable(BasicProp const* src) const override
34 {
35 return dynamic_cast<PropType<T> const*>(src);
36 }
37};
38
39} // namespace xrpl::test::jtx
T make_unique(T... args)
STL namespace.
virtual ~BasicProp()=default
virtual std::unique_ptr< BasicProp > clone() const =0
virtual bool assignable(BasicProp const *) const =0
std::unique_ptr< BasicProp > clone() const override
Definition basic_prop.h:27
bool assignable(BasicProp const *src) const override
Definition basic_prop.h:33
PropType(Args &&... args)
Definition basic_prop.h:22