12 #ifndef ECL_CONCEPTS_CONCEPTS_CONTAINERS_HPP_ 13 #define ECL_CONCEPTS_CONCEPTS_CONTAINERS_HPP_ 20 #include <ecl/type_traits/fundamental_types.hpp> 36 template <
typename Implementation>
37 class ContainerConcept {
63 typename Implementation::iterator
iter;
68 template <
typename Implementation>
69 class DynamicContainerConcept {
97 typename Implementation::iterator
iter;
114 template <
typename T,
bool Result=false>
115 class SignedByteTest {
129 template <
typename T>
130 class SignedByteTest<T,true> {
144 template <
typename T,
bool Result=false>
145 class UnsignedByteTest {
147 UnsignedByteTest() {}
159 template <
typename T>
160 class UnsignedByteTest<T,true> {
162 UnsignedByteTest() {}
171 template <
typename T>
172 class SignedByteTestCheck :
public SignedByteTest<T, ecl::is_signed_byte<T>::value > {};
180 template <
typename T>
181 class UnsignedByteTestCheck :
public UnsignedByteTest<T, ecl::is_unsigned_byte<T>::value > {};
191 template <
typename T>
206 class ByteTest<unsigned char> {
214 class ByteTest<char> {
223 class ByteTest<signed char> {
236 template <
typename Implementation>
237 class UnsignedByteContainerConcept {
251 typedef typename Implementation::value_type element_type;
257 concepts::UnsignedByteTestCheck<element_type> char_test;
265 typename Implementation::iterator
iter;
271 template <
typename Implementation>
272 class SignedByteContainerConcept {
286 typedef typename Implementation::value_type element_type;
292 concepts::SignedByteTestCheck<element_type> char_test;
299 typename Implementation::iterator
iter;
307 template <
typename Implementation>
308 class ByteContainerConcept {
322 typedef typename Implementation::value_type element_type;
328 concepts::ByteTest<element_type> char_test;
336 typename Implementation::iterator
iter;
Pre-processed macro definitions that define the target platform.
ecl_compile_time_concept_test(ContainerConcept)
Implementation::iterator iter