diff options
Diffstat (limited to 'TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h')
-rw-r--r-- | TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h index 0acee732492..0dee418ab26 100644 --- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h +++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/DeCoRAM/src/Combination_T.h @@ -18,6 +18,7 @@ #include <algorithm> + template <class ITERATOR> inline bool next_combination (ITERATOR base_begin, @@ -35,7 +36,7 @@ next_combination (ITERATOR base_begin, --temp_comb_end; for (ITERATOR it = temp_comb_end; - it != comb_begin || it == comb_begin; + it != comb_begin && base_it != base_begin; --it, --base_it) { if (*it == *base_it) @@ -43,7 +44,7 @@ next_combination (ITERATOR base_begin, if (it != comb_begin) { marked = true; - comb_mark = (--it); + comb_mark = --it; ++it; continue; } @@ -52,20 +53,12 @@ next_combination (ITERATOR base_begin, return false; } } - else if (*it != *base_it) + else { - if (marked == true) + if (marked) { - ITERATOR base_mark; - for (ITERATOR base_it2=base_begin; - base_it2 != base_end; ++base_it2) - { - if (*comb_mark == *base_it2) - { - base_mark = base_it2; - break; - } - } + ITERATOR base_mark = + std::find (base_begin, base_end, *comb_mark); ITERATOR kt = ++base_mark; |