File indexing completed on 2024-04-06 11:56:19
0001 #ifndef GENERS_IOISSHAREDPTR_HH_
0002 #define GENERS_IOISSHAREDPTR_HH_
0003
0004 #include <memory>
0005
0006 namespace gs {
0007 template <class T>
0008 struct IOIsSharedPtr {
0009 enum { value = 0 };
0010 };
0011
0012 template <class T>
0013 struct IOIsSharedPtr<std::shared_ptr<T>> {
0014 enum { value = 1 };
0015 };
0016
0017 template <class T>
0018 struct IOIsSharedPtr<const std::shared_ptr<T>> {
0019 enum { value = 1 };
0020 };
0021
0022 template <class T>
0023 struct IOIsSharedPtr<volatile std::shared_ptr<T>> {
0024 enum { value = 1 };
0025 };
0026
0027 template <class T>
0028 struct IOIsSharedPtr<const volatile std::shared_ptr<T>> {
0029 enum { value = 1 };
0030 };
0031 }
0032
0033 #endif