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:
Laurent Pinchart 2020-02-16 02:10:10 +02:00
parent 68daa9302f
commit b5eff18f1a
4 changed files with 11 additions and 11 deletions

View file

@ -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_; }

View file

@ -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)
{ {

View file

@ -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

View file

@ -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));
} }