feat add attributes
This commit is contained in:
@@ -345,7 +345,12 @@ public:
|
||||
{}
|
||||
|
||||
template<typename ValueType>
|
||||
inline Any(ValueType &&value) : value_(std::move(value))
|
||||
inline Any(
|
||||
ValueType &&value,
|
||||
typename std::enable_if<!std::is_same<Any &, ValueType>::value>::type
|
||||
* = 0,
|
||||
typename std::enable_if<!std::is_const<ValueType>::value>::type * = 0)
|
||||
: value_(std::forward<ValueType &&>(value))
|
||||
{}
|
||||
|
||||
// ~Any() noexcept {}
|
||||
@@ -371,13 +376,13 @@ public:
|
||||
}
|
||||
|
||||
template<typename ValueType>
|
||||
inline auto Cast() const -> ValueType
|
||||
inline auto Cast() const -> ValueType const
|
||||
{
|
||||
return any_cast<ValueType>(value_);
|
||||
}
|
||||
|
||||
template<typename ValueType>
|
||||
inline auto Cast() -> ValueType
|
||||
inline ValueType Cast() const &&
|
||||
{
|
||||
return any_cast<ValueType>(value_);
|
||||
}
|
||||
@@ -414,8 +419,9 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
private:
|
||||
any value_;
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
}// namespace sled
|
||||
|
5
include/sled/lang/attributes.h
Normal file
5
include/sled/lang/attributes.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
#ifndef SLED_LANG_ATTRIBUTES_H
|
||||
#define SLED_LANG_ATTRIBUTES_H
|
||||
#define SLED_DEPRECATED __attribute__((deprecated))
|
||||
#endif// SLED_LANG_ATTRIBUTES_H
|
@@ -9,6 +9,7 @@
|
||||
#ifndef SLED_SYNCHRONIZATION_MUTEX_H
|
||||
#define SLED_SYNCHRONIZATION_MUTEX_H
|
||||
|
||||
#include "sled/lang/attributes.h"
|
||||
#include "sled/units/time_delta.h"
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
@@ -75,7 +76,7 @@ private:
|
||||
template<typename TLock,
|
||||
typename std::enable_if<internal::HasLockAndUnlock<TLock>::value,
|
||||
TLock>::type * = nullptr>
|
||||
class LockGuard final {
|
||||
class SLED_DEPRECATED LockGuard final {
|
||||
public:
|
||||
LockGuard(const LockGuard &) = delete;
|
||||
LockGuard &operator=(const LockGuard &) = delete;
|
||||
@@ -89,23 +90,23 @@ private:
|
||||
friend class ConditionVariable;
|
||||
};
|
||||
|
||||
class MutexGuard final {
|
||||
class MutexLock final {
|
||||
public:
|
||||
MutexGuard(Mutex *mutex) : lock_(*mutex) {}
|
||||
MutexLock(Mutex *mutex) : lock_(*mutex) {}
|
||||
|
||||
MutexGuard(const MutexGuard &) = delete;
|
||||
MutexGuard &operator=(const MutexGuard &) = delete;
|
||||
MutexLock(const MutexLock &) = delete;
|
||||
MutexLock &operator=(const MutexLock &) = delete;
|
||||
|
||||
private:
|
||||
friend class ConditionVariable;
|
||||
marl::lock lock_;
|
||||
};
|
||||
|
||||
using MutexLock = MutexGuard;
|
||||
using MutexGuard SLED_DEPRECATED = MutexLock;
|
||||
// using MutexGuard = marl::lock;
|
||||
// using MutexLock = LockGuard<Mutex>;
|
||||
// using MutexGuard = LockGuard<Mutex>;
|
||||
using RecursiveMutexLock = LockGuard<RecursiveMutex>;
|
||||
using RecursiveMutexLock SLED_DEPRECATED = LockGuard<RecursiveMutex>;
|
||||
|
||||
// class MutexLock final {
|
||||
// public:
|
||||
|
Reference in New Issue
Block a user