tr1_tuple_auto_conv.cpp
来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 57 行
CPP
57 行
#include <boost/tr1/memory.hpp>#include <boost/tr1/tuple.hpp>#include <boost/any.hpp>#include <iostream>namespace Core{ class AutoConverter { std::tr1::shared_ptr<boost::any> t_; public: AutoConverter(std::tr1::shared_ptr<boost::any> const & t) : t_(t) {} template <typename C> operator C () { try { boost::any & a = (*t_); return boost::any_cast<C>(a); } catch(boost::bad_any_cast & e) { std::cerr << "Internal conversion bug: " << "Failed to convert data holder to " << typeid(C).name() << "\n" << e.what() << std::endl; C c = C(); return c; } } }; inline AutoConverter Demo() { std::tr1::shared_ptr<boost::any> p_result (new boost::any(std::tr1::make_tuple(1, 2, 3, 4))); return p_result; }} // namespace Coreint main(int argc, char* argv[]){ std::tr1::tuple<int, int, int, int> test = Core::Demo(); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?