| 128 | // Detect if type has get() method (smart pointers) |
| 129 | template<typename T> |
| 130 | class has_get { |
| 131 | template<typename C> static auto test(int) -> decltype(fl::declval<C>().get(), fl::true_type()); |
| 132 | template<typename> static fl::false_type test(...); |
| 133 | public: |
| 134 | static constexpr bool value = fl::is_same<decltype(test<T>(0)), fl::true_type>::value; |
| 135 | }; |
| 136 | |
| 137 | // Detect if type has pop(T&) method (circular buffers) |
| 138 | template<typename T> |