Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 namespace Gecode {
00039
00046
00047 class EmptyValSelChoice {
00048 public:
00050 size_t size(void) const;
00051 };
00052
00058 template<class _View, class _Val>
00059 class ValSelBase {
00060 public:
00062 typedef _View View;
00064 typedef _Val Val;
00066 typedef EmptyValSelChoice Choice;
00068 static const unsigned int alternatives = 2;
00070 ValSelBase(void);
00072 ValSelBase(Space& home, const ValBranchOptions& vbo);
00074 EmptyValSelChoice choice(Space& home);
00076 void commit(Space& home, const EmptyValSelChoice& c, unsigned a);
00078 void update(Space& home, bool share, ValSelBase& vs);
00080 void dispose(Space& home);
00081 };
00083
00084
00085
00086 forceinline size_t
00087 EmptyValSelChoice::size(void) const {
00088 return sizeof(EmptyValSelChoice);
00089 }
00090
00091
00092 template<class View, class Val>
00093 forceinline
00094 ValSelBase<View,Val>::ValSelBase(void) {}
00095 template<class View, class Val>
00096 forceinline
00097 ValSelBase<View,Val>::ValSelBase(Space&, const ValBranchOptions&) {}
00098 template<class View, class Val>
00099 forceinline EmptyValSelChoice
00100 ValSelBase<View,Val>::choice(Space&) {
00101 EmptyValSelChoice c; return c;
00102 }
00103 template<class View, class Val>
00104 forceinline void
00105 ValSelBase<View,Val>::commit(Space&, const EmptyValSelChoice&, unsigned int) {}
00106 template<class View, class Val>
00107 forceinline void
00108 ValSelBase<View,Val>::update(Space&, bool, ValSelBase<View,Val>&) {}
00109 template<class View, class Val>
00110 forceinline void
00111 ValSelBase<View,Val>::dispose(Space&) {}
00112
00113 }
00114
00115