Commit 0efcd8c8 authored by Praveen Kumar's avatar Praveen Kumar Committed by Sara Golemon

Get *=default*ed default constructors

Summary: Defaulted (*=default*ed) default constructors are better
because they can be constexpr and/or noexcept when C++ Standard
thinks it is right to do so. And they remain user-declared rather
than user-provided. Regarding *=default*ed default constructor,
benifit is that the work might be done during compilation and we
might not need to worry about exception paths. And for destructors,
apart from that that =defaulted definition is in sync with defaulted
default constructor we might discover that in some cases "() {}" might
be ill-formed when "= default;" compiltion indicates so. If =defaulted
definition for destructor doesn't do any harm then why not go for it.

Closes #216

Reviewed By: @yfeldblum

Differential Revision: D2145322

Pulled By: @sgolemon
parent af7afa42
...@@ -148,8 +148,8 @@ class Arena { ...@@ -148,8 +148,8 @@ class Arena {
} }
private: private:
Block() { } Block() = default;
~Block() { } ~Block() = default;
} __attribute__((__aligned__)); } __attribute__((__aligned__));
// This should be alignas(std::max_align_t) but neither alignas nor // This should be alignas(std::max_align_t) but neither alignas nor
// max_align_t are supported by gcc 4.6.2. // max_align_t are supported by gcc 4.6.2.
......
...@@ -232,7 +232,7 @@ class AtomicHashArray : boost::noncopyable { ...@@ -232,7 +232,7 @@ class AtomicHashArray : boost::noncopyable {
struct SimpleRetT { size_t idx; bool success; struct SimpleRetT { size_t idx; bool success;
SimpleRetT(size_t i, bool s) : idx(i), success(s) {} SimpleRetT(size_t i, bool s) : idx(i), success(s) {}
SimpleRetT() {} SimpleRetT() = default;
}; };
template <class T> template <class T>
...@@ -277,7 +277,7 @@ class AtomicHashArray : boost::noncopyable { ...@@ -277,7 +277,7 @@ class AtomicHashArray : boost::noncopyable {
AtomicHashArray(size_t capacity, KeyT emptyKey, KeyT lockedKey, AtomicHashArray(size_t capacity, KeyT emptyKey, KeyT lockedKey,
KeyT erasedKey, double maxLoadFactor, size_t cacheSize); KeyT erasedKey, double maxLoadFactor, size_t cacheSize);
~AtomicHashArray() {} ~AtomicHashArray() = default;
inline void unlockCell(value_type* const cell, KeyT newKey) { inline void unlockCell(value_type* const cell, KeyT newKey) {
cellKeyPtr(*cell)->store(newKey, std::memory_order_release); cellKeyPtr(*cell)->store(newKey, std::memory_order_release);
......
...@@ -389,7 +389,7 @@ class AtomicHashMap : boost::noncopyable { ...@@ -389,7 +389,7 @@ class AtomicHashMap : boost::noncopyable {
struct SimpleRetT { uint32_t i; size_t j; bool success; struct SimpleRetT { uint32_t i; size_t j; bool success;
SimpleRetT(uint32_t ii, size_t jj, bool s) : i(ii), j(jj), success(s) {} SimpleRetT(uint32_t ii, size_t jj, bool s) : i(ii), j(jj), success(s) {}
SimpleRetT() {} SimpleRetT() = default;
}; };
template <class T> template <class T>
......
...@@ -434,7 +434,7 @@ class try_and_catch<LastException, Exceptions...> : ...@@ -434,7 +434,7 @@ class try_and_catch<LastException, Exceptions...> :
template<> template<>
class try_and_catch<> : public exception_wrapper { class try_and_catch<> : public exception_wrapper {
public: public:
try_and_catch() {} try_and_catch() = default;
protected: protected:
template <typename F> template <typename F>
......
...@@ -512,7 +512,7 @@ class GroupVarintDecoder { ...@@ -512,7 +512,7 @@ class GroupVarintDecoder {
typedef GroupVarint<T> Base; typedef GroupVarint<T> Base;
typedef T type; typedef T type;
GroupVarintDecoder() { } GroupVarintDecoder() = default;
explicit GroupVarintDecoder(StringPiece data, explicit GroupVarintDecoder(StringPiece data,
size_t maxCount = (size_t)-1) size_t maxCount = (size_t)-1)
......
...@@ -176,7 +176,7 @@ template <class In, class... Stages> class MPMCPipeline { ...@@ -176,7 +176,7 @@ template <class In, class... Stages> class MPMCPipeline {
* Default-construct pipeline. Useful to move-assign later, * Default-construct pipeline. Useful to move-assign later,
* just like MPMCQueue, see MPMCQueue.h for more details. * just like MPMCQueue, see MPMCQueue.h for more details.
*/ */
MPMCPipeline() { } MPMCPipeline() = default;
/** /**
* Construct a pipeline with N+1 queue sizes. * Construct a pipeline with N+1 queue sizes.
......
...@@ -53,7 +53,7 @@ class MemoryMapping : boost::noncopyable { ...@@ -53,7 +53,7 @@ class MemoryMapping : boost::noncopyable {
* likely become inaccessible) when the MemoryMapping object is destroyed. * likely become inaccessible) when the MemoryMapping object is destroyed.
*/ */
struct Options { struct Options {
Options() { } Options() {}
// Convenience methods; return *this for chaining. // Convenience methods; return *this for chaining.
Options& setPageSize(off_t v) { pageSize = v; return *this; } Options& setPageSize(off_t v) { pageSize = v; return *this; }
......
...@@ -188,7 +188,7 @@ class TypeDescriptorHasher { ...@@ -188,7 +188,7 @@ class TypeDescriptorHasher {
// SingletonHolders. // SingletonHolders.
class SingletonHolderBase { class SingletonHolderBase {
public: public:
virtual ~SingletonHolderBase() {} virtual ~SingletonHolderBase() = default;
virtual TypeDescriptor type() = 0; virtual TypeDescriptor type() = 0;
virtual bool hasLiveInstance() = 0; virtual bool hasLiveInstance() = 0;
......
...@@ -295,7 +295,7 @@ struct SpinLockArray { ...@@ -295,7 +295,7 @@ struct SpinLockArray {
private: private:
struct PaddedSpinLock { struct PaddedSpinLock {
PaddedSpinLock() : lock() { } PaddedSpinLock() : lock() {}
T lock; T lock;
char padding[FOLLY_CACHE_LINE_SIZE - sizeof(T)]; char padding[FOLLY_CACHE_LINE_SIZE - sizeof(T)];
}; };
......
...@@ -32,7 +32,7 @@ namespace folly { ...@@ -32,7 +32,7 @@ namespace folly {
class SocketAddress { class SocketAddress {
public: public:
SocketAddress() {} SocketAddress() = default;
/** /**
* Construct a SocketAddress from a hostname and port. * Construct a SocketAddress from a hostname and port.
......
...@@ -208,7 +208,7 @@ class SubprocessError : public std::exception {}; ...@@ -208,7 +208,7 @@ class SubprocessError : public std::exception {};
class CalledProcessError : public SubprocessError { class CalledProcessError : public SubprocessError {
public: public:
explicit CalledProcessError(ProcessReturnCode rc); explicit CalledProcessError(ProcessReturnCode rc);
~CalledProcessError() throw() { } ~CalledProcessError() throw() = default;
const char* what() const throw() FOLLY_OVERRIDE { return what_.c_str(); } const char* what() const throw() FOLLY_OVERRIDE { return what_.c_str(); }
ProcessReturnCode returnCode() const { return returnCode_; } ProcessReturnCode returnCode() const { return returnCode_; }
private: private:
...@@ -222,7 +222,7 @@ class CalledProcessError : public SubprocessError { ...@@ -222,7 +222,7 @@ class CalledProcessError : public SubprocessError {
class SubprocessSpawnError : public SubprocessError { class SubprocessSpawnError : public SubprocessError {
public: public:
SubprocessSpawnError(const char* executable, int errCode, int errnoValue); SubprocessSpawnError(const char* executable, int errCode, int errnoValue);
~SubprocessSpawnError() throw() {} ~SubprocessSpawnError() throw() = default;
const char* what() const throw() FOLLY_OVERRIDE { return what_.c_str(); } const char* what() const throw() FOLLY_OVERRIDE { return what_.c_str(); }
int errnoValue() const { return errnoValue_; } int errnoValue() const { return errnoValue_; }
......
...@@ -59,7 +59,7 @@ template<class T, class Tag> class ThreadLocalPtr; ...@@ -59,7 +59,7 @@ template<class T, class Tag> class ThreadLocalPtr;
template<class T, class Tag=void> template<class T, class Tag=void>
class ThreadLocal { class ThreadLocal {
public: public:
ThreadLocal() { } ThreadLocal() = default;
T* get() const { T* get() const {
T* ptr = tlp_.get(); T* ptr = tlp_.get();
......
...@@ -52,7 +52,7 @@ TypeError::TypeError(const std::string& expected, ...@@ -52,7 +52,7 @@ TypeError::TypeError(const std::string& expected,
'\'')) '\''))
{} {}
TypeError::~TypeError() {} TypeError::~TypeError() = default;
// This is a higher-order preprocessor macro to aid going from runtime // This is a higher-order preprocessor macro to aid going from runtime
// types to the compile time type system. // types to the compile time type system.
......
...@@ -59,7 +59,7 @@ Optional<SchemaError> makeError(Args&&... args) { ...@@ -59,7 +59,7 @@ Optional<SchemaError> makeError(Args&&... args) {
struct ValidationContext; struct ValidationContext;
struct IValidator { struct IValidator {
virtual ~IValidator() {} virtual ~IValidator() = default;
private: private:
friend struct ValidationContext; friend struct ValidationContext;
...@@ -102,7 +102,7 @@ struct SchemaValidatorContext final { ...@@ -102,7 +102,7 @@ struct SchemaValidatorContext final {
* Root validator for a schema. * Root validator for a schema.
*/ */
struct SchemaValidator final : IValidator, public Validator { struct SchemaValidator final : IValidator, public Validator {
SchemaValidator() {} SchemaValidator() = default;
void loadSchema(SchemaValidatorContext& context, const dynamic& schema); void loadSchema(SchemaValidatorContext& context, const dynamic& schema);
Optional<SchemaError> validate(ValidationContext&, Optional<SchemaError> validate(ValidationContext&,
...@@ -1010,7 +1010,7 @@ folly::Singleton<Validator> schemaValidator([]() { ...@@ -1010,7 +1010,7 @@ folly::Singleton<Validator> schemaValidator([]() {
}); });
} }
Validator::~Validator() {} Validator::~Validator() = default;
std::unique_ptr<Validator> makeValidator(const dynamic& schema) { std::unique_ptr<Validator> makeValidator(const dynamic& schema) {
auto v = make_unique<SchemaValidator>(); auto v = make_unique<SchemaValidator>();
......
...@@ -59,7 +59,7 @@ public: ...@@ -59,7 +59,7 @@ public:
typedef typename Base::size_type size_type; typedef typename Base::size_type size_type;
typedef typename Base::difference_type difference_type; typedef typename Base::difference_type difference_type;
explicit StringKeyedUnorderedMap() {} explicit StringKeyedUnorderedMap() = default;
explicit StringKeyedUnorderedMap( explicit StringKeyedUnorderedMap(
size_type n, size_type n,
......
...@@ -158,7 +158,7 @@ class RangeSource : public GenImpl<typename Range<Iterator>::reference, ...@@ -158,7 +158,7 @@ class RangeSource : public GenImpl<typename Range<Iterator>::reference,
RangeSource<Iterator>> { RangeSource<Iterator>> {
Range<Iterator> range_; Range<Iterator> range_;
public: public:
RangeSource() {} RangeSource() = default;
explicit RangeSource(Range<Iterator> range) explicit RangeSource(Range<Iterator> range)
: range_(std::move(range)) : range_(std::move(range))
{} {}
...@@ -382,7 +382,7 @@ template<class Predicate> ...@@ -382,7 +382,7 @@ template<class Predicate>
class Map : public Operator<Map<Predicate>> { class Map : public Operator<Map<Predicate>> {
Predicate pred_; Predicate pred_;
public: public:
Map() {} Map() = default;
explicit Map(Predicate pred) explicit Map(Predicate pred)
: pred_(std::move(pred)) : pred_(std::move(pred))
...@@ -448,7 +448,7 @@ template<class Predicate> ...@@ -448,7 +448,7 @@ template<class Predicate>
class Filter : public Operator<Filter<Predicate>> { class Filter : public Operator<Filter<Predicate>> {
Predicate pred_; Predicate pred_;
public: public:
Filter() {} Filter() = default;
explicit Filter(Predicate pred) explicit Filter(Predicate pred)
: pred_(std::move(pred)) : pred_(std::move(pred))
{ } { }
...@@ -512,7 +512,7 @@ template<class Predicate> ...@@ -512,7 +512,7 @@ template<class Predicate>
class Until : public Operator<Until<Predicate>> { class Until : public Operator<Until<Predicate>> {
Predicate pred_; Predicate pred_;
public: public:
Until() {} Until() = default;
explicit Until(Predicate pred) explicit Until(Predicate pred)
: pred_(std::move(pred)) : pred_(std::move(pred))
{} {}
...@@ -850,7 +850,7 @@ class Order : public Operator<Order<Selector, Comparer>> { ...@@ -850,7 +850,7 @@ class Order : public Operator<Order<Selector, Comparer>> {
Selector selector_; Selector selector_;
Comparer comparer_; Comparer comparer_;
public: public:
Order() {} Order() = default;
explicit Order(Selector selector) explicit Order(Selector selector)
: selector_(std::move(selector)) : selector_(std::move(selector))
...@@ -984,7 +984,7 @@ template<class Selector> ...@@ -984,7 +984,7 @@ template<class Selector>
class Distinct : public Operator<Distinct<Selector>> { class Distinct : public Operator<Distinct<Selector>> {
Selector selector_; Selector selector_;
public: public:
Distinct() {} Distinct() = default;
explicit Distinct(Selector selector) explicit Distinct(Selector selector)
: selector_(std::move(selector)) : selector_(std::move(selector))
...@@ -1165,7 +1165,7 @@ class FoldLeft : public Operator<FoldLeft<Seed, Fold>> { ...@@ -1165,7 +1165,7 @@ class FoldLeft : public Operator<FoldLeft<Seed, Fold>> {
Seed seed_; Seed seed_;
Fold fold_; Fold fold_;
public: public:
FoldLeft() {} FoldLeft() = default;
FoldLeft(Seed seed, FoldLeft(Seed seed,
Fold fold) Fold fold)
: seed_(std::move(seed)) : seed_(std::move(seed))
...@@ -1193,7 +1193,7 @@ class FoldLeft : public Operator<FoldLeft<Seed, Fold>> { ...@@ -1193,7 +1193,7 @@ class FoldLeft : public Operator<FoldLeft<Seed, Fold>> {
*/ */
class First : public Operator<First> { class First : public Operator<First> {
public: public:
First() { } First() = default;
template<class Source, template<class Source,
class Value, class Value,
...@@ -1226,7 +1226,7 @@ class First : public Operator<First> { ...@@ -1226,7 +1226,7 @@ class First : public Operator<First> {
*/ */
class Any : public Operator<Any> { class Any : public Operator<Any> {
public: public:
Any() { } Any() = default;
template<class Source, template<class Source,
class Value> class Value>
...@@ -1265,7 +1265,7 @@ template<class Predicate> ...@@ -1265,7 +1265,7 @@ template<class Predicate>
class All : public Operator<All<Predicate>> { class All : public Operator<All<Predicate>> {
Predicate pred_; Predicate pred_;
public: public:
All() {} All() = default;
explicit All(Predicate pred) explicit All(Predicate pred)
: pred_(std::move(pred)) : pred_(std::move(pred))
{ } { }
...@@ -1302,7 +1302,7 @@ template<class Reducer> ...@@ -1302,7 +1302,7 @@ template<class Reducer>
class Reduce : public Operator<Reduce<Reducer>> { class Reduce : public Operator<Reduce<Reducer>> {
Reducer reducer_; Reducer reducer_;
public: public:
Reduce() {} Reduce() = default;
explicit Reduce(Reducer reducer) explicit Reduce(Reducer reducer)
: reducer_(std::move(reducer)) : reducer_(std::move(reducer))
{} {}
...@@ -1335,7 +1335,7 @@ class Reduce : public Operator<Reduce<Reducer>> { ...@@ -1335,7 +1335,7 @@ class Reduce : public Operator<Reduce<Reducer>> {
*/ */
class Count : public Operator<Count> { class Count : public Operator<Count> {
public: public:
Count() { } Count() = default;
template<class Source, template<class Source,
class Value> class Value>
...@@ -1418,7 +1418,7 @@ class Min : public Operator<Min<Selector, Comparer>> { ...@@ -1418,7 +1418,7 @@ class Min : public Operator<Min<Selector, Comparer>> {
Selector selector_; Selector selector_;
Comparer comparer_; Comparer comparer_;
public: public:
Min() {} Min() = default;
explicit Min(Selector selector) explicit Min(Selector selector)
: selector_(std::move(selector)) : selector_(std::move(selector))
...@@ -1494,7 +1494,7 @@ class Append : public Operator<Append<Collection>> { ...@@ -1494,7 +1494,7 @@ class Append : public Operator<Append<Collection>> {
template<class Collection> template<class Collection>
class Collect : public Operator<Collect<Collection>> { class Collect : public Operator<Collect<Collection>> {
public: public:
Collect() { } Collect() = default;
template<class Value, template<class Value,
class Source, class Source,
...@@ -1528,7 +1528,7 @@ template<template<class, class> class Container, ...@@ -1528,7 +1528,7 @@ template<template<class, class> class Container,
template<class> class Allocator> template<class> class Allocator>
class CollectTemplate : public Operator<CollectTemplate<Container, Allocator>> { class CollectTemplate : public Operator<CollectTemplate<Container, Allocator>> {
public: public:
CollectTemplate() { } CollectTemplate() = default;
template<class Value, template<class Value,
class Source, class Source,
...@@ -1561,7 +1561,7 @@ class CollectTemplate : public Operator<CollectTemplate<Container, Allocator>> { ...@@ -1561,7 +1561,7 @@ class CollectTemplate : public Operator<CollectTemplate<Container, Allocator>> {
*/ */
class Concat : public Operator<Concat> { class Concat : public Operator<Concat> {
public: public:
Concat() { } Concat() = default;
template<class Inner, template<class Inner,
class Source, class Source,
...@@ -1619,7 +1619,7 @@ class Concat : public Operator<Concat> { ...@@ -1619,7 +1619,7 @@ class Concat : public Operator<Concat> {
*/ */
class RangeConcat : public Operator<RangeConcat> { class RangeConcat : public Operator<RangeConcat> {
public: public:
RangeConcat() { } RangeConcat() = default;
template<class Range, template<class Range,
class Source, class Source,
...@@ -1824,7 +1824,7 @@ class Cycle : public Operator<Cycle> { ...@@ -1824,7 +1824,7 @@ class Cycle : public Operator<Cycle> {
*/ */
class Dereference : public Operator<Dereference> { class Dereference : public Operator<Dereference> {
public: public:
Dereference() {} Dereference() = default;
template<class Value, template<class Value,
class Source, class Source,
...@@ -1883,7 +1883,7 @@ class Dereference : public Operator<Dereference> { ...@@ -1883,7 +1883,7 @@ class Dereference : public Operator<Dereference> {
*/ */
class Indirect : public Operator<Indirect> { class Indirect : public Operator<Indirect> {
public: public:
Indirect() {} Indirect() = default;
template <class Value, template <class Value,
class Source, class Source,
...@@ -1997,11 +1997,11 @@ class VirtualGen : public GenImpl<Value, VirtualGen<Value>> { ...@@ -1997,11 +1997,11 @@ class VirtualGen : public GenImpl<Value, VirtualGen<Value>> {
* non-template operators, statically defined to avoid the need for anything but * non-template operators, statically defined to avoid the need for anything but
* the header. * the header.
*/ */
static const detail::Sum sum; static const detail::Sum sum{};
static const detail::Count count; static const detail::Count count{};
static const detail::First first; static const detail::First first{};
/** /**
* Use directly for detecting any values, or as a function to detect values * Use directly for detecting any values, or as a function to detect values
...@@ -2010,21 +2010,21 @@ static const detail::First first; ...@@ -2010,21 +2010,21 @@ static const detail::First first;
* auto nonempty = g | any; * auto nonempty = g | any;
* auto evens = g | any(even); * auto evens = g | any(even);
*/ */
static const detail::Any any; static const detail::Any any{};
static const detail::Min<Identity, Less> min; static const detail::Min<Identity, Less> min{};
static const detail::Min<Identity, Greater> max; static const detail::Min<Identity, Greater> max{};
static const detail::Order<Identity> order; static const detail::Order<Identity> order{};
static const detail::Distinct<Identity> distinct; static const detail::Distinct<Identity> distinct{};
static const detail::Map<Move> move; static const detail::Map<Move> move{};
static const detail::Concat concat; static const detail::Concat concat{};
static const detail::RangeConcat rconcat; static const detail::RangeConcat rconcat{};
/** /**
* Use directly for infinite sequences, or as a function to limit cycle count. * Use directly for infinite sequences, or as a function to limit cycle count.
...@@ -2032,11 +2032,11 @@ static const detail::RangeConcat rconcat; ...@@ -2032,11 +2032,11 @@ static const detail::RangeConcat rconcat;
* auto forever = g | cycle; * auto forever = g | cycle;
* auto thrice = g | cycle(3); * auto thrice = g | cycle(3);
*/ */
static const detail::Cycle cycle; static const detail::Cycle cycle{};
static const detail::Dereference dereference; static const detail::Dereference dereference{};
static const detail::Indirect indirect; static const detail::Indirect indirect{};
inline detail::Take take(size_t count) { inline detail::Take take(size_t count) {
return detail::Take(count); return detail::Take(count);
......
...@@ -203,7 +203,7 @@ class MergeTuples { ...@@ -203,7 +203,7 @@ class MergeTuples {
} // namespace detail } // namespace detail
static const detail::Map<detail::MergeTuples> tuple_flatten; static const detail::Map<detail::MergeTuples> tuple_flatten{};
// TODO(mcurtiss): support zip() for N>1 operands. Because of variadic problems, // TODO(mcurtiss): support zip() for N>1 operands. Because of variadic problems,
// this might not be easily possible until gcc4.8 is available. // this might not be easily possible until gcc4.8 is available.
......
...@@ -304,7 +304,7 @@ class Composed : public Operator<Composed<First, Second>> { ...@@ -304,7 +304,7 @@ class Composed : public Operator<Composed<First, Second>> {
First first_; First first_;
Second second_; Second second_;
public: public:
Composed() {} Composed() = default;
Composed(First first, Second second) Composed(First first, Second second)
: first_(std::move(first)) : first_(std::move(first))
......
...@@ -385,7 +385,7 @@ class ChunkedRangeSource ...@@ -385,7 +385,7 @@ class ChunkedRangeSource
Range<Iterator> range_; Range<Iterator> range_;
public: public:
ChunkedRangeSource() {} ChunkedRangeSource() = default;
ChunkedRangeSource(int chunkSize, Range<Iterator> range) ChunkedRangeSource(int chunkSize, Range<Iterator> range)
: chunkSize_(chunkSize), range_(std::move(range)) {} : chunkSize_(chunkSize), range_(std::move(range)) {}
......
...@@ -45,7 +45,7 @@ class PMap : public Operator<PMap<Predicate>> { ...@@ -45,7 +45,7 @@ class PMap : public Operator<PMap<Predicate>> {
Predicate pred_; Predicate pred_;
size_t nThreads_; size_t nThreads_;
public: public:
PMap() {} PMap() = default;
PMap(Predicate pred, size_t nThreads) PMap(Predicate pred, size_t nThreads)
: pred_(std::move(pred)), : pred_(std::move(pred)),
......
...@@ -83,7 +83,7 @@ class AsyncSSLSocket : public virtual AsyncSocket { ...@@ -83,7 +83,7 @@ class AsyncSSLSocket : public virtual AsyncSocket {
class HandshakeCB { class HandshakeCB {
public: public:
virtual ~HandshakeCB() {} virtual ~HandshakeCB() = default;
/** /**
* handshakeVer() is invoked during handshaking to give the * handshakeVer() is invoked during handshaking to give the
......
...@@ -66,7 +66,7 @@ class AsyncServerSocket : public DelayedDestruction ...@@ -66,7 +66,7 @@ class AsyncServerSocket : public DelayedDestruction
class AcceptCallback { class AcceptCallback {
public: public:
virtual ~AcceptCallback() {} virtual ~AcceptCallback() = default;
/** /**
* connectionAccepted() is called whenever a new client connection is * connectionAccepted() is called whenever a new client connection is
...@@ -614,7 +614,7 @@ class AsyncServerSocket : public DelayedDestruction ...@@ -614,7 +614,7 @@ class AsyncServerSocket : public DelayedDestruction
explicit RemoteAcceptor(AcceptCallback *callback) explicit RemoteAcceptor(AcceptCallback *callback)
: callback_(callback) {} : callback_(callback) {}
~RemoteAcceptor() {} ~RemoteAcceptor() = default;
void start(EventBase *eventBase, uint32_t maxAtOnce, uint32_t maxInQueue); void start(EventBase *eventBase, uint32_t maxAtOnce, uint32_t maxInQueue);
void stop(EventBase* eventBase, AcceptCallback* callback); void stop(EventBase* eventBase, AcceptCallback* callback);
......
...@@ -148,7 +148,7 @@ class AsyncSocket::BytesWriteRequest : public AsyncSocket::WriteRequest { ...@@ -148,7 +148,7 @@ class AsyncSocket::BytesWriteRequest : public AsyncSocket::WriteRequest {
} }
// private destructor, to ensure callers use destroy() // private destructor, to ensure callers use destroy()
virtual ~BytesWriteRequest() {} virtual ~BytesWriteRequest() = default;
const struct iovec* getOps() const { const struct iovec* getOps() const {
assert(opCount_ > opIndex_); assert(opCount_ > opIndex_);
......
...@@ -67,7 +67,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper { ...@@ -67,7 +67,7 @@ class AsyncSocket : virtual public AsyncTransportWrapper {
class ConnectCallback { class ConnectCallback {
public: public:
virtual ~ConnectCallback() {} virtual ~ConnectCallback() = default;
/** /**
* connectSuccess() will be invoked when the connection has been * connectSuccess() will be invoked when the connection has been
......
...@@ -318,7 +318,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase { ...@@ -318,7 +318,7 @@ class AsyncTransport : public DelayedDestruction, public AsyncSocketBase {
virtual size_t getRawBytesReceived() const = 0; virtual size_t getRawBytesReceived() const = 0;
protected: protected:
virtual ~AsyncTransport() {} virtual ~AsyncTransport() = default;
}; };
// Transitional intermediate interface. This is deprecated. // Transitional intermediate interface. This is deprecated.
...@@ -329,7 +329,7 @@ class AsyncTransportWrapper : virtual public AsyncTransport { ...@@ -329,7 +329,7 @@ class AsyncTransportWrapper : virtual public AsyncTransport {
class ReadCallback { class ReadCallback {
public: public:
virtual ~ReadCallback() {} virtual ~ReadCallback() = default;
/** /**
* When data becomes available, getReadBuffer() will be invoked to get the * When data becomes available, getReadBuffer() will be invoked to get the
...@@ -400,7 +400,7 @@ class AsyncTransportWrapper : virtual public AsyncTransport { ...@@ -400,7 +400,7 @@ class AsyncTransportWrapper : virtual public AsyncTransport {
class WriteCallback { class WriteCallback {
public: public:
virtual ~WriteCallback() {} virtual ~WriteCallback() = default;
/** /**
* writeSuccess() will be invoked when all of the data has been * writeSuccess() will be invoked when all of the data has been
......
...@@ -62,7 +62,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback ...@@ -62,7 +62,7 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
std::unique_ptr<folly::IOBuf> buf, std::unique_ptr<folly::IOBuf> buf,
bool truncated) noexcept = 0; bool truncated) noexcept = 0;
virtual ~Callback() {} virtual ~Callback() = default;
}; };
/** /**
......
...@@ -74,7 +74,7 @@ class AsyncUDPSocket : public EventHandler { ...@@ -74,7 +74,7 @@ class AsyncUDPSocket : public EventHandler {
*/ */
virtual void onReadClosed() noexcept = 0; virtual void onReadClosed() noexcept = 0;
virtual ~ReadCallback() {} virtual ~ReadCallback() = default;
}; };
/** /**
......
...@@ -143,7 +143,7 @@ class DelayedDestruction : private boost::noncopyable { ...@@ -143,7 +143,7 @@ class DelayedDestruction : private boost::noncopyable {
* shared_ptr using a DelayedDestruction::Destructor as the second argument * shared_ptr using a DelayedDestruction::Destructor as the second argument
* to the shared_ptr constructor. * to the shared_ptr constructor.
*/ */
virtual ~DelayedDestruction() {} virtual ~DelayedDestruction() = default;
/** /**
* Get the number of DestructorGuards currently protecting this object. * Get the number of DestructorGuards currently protecting this object.
......
...@@ -46,7 +46,7 @@ class NotificationQueue; ...@@ -46,7 +46,7 @@ class NotificationQueue;
class EventBaseObserver { class EventBaseObserver {
public: public:
virtual ~EventBaseObserver() {} virtual ~EventBaseObserver() = default;
virtual uint32_t getSampleRate() const = 0; virtual uint32_t getSampleRate() const = 0;
...@@ -114,7 +114,7 @@ class EventBase : private boost::noncopyable, ...@@ -114,7 +114,7 @@ class EventBase : private boost::noncopyable,
*/ */
class LoopCallback { class LoopCallback {
public: public:
virtual ~LoopCallback() {} virtual ~LoopCallback() = default;
virtual void runLoopCallback() noexcept = 0; virtual void runLoopCallback() noexcept = 0;
void cancelLoopCallback() { void cancelLoopCallback() {
......
...@@ -33,7 +33,7 @@ namespace folly { ...@@ -33,7 +33,7 @@ namespace folly {
class RequestData { class RequestData {
public: public:
virtual ~RequestData() {} virtual ~RequestData() = default;
}; };
class RequestContext; class RequestContext;
......
...@@ -42,7 +42,7 @@ namespace folly { ...@@ -42,7 +42,7 @@ namespace folly {
*/ */
class PasswordCollector { class PasswordCollector {
public: public:
virtual ~PasswordCollector() {} virtual ~PasswordCollector() = default;
/** /**
* Interface for customizing how to collect private key password. * Interface for customizing how to collect private key password.
* *
......
...@@ -41,7 +41,7 @@ class TimeoutManager { ...@@ -41,7 +41,7 @@ class TimeoutManager {
NORMAL NORMAL
}; };
virtual ~TimeoutManager() {} virtual ~TimeoutManager() = default;
/** /**
* Attaches/detaches TimeoutManager to AsyncTimeout * Attaches/detaches TimeoutManager to AsyncTimeout
......
...@@ -382,7 +382,7 @@ public: ...@@ -382,7 +382,7 @@ public:
typedef std::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
explicit small_vector() {} explicit small_vector() = default;
small_vector(small_vector const& o) { small_vector(small_vector const& o) {
auto n = o.size(); auto n = o.size();
......
...@@ -31,7 +31,7 @@ class IConnectionCounter { ...@@ -31,7 +31,7 @@ class IConnectionCounter {
* Decrement the count of client-side connections. * Decrement the count of client-side connections.
*/ */
virtual void onConnectionRemoved() = 0; virtual void onConnectionRemoved() = 0;
virtual ~IConnectionCounter() {} virtual ~IConnectionCounter() = default;
}; };
class SimpleConnectionCounter: public IConnectionCounter { class SimpleConnectionCounter: public IConnectionCounter {
...@@ -44,7 +44,7 @@ class SimpleConnectionCounter: public IConnectionCounter { ...@@ -44,7 +44,7 @@ class SimpleConnectionCounter: public IConnectionCounter {
void onConnectionAdded() override { numConnections_++; } void onConnectionAdded() override { numConnections_++; }
void onConnectionRemoved() override { numConnections_--; } void onConnectionRemoved() override { numConnections_--; }
virtual ~SimpleConnectionCounter() {} virtual ~SimpleConnectionCounter() = default;
protected: protected:
uint64_t maxConnections_{0}; uint64_t maxConnections_{0};
......
...@@ -40,7 +40,7 @@ class ConnectionManager: public folly::DelayedDestruction, ...@@ -40,7 +40,7 @@ class ConnectionManager: public folly::DelayedDestruction,
*/ */
class Callback { class Callback {
public: public:
virtual ~Callback() {} virtual ~Callback() = default;
/** /**
* Invoked when the number of connections managed by the * Invoked when the number of connections managed by the
...@@ -189,7 +189,7 @@ class ConnectionManager: public folly::DelayedDestruction, ...@@ -189,7 +189,7 @@ class ConnectionManager: public folly::DelayedDestruction,
DRAIN2 = 1, DRAIN2 = 1,
}; };
~ConnectionManager() {} ~ConnectionManager() = default;
ConnectionManager(const ConnectionManager&) = delete; ConnectionManager(const ConnectionManager&) = delete;
ConnectionManager& operator=(ConnectionManager&) = delete; ConnectionManager& operator=(ConnectionManager&) = delete;
......
...@@ -39,9 +39,9 @@ class LoadShedConfiguration { ...@@ -39,9 +39,9 @@ class LoadShedConfiguration {
typedef std::set<SocketAddress, AddressOnlyCompare> AddressSet; typedef std::set<SocketAddress, AddressOnlyCompare> AddressSet;
typedef std::set<NetworkAddress> NetworkSet; typedef std::set<NetworkAddress> NetworkSet;
LoadShedConfiguration() {} LoadShedConfiguration() = default;
~LoadShedConfiguration() {} ~LoadShedConfiguration() = default;
void addWhitelistAddr(folly::StringPiece); void addWhitelistAddr(folly::StringPiece);
......
...@@ -38,7 +38,7 @@ class ManagedConnection: ...@@ -38,7 +38,7 @@ class ManagedConnection:
class Callback { class Callback {
public: public:
virtual ~Callback() {} virtual ~Callback() = default;
/* Invoked when this connection becomes busy */ /* Invoked when this connection becomes busy */
virtual void onActivated(ManagedConnection& conn) = 0; virtual void onActivated(ManagedConnection& conn) = 0;
......
...@@ -94,7 +94,7 @@ class ClientBootstrap { ...@@ -94,7 +94,7 @@ class ClientBootstrap {
return pipeline_.get(); return pipeline_.get();
} }
virtual ~ClientBootstrap() {} virtual ~ClientBootstrap() = default;
protected: protected:
std::unique_ptr<Pipeline, std::unique_ptr<Pipeline,
......
...@@ -40,7 +40,7 @@ class ServerAcceptor ...@@ -40,7 +40,7 @@ class ServerAcceptor
pipeline_->setPipelineManager(this); pipeline_->setPipelineManager(this);
} }
~ServerConnection() {} ~ServerConnection() = default;
void timeoutExpired() noexcept override { void timeoutExpired() noexcept override {
} }
......
...@@ -45,7 +45,7 @@ class ServerBootstrap { ...@@ -45,7 +45,7 @@ class ServerBootstrap {
ServerBootstrap(const ServerBootstrap& that) = delete; ServerBootstrap(const ServerBootstrap& that) = delete;
ServerBootstrap(ServerBootstrap&& that) = default; ServerBootstrap(ServerBootstrap&& that) = default;
ServerBootstrap() {} ServerBootstrap() = default;
~ServerBootstrap() { ~ServerBootstrap() {
stop(); stop();
......
...@@ -26,7 +26,7 @@ namespace folly { namespace wangle { ...@@ -26,7 +26,7 @@ namespace folly { namespace wangle {
template <class Context> template <class Context>
class HandlerBase { class HandlerBase {
public: public:
virtual ~HandlerBase() {} virtual ~HandlerBase() = default;
virtual void attachPipeline(Context* ctx) {} virtual void attachPipeline(Context* ctx) {}
virtual void detachPipeline(Context* ctx) {} virtual void detachPipeline(Context* ctx) {}
...@@ -55,7 +55,7 @@ class Handler : public HandlerBase<HandlerContext<Rout, Wout>> { ...@@ -55,7 +55,7 @@ class Handler : public HandlerBase<HandlerContext<Rout, Wout>> {
typedef Win win; typedef Win win;
typedef Wout wout; typedef Wout wout;
typedef HandlerContext<Rout, Wout> Context; typedef HandlerContext<Rout, Wout> Context;
virtual ~Handler() {} virtual ~Handler() = default;
virtual void read(Context* ctx, Rin msg) = 0; virtual void read(Context* ctx, Rin msg) = 0;
virtual void readEOF(Context* ctx) { virtual void readEOF(Context* ctx) {
...@@ -112,7 +112,7 @@ class InboundHandler : public HandlerBase<InboundHandlerContext<Rout>> { ...@@ -112,7 +112,7 @@ class InboundHandler : public HandlerBase<InboundHandlerContext<Rout>> {
typedef Nothing win; typedef Nothing win;
typedef Nothing wout; typedef Nothing wout;
typedef InboundHandlerContext<Rout> Context; typedef InboundHandlerContext<Rout> Context;
virtual ~InboundHandler() {} virtual ~InboundHandler() = default;
virtual void read(Context* ctx, Rin msg) = 0; virtual void read(Context* ctx, Rin msg) = 0;
virtual void readEOF(Context* ctx) { virtual void readEOF(Context* ctx) {
...@@ -139,7 +139,7 @@ class OutboundHandler : public HandlerBase<OutboundHandlerContext<Wout>> { ...@@ -139,7 +139,7 @@ class OutboundHandler : public HandlerBase<OutboundHandlerContext<Wout>> {
typedef Win win; typedef Win win;
typedef Wout wout; typedef Wout wout;
typedef OutboundHandlerContext<Wout> Context; typedef OutboundHandlerContext<Wout> Context;
virtual ~OutboundHandler() {} virtual ~OutboundHandler() = default;
virtual Future<void> write(Context* ctx, Win msg) = 0; virtual Future<void> write(Context* ctx, Win msg) = 0;
virtual Future<void> close(Context* ctx) { virtual Future<void> close(Context* ctx) {
......
...@@ -20,7 +20,7 @@ namespace folly { namespace wangle { ...@@ -20,7 +20,7 @@ namespace folly { namespace wangle {
class PipelineContext { class PipelineContext {
public: public:
virtual ~PipelineContext() {} virtual ~PipelineContext() = default;
virtual void attachPipeline() = 0; virtual void attachPipeline() = 0;
virtual void detachPipeline() = 0; virtual void detachPipeline() = 0;
...@@ -41,7 +41,7 @@ class PipelineContext { ...@@ -41,7 +41,7 @@ class PipelineContext {
template <class In> template <class In>
class InboundLink { class InboundLink {
public: public:
virtual ~InboundLink() {} virtual ~InboundLink() = default;
virtual void read(In msg) = 0; virtual void read(In msg) = 0;
virtual void readEOF() = 0; virtual void readEOF() = 0;
virtual void readException(exception_wrapper e) = 0; virtual void readException(exception_wrapper e) = 0;
...@@ -52,7 +52,7 @@ class InboundLink { ...@@ -52,7 +52,7 @@ class InboundLink {
template <class Out> template <class Out>
class OutboundLink { class OutboundLink {
public: public:
virtual ~OutboundLink() {} virtual ~OutboundLink() = default;
virtual Future<void> write(Out msg) = 0; virtual Future<void> write(Out msg) = 0;
virtual Future<void> close() = 0; virtual Future<void> close() = 0;
}; };
...@@ -60,7 +60,7 @@ class OutboundLink { ...@@ -60,7 +60,7 @@ class OutboundLink {
template <class P, class H, class Context> template <class P, class H, class Context>
class ContextImplBase : public PipelineContext { class ContextImplBase : public PipelineContext {
public: public:
~ContextImplBase() {} ~ContextImplBase() = default;
H* getHandler() { H* getHandler() {
return handler_.get(); return handler_.get();
...@@ -140,7 +140,7 @@ class ContextImpl ...@@ -140,7 +140,7 @@ class ContextImpl
this->impl_ = this; this->impl_ = this;
} }
~ContextImpl() {} ~ContextImpl() = default;
// HandlerContext overrides // HandlerContext overrides
void fireRead(Rout msg) override { void fireRead(Rout msg) override {
...@@ -289,7 +289,7 @@ class InboundContextImpl ...@@ -289,7 +289,7 @@ class InboundContextImpl
this->impl_ = this; this->impl_ = this;
} }
~InboundContextImpl() {} ~InboundContextImpl() = default;
// InboundHandlerContext overrides // InboundHandlerContext overrides
void fireRead(Rout msg) override { void fireRead(Rout msg) override {
...@@ -389,7 +389,7 @@ class OutboundContextImpl ...@@ -389,7 +389,7 @@ class OutboundContextImpl
this->impl_ = this; this->impl_ = this;
} }
~OutboundContextImpl() {} ~OutboundContextImpl() = default;
// OutboundHandlerContext overrides // OutboundHandlerContext overrides
Future<void> fireWrite(Wout msg) override { Future<void> fireWrite(Wout msg) override {
......
...@@ -27,7 +27,7 @@ class PipelineBase; ...@@ -27,7 +27,7 @@ class PipelineBase;
template <class In, class Out> template <class In, class Out>
class HandlerContext { class HandlerContext {
public: public:
virtual ~HandlerContext() {} virtual ~HandlerContext() = default;
virtual void fireRead(In msg) = 0; virtual void fireRead(In msg) = 0;
virtual void fireReadEOF() = 0; virtual void fireReadEOF() = 0;
...@@ -65,7 +65,7 @@ class HandlerContext { ...@@ -65,7 +65,7 @@ class HandlerContext {
template <class In> template <class In>
class InboundHandlerContext { class InboundHandlerContext {
public: public:
virtual ~InboundHandlerContext() {} virtual ~InboundHandlerContext() = default;
virtual void fireRead(In msg) = 0; virtual void fireRead(In msg) = 0;
virtual void fireReadEOF() = 0; virtual void fireReadEOF() = 0;
...@@ -86,7 +86,7 @@ class InboundHandlerContext { ...@@ -86,7 +86,7 @@ class InboundHandlerContext {
template <class Out> template <class Out>
class OutboundHandlerContext { class OutboundHandlerContext {
public: public:
virtual ~OutboundHandlerContext() {} virtual ~OutboundHandlerContext() = default;
virtual Future<void> fireWrite(Out msg) = 0; virtual Future<void> fireWrite(Out msg) = 0;
virtual Future<void> fireClose() = 0; virtual Future<void> fireClose() = 0;
......
...@@ -27,13 +27,13 @@ namespace folly { namespace wangle { ...@@ -27,13 +27,13 @@ namespace folly { namespace wangle {
class PipelineManager { class PipelineManager {
public: public:
virtual ~PipelineManager() {} virtual ~PipelineManager() = default;
virtual void deletePipeline(PipelineBase* pipeline) = 0; virtual void deletePipeline(PipelineBase* pipeline) = 0;
}; };
class PipelineBase : public DelayedDestruction { class PipelineBase : public DelayedDestruction {
public: public:
virtual ~PipelineBase() {} virtual ~PipelineBase() = default;
void setPipelineManager(PipelineManager* manager) { void setPipelineManager(PipelineManager* manager) {
manager_ = manager; manager_ = manager;
...@@ -174,7 +174,7 @@ class PipelineFactory { ...@@ -174,7 +174,7 @@ class PipelineFactory {
virtual std::unique_ptr<Pipeline, folly::DelayedDestruction::Destructor> virtual std::unique_ptr<Pipeline, folly::DelayedDestruction::Destructor>
newPipeline(std::shared_ptr<AsyncSocket>) = 0; newPipeline(std::shared_ptr<AsyncSocket>) = 0;
virtual ~PipelineFactory() {} virtual ~PipelineFactory() = default;
}; };
} }
......
...@@ -23,7 +23,7 @@ namespace folly { namespace wangle { ...@@ -23,7 +23,7 @@ namespace folly { namespace wangle {
template <class T> template <class T>
class BlockingQueue { class BlockingQueue {
public: public:
virtual ~BlockingQueue() {} virtual ~BlockingQueue() = default;
virtual void add(T item) = 0; virtual void add(T item) = 0;
virtual void addWithPriority(T item, int8_t priority) { virtual void addWithPriority(T item, int8_t priority) {
add(std::move(item)); add(std::move(item));
......
...@@ -40,7 +40,7 @@ namespace folly { namespace wangle { ...@@ -40,7 +40,7 @@ namespace folly { namespace wangle {
// IOThreadPoolExecutor will be created and returned. // IOThreadPoolExecutor will be created and returned.
class IOExecutor : public virtual Executor { class IOExecutor : public virtual Executor {
public: public:
virtual ~IOExecutor() {} virtual ~IOExecutor() = default;
virtual EventBase* getEventBase() = 0; virtual EventBase* getEventBase() = 0;
}; };
......
...@@ -23,7 +23,7 @@ namespace folly { namespace wangle { ...@@ -23,7 +23,7 @@ namespace folly { namespace wangle {
class ThreadFactory { class ThreadFactory {
public: public:
virtual ~ThreadFactory() {} virtual ~ThreadFactory() = default;
virtual std::thread newThread(Func&& func) = 0; virtual std::thread newThread(Func&& func) = 0;
}; };
......
...@@ -129,7 +129,7 @@ class ThreadPoolExecutor : public virtual Executor { ...@@ -129,7 +129,7 @@ class ThreadPoolExecutor : public virtual Executor {
idle(true), idle(true),
taskStatsSubject(pool->taskStatsSubject_) {} taskStatsSubject(pool->taskStatsSubject_) {}
virtual ~Thread() {} virtual ~Thread() = default;
static std::atomic<uint64_t> nextId; static std::atomic<uint64_t> nextId;
uint64_t id; uint64_t id;
......
...@@ -24,7 +24,7 @@ namespace folly { namespace wangle { ...@@ -24,7 +24,7 @@ namespace folly { namespace wangle {
template <class T> template <class T>
class Subscription { class Subscription {
public: public:
Subscription() {} Subscription() = default;
Subscription(const Subscription&) = delete; Subscription(const Subscription&) = delete;
......
...@@ -33,7 +33,7 @@ template <typename Req, typename Resp = Req> ...@@ -33,7 +33,7 @@ template <typename Req, typename Resp = Req>
class Service { class Service {
public: public:
virtual Future<Resp> operator()(Req request) = 0; virtual Future<Resp> operator()(Req request) = 0;
virtual ~Service() {} virtual ~Service() = default;
virtual Future<void> close() { virtual Future<void> close() {
return makeFuture(); return makeFuture();
} }
...@@ -67,7 +67,7 @@ class ServiceFilter : public Service<ReqA, RespA> { ...@@ -67,7 +67,7 @@ class ServiceFilter : public Service<ReqA, RespA> {
public: public:
explicit ServiceFilter(std::shared_ptr<Service<ReqB, RespB>> service) explicit ServiceFilter(std::shared_ptr<Service<ReqB, RespB>> service)
: service_(service) {} : service_(service) {}
virtual ~ServiceFilter() {} virtual ~ServiceFilter() = default;
virtual Future<void> close() override { virtual Future<void> close() override {
return service_->close(); return service_->close();
...@@ -132,7 +132,7 @@ class FactoryToService : public Service<Req, Resp> { ...@@ -132,7 +132,7 @@ class FactoryToService : public Service<Req, Resp> {
explicit FactoryToService( explicit FactoryToService(
std::shared_ptr<ServiceFactory<Pipeline, Req, Resp>> factory) std::shared_ptr<ServiceFactory<Pipeline, Req, Resp>> factory)
: factory_(factory) {} : factory_(factory) {}
virtual ~FactoryToService() {} virtual ~FactoryToService() = default;
virtual Future<Resp> operator()(Req request) override { virtual Future<Resp> operator()(Req request) override {
DCHECK(factory_); DCHECK(factory_);
......
...@@ -33,7 +33,7 @@ public: ...@@ -33,7 +33,7 @@ public:
folly::DelayedDestruction::DestructorGuard> guard; folly::DelayedDestruction::DestructorGuard> guard;
} CacheContext; } CacheContext;
virtual ~SSLCacheProvider() {} virtual ~SSLCacheProvider() = default;
/** /**
* Store a session in the external cache. * Store a session in the external cache.
......
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
namespace folly { namespace folly {
struct SSLContextConfig { struct SSLContextConfig {
SSLContextConfig() {} SSLContextConfig() = default;
~SSLContextConfig() {} ~SSLContextConfig() = default;
struct CertificateInfo { struct CertificateInfo {
CertificateInfo(const std::string& crtPath, CertificateInfo(const std::string& crtPath,
......
...@@ -144,7 +144,7 @@ std::string flattenList(const std::list<std::string>& list) { ...@@ -144,7 +144,7 @@ std::string flattenList(const std::list<std::string>& list) {
} }
SSLContextManager::~SSLContextManager() {} SSLContextManager::~SSLContextManager() = default;
SSLContextManager::SSLContextManager( SSLContextManager::SSLContextManager(
EventBase* eventBase, EventBase* eventBase,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment