Skip to content

Commit 8c23496

Browse files
committed
[core] fix strange code duplication
1 parent 6a33397 commit 8c23496

1 file changed

Lines changed: 0 additions & 52 deletions

File tree

src/Core/Utils/TypesUtils.hpp

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -54,32 +54,6 @@ std::false_type is_container_impl( ... );
5454
template <typename T>
5555
using is_container = decltype( detail::is_container_impl<T>( 0 ) );
5656

57-
// Check if a type is a container with access to its element type and number
58-
// adapted from https://stackoverflow.com/questions/13830158/check-if-a-variable-type-is-iterable
59-
namespace detail {
60-
61-
using std::begin;
62-
using std::end;
63-
64-
template <typename T>
65-
auto is_container_impl( int )
66-
-> decltype( begin( std::declval<T&>() ) !=
67-
end( std::declval<T&>() ), // begin/end and operator !=
68-
void(), // Handle evil operator ,
69-
std::declval<T&>().empty(),
70-
std::declval<T&>().size(),
71-
++std::declval<decltype( begin( std::declval<T&>() ) )&>(), // operator ++
72-
void( *begin( std::declval<T&>() ) ), // operator*
73-
std::true_type {} );
74-
75-
template <typename T>
76-
std::false_type is_container_impl( ... );
77-
78-
} // namespace detail
79-
80-
template <typename T>
81-
using is_container = decltype( detail::is_container_impl<T>( 0 ) );
82-
8357
// TypeList taken and adapted from
8458
// https://github.com/AcademySoftwareFoundation/openvdb/blob/master/openvdb/openvdb/TypeList.h
8559
// Only took small part of TypeList utilities
@@ -190,32 +164,6 @@ std::string demangleType( const T& ) noexcept {
190164
return demangleType<T>();
191165
}
192166

193-
// Check if a type is a container with access to its element type and number
194-
// adapted from https://stackoverflow.com/questions/13830158/check-if-a-variable-type-is-iterable
195-
namespace detail {
196-
197-
using std::begin;
198-
using std::end;
199-
200-
template <typename T>
201-
auto is_container_impl( int )
202-
-> decltype( begin( std::declval<T&>() ) !=
203-
end( std::declval<T&>() ), // begin/end and operator !=
204-
void(), // Handle evil operator ,
205-
std::declval<T&>().empty(),
206-
std::declval<T&>().size(),
207-
++std::declval<decltype( begin( std::declval<T&>() ) )&>(), // operator ++
208-
void( *begin( std::declval<T&>() ) ), // operator*
209-
std::true_type {} );
210-
211-
template <typename T>
212-
std::false_type is_container_impl( ... );
213-
214-
} // namespace detail
215-
216-
template <typename T>
217-
using is_container = decltype( detail::is_container_impl<T>( 0 ) );
218-
219167
} // namespace Utils
220168
} // namespace Core
221169
} // namespace Ra

0 commit comments

Comments
 (0)