AutoPas  3.0.0
Loading...
Searching...
No Matches
isSmartPointer.h
Go to the documentation of this file.
1
7#pragma once
8
9#include "memory"
10
11namespace autopas::utils {
12
17template <typename T>
18struct is_shared_ptr : std::false_type {};
23template <typename T>
24struct is_shared_ptr<std::shared_ptr<T>> : std::true_type {};
25
30template <typename T>
31struct is_unique_ptr : std::false_type {};
36template <typename T>
37struct is_unique_ptr<std::unique_ptr<T>> : std::true_type {};
38
43template <typename T>
44struct is_smart_ptr : std::false_type {};
49template <typename T>
50struct is_smart_ptr<std::unique_ptr<T>> : std::true_type {};
55template <typename T>
56struct is_smart_ptr<std::shared_ptr<T>> : std::true_type {};
61template <typename T>
62struct is_smart_ptr<std::weak_ptr<T>> : std::true_type {};
63} // namespace autopas::utils
In this namespace some helper classes and functions can be found used inside of AutoPas.
Definition: namespaces.h:44
Type trait to determine if a type is a shared pointer at compile time.
Definition: isSmartPointer.h:18
Type trait to determine if a type is a smart pointer at compile time.
Definition: isSmartPointer.h:44
Type trait to determine if a type is a unique pointer at compile time.
Definition: isSmartPointer.h:31