75 template<
class ViewSel>
89 typename ViewSel::View
view(
const Pos& p)
const;
112 template<
class ViewSel,
class ValSel>
143 template<
class ViewSel>
149 const typename ViewSel::Choice _viewchoice;
153 const typename ViewSel::Choice& viewc);
155 const Pos&
pos(
void)
const;
157 const typename ViewSel::Choice& viewchoice(
void)
const;
159 virtual size_t size(
void)
const;
161 virtual void archive(
Archive& e)
const;
165 template<
class ViewSel,
class ValSel>
169 const typename ValSel::Choice _valchoice;
171 const typename ValSel::Val _val;
175 const typename ViewSel::Choice& viewc,
176 const typename ValSel::Choice& valc,
177 const typename ValSel::Val& n);
179 const typename ValSel::Choice& valchoice(
void)
const;
181 const typename ValSel::Val& val(
void)
const;
183 virtual size_t size(
void)
const;
185 virtual void archive(
Archive& e)
const;
204 template<
class ViewSel>
208 const typename ViewSel::Choice& viewc)
209 :
Choice(b,a), _pos(p), _viewchoice(viewc) {}
210 template<
class ViewSel>
215 template<
class ViewSel>
220 template<
class ViewSel>
225 template<
class ViewSel>
230 _viewchoice.archive(e);
237 template<
class ViewSel,
class ValSel>
241 const typename ViewSel::Choice& viewc,
242 const typename ValSel::Choice& valc,
243 const typename ValSel::Val& n)
244 :
PosChoice<ViewSel>(b,ValSel::alternatives,p,viewc),
245 _valchoice(valc), _val(n) {}
247 template<
class ViewSel,
class ValSel>
253 template<
class ViewSel,
class ValSel>
259 template<
class ViewSel,
class ValSel>
265 template<
class ViewSel,
class ValSel>
269 _valchoice.archive(e);
278 template<
class ViewSel>
283 :
Brancher(home), x(x0), start(0), viewsel(vi_s), bf(bf0) {}
286 template<
class ViewSel>
290 :
Brancher(home,share,b), start(b.start), bf(b.bf) {
295 template<
class ViewSel>
299 for (
int i=start;
i < x.
size();
i++)
305 for (
int i=start;
i < x.
size();
i++) {
306 typename ViewSel::View::VarType y(x[
i].varimp());
316 template<
class ViewSel>
322 if (viewsel.init(home,x[b]) !=
VSS_BEST)
323 for (; i < x.size(); i++)
325 switch (viewsel.select(home,x[i])) {
336 template<
class ViewSel>
342 template<
class ViewSel>
345 viewsel.dispose(home);
357 template<
class ViewSel,
class ValSel>
362 :
ViewBrancher<ViewSel>(home,x,vi_s,bf), valsel(va_s) {}
364 template<
class ViewSel,
class ValSel>
372 template<
class ViewSel,
class ValSel>
380 template<
class ViewSel,
class ValSel>
387 template<
class ViewSel,
class ValSel>
392 typename ValSel::Val val(valsel.val(home,v));
395 viewsel.choice(home),valsel.choice(home),val);
398 template<
class ViewSel,
class ValSel>
402 typename ViewSel::Choice viewsc = viewsel.choice(home,e);
403 typename ValSel::Choice valsc = valsel.choice(home,e);
404 typename ValSel::Val val; e >> val;
408 template<
class ViewSel,
class ValSel>
414 typename ValSel::View
421 template<
class ViewSel,
class ValSel>
424 valsel.dispose(home);