libBf 0.1
|
00001 #ifndef DETAIL_BASIC_H 00002 #define DETAIL_BASIC_H 00003 00004 namespace bf { 00005 namespace detail { 00006 namespace basic { 00007 00008 template <typename T, typename Core> 00009 void add(const T& x, Core& core) 00010 { 00011 auto pos = core.positions(x); 00012 for (auto i : pos) 00013 core.store.increment(i); 00014 } 00015 00016 template <typename T, typename Core> 00017 void add(const T& x, unsigned count, Core& core) 00018 { 00019 auto pos = core.positions(x); 00020 for (auto i : pos) 00021 core.store.increment(i, count); 00022 } 00023 00024 template <typename T, typename Core> 00025 void remove(const T& x, Core& core) 00026 { 00027 auto pos = core.positions(x); 00028 for (auto i : pos) 00029 core.store.decrement(i); 00030 } 00031 00032 } // namespace basic 00033 } // namespace detail 00034 } // namespace bf 00035 00036 #endif