array-traits.hpp
Go to the documentation of this file.00001 /* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */ 00002 /* 00003 * Main authors: 00004 * Christian Schulte <schulte@gecode.org> 00005 * Vincent Barichard <Vincent.Barichard@univ-angers.fr> 00006 * 00007 * Copyright: 00008 * Christian Schulte, 2005 00009 * Vincent Barichard, 2012 00010 * 00011 * This file is part of Gecode, the generic constraint 00012 * development environment: 00013 * http://www.gecode.org 00014 * 00015 * Permission is hereby granted, free of charge, to any person obtaining 00016 * a copy of this software and associated documentation files (the 00017 * "Software"), to deal in the Software without restriction, including 00018 * without limitation the rights to use, copy, modify, merge, publish, 00019 * distribute, sublicense, and/or sell copies of the Software, and to 00020 * permit persons to whom the Software is furnished to do so, subject to 00021 * the following conditions: 00022 * 00023 * The above copyright notice and this permission notice shall be 00024 * included in all copies or substantial portions of the Software. 00025 * 00026 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00027 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00028 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00029 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 00030 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 00031 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00032 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00033 * 00034 */ 00035 00036 namespace Gecode { 00037 00038 class FloatVarArgs; 00039 class FloatVarArray; 00040 class FloatValArgs; 00041 00043 template<> 00044 class ArrayTraits<VarArgArray<FloatVar> > { 00045 public: 00046 typedef FloatVarArgs StorageType; 00047 typedef FloatVar ValueType; 00048 typedef FloatVarArgs ArgsType; 00049 }; 00050 00052 template<> 00053 class ArrayTraits<VarArray<FloatVar> > { 00054 public: 00055 typedef FloatVarArray StorageType; 00056 typedef FloatVar ValueType; 00057 typedef FloatVarArgs ArgsType; 00058 }; 00059 00061 template<> 00062 class ArrayTraits<ArgArray<FloatVal> > { 00063 public: 00064 typedef FloatValArgs StorageType; 00065 typedef FloatVal ValueType; 00066 typedef FloatValArgs ArgsType; 00067 }; 00068 00070 template<> 00071 class ArrayTraits<FloatVarArray> { 00072 public: 00073 typedef FloatVarArray StorageType; 00074 typedef FloatVar ValueType; 00075 typedef FloatVarArgs ArgsType; 00076 }; 00077 00079 template<> 00080 class ArrayTraits<FloatVarArgs> { 00081 public: 00082 typedef FloatVarArgs StorageType; 00083 typedef FloatVar ValueType; 00084 typedef FloatVarArgs ArgsType; 00085 }; 00086 00088 template<> 00089 class ArrayTraits<FloatValArgs> { 00090 public: 00091 typedef FloatValArgs StorageType; 00092 typedef FloatVal ValueType; 00093 typedef FloatValArgs ArgsType; 00094 }; 00095 00096 } 00097 00098 // STATISTICS: float-other