rippled
Loading...
Searching...
No Matches
basic_prop.h
1#pragma once
2
3#include <memory>
4
5namespace xrpl {
6namespace test {
7namespace jtx {
8
10{
11 virtual ~basic_prop() = default;
13 clone() const = 0;
14 virtual bool
15 assignable(basic_prop const*) const = 0;
16};
17
18template <class T>
20{
21 T t;
22
23 template <class... Args>
24 prop_type(Args&&... args) : t(std::forward<Args>(args)...)
25 {
26 }
27
29 clone() const override
30 {
32 }
33
34 bool
35 assignable(basic_prop const* src) const override
36 {
37 return dynamic_cast<prop_type<T> const*>(src);
38 }
39};
40
41} // namespace jtx
42} // namespace test
43} // namespace xrpl
T is_same_v
STL namespace.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
virtual bool assignable(basic_prop const *) const =0
virtual std::unique_ptr< basic_prop > clone() const =0
virtual ~basic_prop()=default
std::unique_ptr< basic_prop > clone() const override
Definition basic_prop.h:29
bool assignable(basic_prop const *src) const override
Definition basic_prop.h:35
prop_type(Args &&... args)
Definition basic_prop.h:24