IteratorTraits.ih
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
14 /** \file
15  \brief IteratorTraits internal header */
16 
17 #ifndef IH_SENF_Utils_IteratorTraits_
18 #define IH_SENF_Utils_IteratorTraits_ 1
19 
20 // Custom includes
21 
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
23 
24 namespace senf {
25 
26  // It is not very nice that we need to specialize on the exact iterator names. The preprocessor
27  // guard will need to be expanded by also giving the correct version numbers. The problem is,
28  // that typedefs are not expanded when specializing ...
29 
30 #if defined(__GNUG__)
31  template <class T, class Alloc>
32  struct contiguous_storage_iterator<
33  ::__gnu_cxx::__normal_iterator<T*, std::vector<T,Alloc> > >
34  : public boost::true_type
35  {};
36 
37  template <class CharT, class Traits, class Alloc>
38  struct contiguous_storage_iterator<
39  ::__gnu_cxx::__normal_iterator<CharT*, std::basic_string<CharT, Traits, Alloc> > >
40  : public boost::true_type
41  {};
42 #endif
43 
44 }
45 
46 //-/////////////////////////////////////////////////////////////////////////////////////////////////
47 #endif
48 
49 
50 // Local Variables:
51 // mode: c++
52 // fill-column: 100
53 // c-file-style: "senf"
54 // indent-tabs-mode: nil
55 // ispell-local-dictionary: "american"
56 // compile-command: "scons -u test"
57 // comment-column: 40
58 // End: