initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / src / OpenFOAM / primitives / contiguous / contiguous.H
blob2413b67127ad43397e1b76d797512d705d342e08
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 InClass
26     Foam::contiguous
28 Description
29     Template function which specifies if the data of the type is contiguous
30     or not.
32     The default function specifies that data are not contiguous.
33     This is specialised for the types (e.g. primitives) for which their
34     data are contiguous.
36 \*---------------------------------------------------------------------------*/
38 #ifndef contiguous_H
39 #define contiguous_H
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 // Assume the data associated with type T is not contiguous
49 template<class T>
50 inline bool contiguous()              {return false;}
53 // Specify data associated with primitive types is contiguous
55 template<>
56 inline bool contiguous<bool>()        {return true;}
58 template<>
59 inline bool contiguous<char>()        {return true;}
61 template<>
62 inline bool contiguous<short>()       {return true;}
64 template<>
65 inline bool contiguous<int>()         {return true;}
67 template<>
68 inline bool contiguous<long>()        {return true;}
70 template<>
71 inline bool contiguous<float>()       {return true;}
73 template<>
74 inline bool contiguous<double>()      {return true;}
76 template<>
77 inline bool contiguous<long double>() {return true;}
80 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
82 } // End namespace Foam
84 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86 #endif
88 // ************************************************************************* //