Loading...
Searching...
No Matches
builder_utils.h
1
5#pragma once
6
7#include <memory>
8
18#define UCXX_BUILDER_PIMPL_DEFAULTS(BuilderClass, TargetClass) \
19 BuilderClass::~BuilderClass() = default; \
20 BuilderClass::BuilderClass(BuilderClass&&) noexcept = default; \
21 BuilderClass& BuilderClass::operator=(BuilderClass&&) noexcept = default; \
22 BuilderClass::BuilderClass(const BuilderClass& other) \
23 : _impl(std::make_unique<Impl>(*other._impl)) \
24 { \
25 } \
26 BuilderClass& BuilderClass::operator=(const BuilderClass& other) \
27 { \
28 if (this != &other) _impl = std::make_unique<Impl>(*other._impl); \
29 return *this; \
30 } \
31 BuilderClass::operator std::shared_ptr<TargetClass>() { return build(); }