1 // ==========================================================================
2 //                 SeqAn - The Library for Sequence Analysis
3 // ==========================================================================
4 // Copyright (c) 2006-2018, Knut Reinert, FU Berlin
5 // All rights reserved.
6 //
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions are met:
9 //
10 //     * Redistributions of source code must retain the above copyright
11 //       notice, this list of conditions and the following disclaimer.
12 //     * Redistributions in binary form must reproduce the above copyright
13 //       notice, this list of conditions and the following disclaimer in the
14 //       documentation and/or other materials provided with the distribution.
15 //     * Neither the name of Knut Reinert or the FU Berlin nor the names of
16 //       its contributors may be used to endorse or promote products derived
17 //       from this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
23 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29 // DAMAGE.
30 //
31 // ==========================================================================
32 // Author: Manuel Holtgrewe <manuel.holtgrewe@fu-berlin.de>
33 // ==========================================================================
34 // Facade hader for the submodule basic_fundamental.
35 //
36 // This module contains fundamental code such as forward declarations and
37 // prototypes for common metafunctions like Value<>, functions assign() etc.
38 // ==========================================================================
39 
40 #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_FUNDAMENTAL_H_
41 #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_FUNDAMENTAL_H_
42 
43 // --------------------------------------------------------------------------
44 // Prerequisites
45 // --------------------------------------------------------------------------
46 
47 #include <algorithm>
48 
49 #include <seqan/platform.h>
50 #include <seqan/basic/basic_metaprogramming.h>
51 
52 // --------------------------------------------------------------------------
53 // Sub Module Headers
54 // --------------------------------------------------------------------------
55 
56 // Macros for deprecating code.
57 #include <seqan/basic/macro_deprecated.h>
58 
59 // Pseudo header with documentation for builtin functions.
60 #include <seqan/basic/builtin_functions.h>
61 
62 // Common metafunctions such as Value<>.
63 #include <seqan/basic/fundamental_metafunctions.h>
64 
65 // Basic tag-related code.
66 #include <seqan/basic/fundamental_tags.h>
67 
68 // Functions and metafunctions to use contiguous chunks of memory
69 #include <seqan/basic/fundamental_chunking.h>
70 
71 // Definition of assign(), set(), move().
72 #include <seqan/basic/fundamental_transport.h>
73 
74 // Code supporting comparison.
75 #include <seqan/basic/fundamental_comparison.h>
76 
77 // Conversion support.
78 #include <seqan/basic/fundamental_conversion.h>
79 
80 // TODO(holtgrew): This is not fundamental.  Should go into sequence module.
81 // Construct/destruct functions for arrays.
82 #include <seqan/basic/array_construct_destruct.h>
83 
84 // TODO(holtgrew): This is not really fundamental, either. Should go into its own sub module.
85 // Hosted type.
86 #include <seqan/basic/hosted_type_interface.h>
87 
88 #endif  // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_HOSTED_TYPE_INTERFACE_H_
89