mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-26 01:55:51 +03:00
libcamera: Use C++14 std::*_t type traits
C++14 introduced useful type traits helpers named std::*_t as aliases to std::*<...>::type. Use them to simplify the code. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
parent
68daa9302f
commit
b5eff18f1a
4 changed files with 11 additions and 11 deletions
|
@ -38,7 +38,7 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<typename std::remove_reference<Args>::type...> args_;
|
std::tuple<typename std::remove_reference_t<Args>...> args_;
|
||||||
R ret_;
|
R ret_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<typename std::remove_reference<Args>::type...> args_;
|
std::tuple<typename std::remove_reference_t<Args>...> args_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class BoundMethodBase
|
class BoundMethodBase
|
||||||
|
@ -63,7 +63,7 @@ public:
|
||||||
}
|
}
|
||||||
virtual ~BoundMethodBase() {}
|
virtual ~BoundMethodBase() {}
|
||||||
|
|
||||||
template<typename T, typename std::enable_if<!std::is_same<Object, T>::value>::type * = nullptr>
|
template<typename T, typename std::enable_if_t<!std::is_same<Object, T>::value> * = nullptr>
|
||||||
bool match(T *obj) { return obj == obj_; }
|
bool match(T *obj) { return obj == obj_; }
|
||||||
bool match(Object *object) { return object == object_; }
|
bool match(Object *object) { return object == object_; }
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ public:
|
||||||
void postMessage(std::unique_ptr<Message> msg);
|
void postMessage(std::unique_ptr<Message> msg);
|
||||||
|
|
||||||
template<typename T, typename R, typename... FuncArgs, typename... Args,
|
template<typename T, typename R, typename... FuncArgs, typename... Args,
|
||||||
typename std::enable_if<std::is_base_of<Object, T>::value>::type * = nullptr>
|
typename std::enable_if_t<std::is_base_of<Object, T>::value> * = nullptr>
|
||||||
R invokeMethod(R (T::*func)(FuncArgs...), ConnectionType type,
|
R invokeMethod(R (T::*func)(FuncArgs...), ConnectionType type,
|
||||||
Args... args)
|
Args... args)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,7 +45,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __DOXYGEN__
|
#ifndef __DOXYGEN__
|
||||||
template<typename T, typename R, typename std::enable_if<std::is_base_of<Object, T>::value>::type * = nullptr>
|
template<typename T, typename R, typename std::enable_if_t<std::is_base_of<Object, T>::value> * = nullptr>
|
||||||
void connect(T *obj, R (T::*func)(Args...),
|
void connect(T *obj, R (T::*func)(Args...),
|
||||||
ConnectionType type = ConnectionTypeAuto)
|
ConnectionType type = ConnectionTypeAuto)
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ public:
|
||||||
SignalBase::connect(new BoundMethodMember<T, void, Args...>(obj, object, func, type));
|
SignalBase::connect(new BoundMethodMember<T, void, Args...>(obj, object, func, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, typename R, typename std::enable_if<!std::is_base_of<Object, T>::value>::type * = nullptr>
|
template<typename T, typename R, typename std::enable_if_t<!std::is_base_of<Object, T>::value> * = nullptr>
|
||||||
#else
|
#else
|
||||||
template<typename T, typename R>
|
template<typename T, typename R>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -42,20 +42,20 @@ LOG_DEFINE_CATEGORY(IPAModule)
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
typename std::remove_extent<T>::type *elfPointer(void *map, off_t offset,
|
typename std::remove_extent_t<T> *elfPointer(void *map, off_t offset,
|
||||||
size_t fileSize, size_t objSize)
|
size_t fileSize, size_t objSize)
|
||||||
{
|
{
|
||||||
size_t size = offset + objSize;
|
size_t size = offset + objSize;
|
||||||
if (size > fileSize || size < objSize)
|
if (size > fileSize || size < objSize)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
return reinterpret_cast<typename std::remove_extent<T>::type *>
|
return reinterpret_cast<typename std::remove_extent_t<T> *>
|
||||||
(static_cast<char *>(map) + offset);
|
(static_cast<char *>(map) + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
typename std::remove_extent<T>::type *elfPointer(void *map, off_t offset,
|
typename std::remove_extent_t<T> *elfPointer(void *map, off_t offset,
|
||||||
size_t fileSize)
|
size_t fileSize)
|
||||||
{
|
{
|
||||||
return elfPointer<T>(map, offset, fileSize, sizeof(T));
|
return elfPointer<T>(map, offset, fileSize, sizeof(T));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue