#ifndef FUNCTIONLIST_H #define FUNCTIONLIST_H #ifdef _MSC_VER #pragma once #endif #include template class CFunctionList { public: std::vector > funcs; CFunctionList(int){}; CFunctionList(){}; template CFunctionList(const Functor &f) { funcs.push_back(boost::function(f)); } CFunctionList(const boost::function &first) { funcs.push_back(first); } CFunctionList(boost::function &first) { funcs.push_back(first); } CFunctionList & operator+=(const boost::function &first) { funcs.push_back(first); return *this; } void clear() { funcs.clear(); } operator bool() const { return funcs.size(); } void operator()() const { std::vector > funcs2 = funcs; //backup for(size_t i=0;i void operator()(const Arg & a) const { std::vector > funcs2 = funcs; //backup for(int i=0;i class CFunctionList2 { public: std::vector > funcs; CFunctionList2(int){}; CFunctionList2(){}; template CFunctionList2(const Functor &f) { funcs.push_back(boost::function(f)); } CFunctionList2(const boost::function &first) { funcs.push_back(first); } CFunctionList2(boost::function &first) { funcs.push_back(first); } CFunctionList2 & operator+=(const boost::function &first) { funcs.push_back(first); return *this; } void clear() { funcs.clear(); } operator bool() const { return funcs.size(); } template void operator()(const Arg & a) const { std::vector > funcs2 = funcs; //backup for(size_t i=0;i