
jeti wrote:
i try to create a class which helps me manage my resources usage it only gets function arguments and a boost::function on construction and this function is called with the given arguments during destruction
the constructor currently looks like this template<typename T,typename R> Callback(boost::function<T (R)>,R arg1);
so this would be great template<typename T,typename R,...> Callback(boost::function<T (R,...)>,R arg1,....);
which i dont know how to achive or if this can easily be done using current c++ standard any alternative/creative suggestions on this would be great
? To me it looks as if you're home free. The following builds and runs and produces the result I expect: #include <iostream> #include <boost/function.hpp> #include <boost/bind.hpp> // doesn't need to be a template class Callback { typedef boost::function<void()> function_type; public: Callback(const function_type& func): mFunc(func) {} ~Callback() { mFunc(); } private: function_type mFunc; }; // example cleanup function requiring args void cleanup(const std::string& message) { std::cout << message << std::endl; } int main(int argc, char* argv[]) { Callback myCallback(boost::bind(cleanup, "Going out of scope now!")); return 0; } If I've misunderstood some part of your problem, please forgive me.