Boost中的一些实用技术
2012-03-26 22:11 Rollen Holt 阅读(1009) 评论(0) 收藏 举报类型推断:
#include <iostream>
#include <vector>
#include <string>
#include <boost/typeof/typeof.hpp>
using namespace std;
vector<string> func(){
vector<string> v(10);
return v;
}
int _tmain(int argc, _TCHAR* argv[])
{
BOOST_TYPEOF(2.0) x=2.0*3;
BOOST_AUTO(years,2+3);
BOOST_AUTO(&a , new double[11]);
BOOST_AUTO(p , new string("hello"));
BOOST_AUTO(v , func());
return 0;
}不能复制的类
#include<boost/utility.hpp>
using namespace std;
//不能复制的类
class demo : public boost::noncopyable{
};
int _tmain(int argc, _TCHAR* argv[])
{
demo a;
demo b;
//a=b;
//a(b);
return 0;
}
//向typeof注册自定义类型
#include <iostream>
#include <vector>
#include <string>
#include<boost/typeof/typeof.hpp>
#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
using namespace std;
//向typeof注册自定义类型
//
namespace ex{
class demo_class{
int a,b;
};
}
BOOST_TYPEOF_REGISTER_TYPE(ex::demo_class)
int _tmain(int argc, _TCHAR* argv[])
{
BOOST_AUTO(x, make_pair("test",ex::demo_class()));
cout<<typeid(x).name()<<endl;
}赋值:
#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <boost/assign.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
using namespace boost::assign;
std::vector<int>v;
v+=1,2,3,4,5,9*10;
std::set<std::string> s;
s+="cpp","java","c","python";
std::map<int,std::string>m;
m+=std::make_pair(1,"hello"),std::make_pair(2,"rollen");
}#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <list>
#include <map>
#include <boost/assign.hpp>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
using namespace boost::assign;
std::vector<int>v;
push_back(v)(1)(2)(3)(4);
push_back(v),1,2,3,4,5;
push_back(v),1,(2),3;
list<int> l;
push_front(l)(1)(2);
set<double>s;
insert(s)(12.23)(1.23);
map<int,string>m;
insert(m)(1,"name")(2,"age");
}==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================
浙公网安备 33010602011771号