请教一个Boost signal2 的问题 [问题点数:100分,结帖人ayw215]

Bbs7
本版专家分:13211
Blank
黄花 2010年8月 C/C++大版内专家分月排行榜第二
结帖率 98.02%
Bbs7
本版专家分:12139
Bbs7
本版专家分:13211
Blank
黄花 2010年8月 C/C++大版内专家分月排行榜第二
Bbs7
本版专家分:12139
Bbs7
本版专家分:13211
Blank
黄花 2010年8月 C/C++大版内专家分月排行榜第二
Bbs7
本版专家分:12139
Bbs7
本版专家分:12139
Bbs7
本版专家分:13211
Blank
黄花 2010年8月 C/C++大版内专家分月排行榜第二
Bbs7
本版专家分:12139
Boost.signal传统模式下的观察者模式与信号/槽机制实现的观察者模式
传统模式下的观察者模式与信号/槽机制实现的观察者模式实现代码如下:#include &amp;lt;iostream&amp;gt; #include &amp;lt;list&amp;gt; using namespace std; #include &quot;<em>boost</em>/shared_ptr.hpp&quot; #include &quot;<em>boost</em>/signal.hpp&quot; using namespace <em>boost</em>; //观察者基类...
boost::signal2 信号/插槽(线程安全的观察者模式)
signals2基于Boost的另<em>一个</em>库signals,实现了线程安全的观察者模式。在signals2中,观察者模式被称为信号/插槽(signals and slots),它是一种函数回调机制,<em>一个</em>信号关联了多个插槽,当信号发出时,所有关联它的插槽都会被调用。 signals2位于名字空间 <em>boost</em>::signals2 ,头文件,即:#include <bo
请教boost线程一个问题
刚学习<em>boost</em>rnrn使用<em>boost</em>来开发tcp的serverrnrn程序accept为<em>一个</em>线程rnrn当接受到<em>一个</em>客户端socket链接时,需要为该客户端创建<em>一个</em>线程来单独处理该链接rnrn该链接或许链接会长时间保持链接状态rnrn这样的情况下我该怎么使用<em>boost</em>::thread来建立于客户端的链接rnrn谢谢rnrnrnint main()rnrn <em>boost</em>::thread accpetthrd(acceptfun); //这里创建了<em>一个</em>服务线程rn accpetthrd.join();rnrnrnrnvoid acceptfunrnrn while(1)rn rn SOCKET sClient=accept(s,(struct sockaddr*)&from,&fromlen); rn //这里接受到<em>一个</em>新的链接;rn //我的意思是希望能够在这里创建<em>一个</em>线程,类似windows上的rn //线程 DWORD WINAPI Thread_client(LPVOID pParam)rn //如何使用<em>boost</em>::thread来表示上述方式?多谢rn rnrnrnvoid Thread_oneclient(socket& s)rnrn //recv and send ;rn
boost问题请教boost
rn std::vector m_lsbufferQueue;rnrn BOOST_FOREACH(BOOST_TYPEOF(m_lsbufferQueue)::reference buf, m_lsbufferQueue)rn rn size_t size = m_pmp3dataSource->Read(&data[0], data.size());rn if (size == -1)rn Stop();rn elsern data.resize(size);rn if (!data.empty())rn rn ++ non_empty_buf;rn alBufferData(buf, format, &data[0],rn static_cast(data.size()), m_pmp3dataSource->Freq());rn rn elsern rn break;rn rn rnrn这段代码的意识就是像缓冲区中填充数据,我的需求就是把BOOST_FOREACH(BOOST_TYPEOF(m_lsbufferQueue)::reference buf, m_lsbufferQueue) 改成stl的,不用<em>boost</em>,<em>请教</em>大虾,这个怎么改?rnrnBOOST_FOREACH BOOST_TYPEOF(m_lsbufferQueue)::reference 是啥意识?<em>请教</em>了,请讲清楚一点,谢谢!
请教 boost: serialization问题
学习<em>一个</em>小时,能将简单的类进行序列化。rnrn我的<em>问题</em>是:rnrn1: 项目中有很多.cpp 和.h文件, 怎么将里面的类、member 都序列化?rnrnrn2: 这些文件需要先zlib处理下, 但是从void serialize( class &, ....)里要看不到任何 zlib的,我该怎么设计,用哪种设rnrn计模式?rnrn3. 大牛要是有相关代码能参考下就好了,3q.
关于Boost中的Signal
今天看了下<em>boost</em> 里面的 Signal,发现只能绑定native function和functor, 如何绑定一般的成员函数呢? 谢谢
如何使用BOOST信号(一)
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* St
boost::signals::signal的用法
吃力的讲完<em>boost</em>::signals的ppt,然后接着就是做练习题。通过讲ppt,发现有一句话说的真好:你自己知道是一回事,你能给别人讲明白又是另外一回事。真的有些东西你自己理解,但是用语言去很难表达,是不是用语言难以表达暴露出自己对所理解的东西不是真正的理解?。。。。orz,不过讲完ppt之后,真的对<em>boost</em>::singals的理解又加深一层。好了废话不多说了,现在来看两个习题(ppt的内容
Boost signal 代码示例
网上介绍Boost signal原理的文章很多,这里不介绍原理,仅贴一些示例代码,这在初步接触Boost signal时能够有个较好的感性认识,深入了解需要去体会挖掘<em>boost</em>源码。代码基本上来自Boost turioal,其中有一些错误会导致编译不过,这里都做了更正: 1. 基本运用 #include #include #include using namespace std; u
请教boost的消息队列问题
例如,有msg1=“0x01,0x02,0x03,0x04”,msg2="0x05,0x06"这样两条消息,[color=#FF0000]线程1[/color]先将[color=#0000FF]msg1[/color]存入队列,再存[color=#0000FF]msg2[/color],[color=#FF0000]线程2[/color]取出的时候,只要确定取的是4个字节,就能保证取出的是消息[color=#0000FF]msg1[/color]吗?rn有没有这方面的例子,参考下。
请教boost::bind中使用的一个问题.
精简后的代码如下:rn[code=C/C++]rn#include rn#include rn#include rnrntemplaternvoid two_handler_test_func(const char* p1, const char* p2, Handler1 handler1, Handler2 handler2)rnrn handler1(<em>boost</em>::system::error_code());rn handler2(<em>boost</em>::system::error_code());rnrnrnclass MyTestClassrnrnpublic:rn templatern void test_func(const std::string& p1, const std::string& p2, Handler handler)rn rn two_handler_test_func(p1.c_str(), p2.c_str(), rn <em>boost</em>::bind(&MyTestClass::handle_test_func1, this, _1, handler),rn <em>boost</em>::bind(&MyTestClass::handle_test_func2, this, _1, 2));rn rnrnprivate:rn templatern void handle_test_func1(const <em>boost</em>::system::error_code& ec, Handler handler)rn rn handler(ec);rn rnrn void handle_test_func2(const <em>boost</em>::system::error_code& ec, int b)rn rnrn;rnrnvoid command_listen_finished(const <em>boost</em>::system::error_code& ec, int i)rnrnrnvoid command_listen_finished2(const <em>boost</em>::system::error_code& ec)rnrnrnclass TestCallbackrnrnpublic:rn TestCallback(int i)rn :m_i(i)rn rnrn void operator()(const <em>boost</em>::system::error_code& ec)rn rnprivate:rn int m_i;rn;rnrnint main()rnrn MyTestClass testClass;rn testClass.test_func("abc", "def", <em>boost</em>::bind(command_listen_finished, _1, 1));rn //testClass.test_func("abc", "def", command_listen_finished2);rn //testClass.test_func("abc", "def", TestCallback(1));rn return 0;rnrn[/code]rnrn最后三个函数,testClass.test_func:rn第<em>一个</em>无法编译通过,第二个和第三个都可以直接编译通过.rn按道理来讲,第<em>一个</em>其实应该是<em>boost</em>::bind构造了<em>一个</em>和TestCallback一样的函数对象.rn<em>请教</em>这里面是哪里写错了?rnrn我使用的是VC9,版本编号是:rnMicrosoft Visual Studio 2008rnVersion 9.0.30729.1 SPrnMicrosoft .NET FrameworkrnVersion 3.5 SP1rnrnInstalled Edition: EnterprisernrnMicrosoft Visual C++ 2008 91899-153-0000007-60183rn
请教一个关于boost::thread_group的问题
我想在多线程中像如下这种方式使用<em>boost</em>::thread_group:rn[code=C/C++]rnvoid thread2();rnvoid thread1(<em>boost</em>::thread_group& tg)rnrn // create an other thread in the thread_grouprn tg.create_thread(thread2);rn // do some workrn for(;;)rn rn //...rn rnrnrnvoid thread2()rnrn // do some workrn for(;;)rn rn //...rn rnrnrnint main()rnrn <em>boost</em>::thread_group tg;rn tg.create_thread(<em>boost</em>::bind(thread1, <em>boost</em>::ref(tg)));rn tg.join_all();rn return 0; rnrn[/code]rnrn这里tg.join_all();上好像可能存在一些安全<em>问题</em>,我不知道当<em>一个</em>线程在thread_group上等待的时候,在另外的线程中调用<em>boost</em>::thread_group::create_thread是否安全.rn我查看了一下源代码,发现thread_group是利用std::list保存一组thread对象,然后用<em>一个</em>shared_mutex来进行同步.它在create_thread上使用lock,在join_all上使用shared lock.rn这是否意味着以上的代码可能出现死锁,如果主线程中的"tg.join_all()"先于线程1中的"tg.create_thread(thread2);"运行,那么"tg.join_all()"会先获得共享锁,然后线程1会一直在"tg.create_thread(thread2);"等待共享锁被释放.但是"tg.join_all()"又在等待线程1执行完成.rnrn我该如何实现在多个线程中操作一组线程,并且能安全等待的需求呢?rn谢谢!
请教一个关于boost/serialization的问题
不好意思,没有分了,拿出来大家讨论一下吧.rnrn原代码如下:rn[code=C/C++]//TASendingQueue.hrn#include rn#include rn#include rn#include rn#include rn#include rnrnusing namespace std;rnclass TASendingQueuernrnprivate:rn list m_toSendTAList; rn friend class <em>boost</em>::serialization::access;rn templatern void serialize(Archive &ar, const unsigned int vertion)rn rn ar & m_toSendTAList; rn rnrnpublic: rn rn void SaveQueue();rn void RestoreQueue();rn rn;rnrn//BOOST_CLASS_TRACKING(TASendingQueue, <em>boost</em>::serialization::track_never)rnrn//TASendingQueue.cpprn#include "TASendingQueue.h"rnrnrnvoid TASendingQueue::SaveQueue()rnrn ofstream ofs("test.log");rn <em>boost</em>::archive::text_oarchive oa(ofs);rn oa << m_toSendTAList;rn ofs.close();rnrnrnvoid TASendingQueue::RestoreQueue()rnrn m_toSendTAList.clear();rn ifstream ifs("test.log", ios::binary);rn <em>boost</em>::archive::text_iarchive ia(ifs);rn ia >> m_toSendTAList;rn ifs.close();rn[/code]rnrn出现了下面这样的错误:rn错误: use of undefined type '<em>boost</em>::STATIC_ASSERTION_FAILURE'rn用BOOST_CLASS_TRACKING(TASendingQueue, <em>boost</em>::serialization::track_never)也无法解决rn大家讨论一下吧.
请教一个关于boost正则表达式的问题
[code=c](?<=和?:操作的。rnrn比如提取:rn[code=sql]select * from table_name;[/code]rn哪位熟悉<em>boost</em>库的高手指点一下。rn或者使用其他语法来实现提取sql语句中表名的功能。
boost:asio信号量signal_set源码分析及使用
首先我们先看signal_set.hpp,可以看到下面代码#include #include namespace <em>boost</em> { namespace asio {/// Typedef for the typical usage of a signal set. typed
C++“准”标准库Boost学习指南(12):Boost.Signals
Boost.Signals 信号和接收系统,基于称为publisher-subscriber 和 observer的模式,它是在<em>一个</em>最小相关性系统中管理事件的重要工具。很少有大型应用软件不采用这种强大设计模式的某种变形,尽管他们有各自的实现方式。Signals提供了<em>一个</em>已验证的、高效的手段,将信号(events/subjects)的发生和这些信号要通知的接收者(subscribers/obs
请教boost里面async_read_some的一个问题
rn最近在项目中使用<em>boost</em>,但是测试的时候发现这样<em>一个</em>现象:rnrn使用tcp::socket.async_read_some来接收数据,与客户端建立连接后,强制退出客户端,异步回调函数会被调用,但是传入的error_code竟然是0,即没有错误返回。rnrn客户端强制断开连接,处于半连接状态,我期望应该会返回错误码EOF,而实际情况却与期望不一致。rnrnrn不知道你们遇到过这种情况?
请教一个boost parse xml的问题
弄了半天,弄不来,哪位能帮忙?rn[code=XML]rnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn[/code]
初学boost请教一个程序
刚开始学,不会写。能不能写<em>一个</em> rnrn替换字符串里 含有 。,;《》%@!!~ 变成空格 的程序
boost一个简单问题
我怎么分解aaaaasssssdddddddddffff到<em>一个</em>tstrings
一个boost的编译问题
bjam "-sTOOLS=vc-8_0" "-sVC80_ROOT=D:\vs2005\VC" "--with-regex" installrn步骤是按照官网文档来的,bjam.exe也是文档给的链接从sourceforge下来的,执行命令之后应该是进行了编译的,c盘根目录下多了个<em>boost</em>文件夹,考了很多h文件进去,有个lib文件夹,不过里面是空的?rn编译成功了还是失败了?库文件产生在哪了?rnrn-------------------------------------------rn编译最后的结果rn...skipped lib<em>boost</em>_regex-vc80-mt-1_33_1.CMD for lack of regex_traits_defaults.obj...rn...skipped lib<em>boost</em>_regex-vc80-mt-1_33_1.lib for lack of regex_traits_defaults.obj...rn...skipped lib<em>boost</em>_regex-vc80-mt-1_33_1.lib for lack of lib<em>boost</em>_regex-vrnc80-mt-1_33_1.lib...rn...skipped <em>boost</em>_regex-vc80-mt-gd.lib for lack of <em>boost</em>_rnregex-vc80-mt-gd-1_33_1.lib...rn...skipped <em>boost</em>_regex-vc80-mt.lib for lack of <em>boost</em>_regrnex-vc80-mt-1_33_1.lib...rn...skipped lib<em>boost</em>_regex-vc80-mt-sgd.lib for lack of lirnb<em>boost</em>_regex-vc80-mt-sgd-1_33_1.lib...rn...skipped lib<em>boost</em>_regex-vc80-mt-gd.lib for lack of librn<em>boost</em>_regex-vc80-mt-gd-1_33_1.lib...rn...skipped lib<em>boost</em>_regex-vc80-mt-s.lib for lack of libbrnoost_regex-vc80-mt-s-1_33_1.lib...rn...skipped lib<em>boost</em>_regex-vc80-mt.lib for lack of libboornst_regex-vc80-mt-1_33_1.lib...rn...failed updating 6 targets...rn...skipped 28 targets...rn...updated 118 targets...
如何使用BOOST信号(二)
Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* St
boost------signals2的使用
<em>boost</em>------signals2的使用1(Boost程序库完全开发指南)读书笔记 signals2基于Boost的另<em>一个</em>库signals,实现了线程安全的观察者模式。在signals2库中,观察者模式被称为信号/插槽(signals and slots),他是一种函数回调机制,<em>一个</em>信号关联了多个插槽,当信号发出时,所有关联它的插槽都会被调用。 许多成熟的软件系统都用到了这种信号/插槽机制...
程序开发基础学习四(boost::signal2 函数学习)
在游戏编程中,新的策划需求总是在迭代不停。。。。。。,对于游戏程序员肯定深有感触吧,遇到这种情况咱只能小小的抱怨下,活还得干。尤其是遇到耦合到很多类的时候,要是直接实现不加抽象的话,那咱的代码就要被拆的七零八落,并且在代码维护性和程序健壮性上<em>问题</em>很大。前面说到的<em>问题</em>其实就是常听到的代码耦合,说白了就是在原有的代码上插上一段代码。而signal就能很好的解决这种<em>问题</em>。这样不仅可以...
知识巩固之boost的Signals2连接方式
知识百科 Signals2是<em>boost</em>里面另<em>一个</em>Signals库,该库实现了线程安全的观察者模式,基于函数回调机制实现信号/槽的绑定和触发事件。引用头文件:#include &amp;lt;<em>boost</em>/signals2.hpp&amp;gt; 说明:该库是线程安全的。 相关:C#语言的event/delegate机制 ;Qt 信号和槽 1. Signals2中连接方式 说明 位置:&amp;lt;<em>boost</em>/s...
一个boost库编译的问题
我刚刚接触<em>boost</em>库,我按照安装说明进行编译安装,在说明上有这么一段话“Note that some of the libraries also include non Boost.Build makefiles and/or project files. But all include the needed files for building with Boost.Build.”最后编译安装结束时显示如下rnrn...failed updating 1344 targets...rn...skipped 470 targets...rn...updated 3783 targets...rnrn这正常吗?能知道是哪些失败和跳过了吗?那些没有更新以及跳过的是不是不用编译直接可以用呀?
求解一个boost问题
我用stlport库来编译了<em>boost</em>的system库rn但是,我在写测试程序的时候,发现出现了链接错误找不到lib<em>boost</em>_date_time-vc71-mt-sgd-1_47.librn因为我是用了stlport,应该是链接lib<em>boost</em>_date_time-vc71-mt-sgdp-1_47.lib才对啊,为什么会去查找原来的vc默认stl库编译的lib文件
boost lambda的一个问题
我想根据<em>一个</em>int容器的内容以及<em>一个</em>double容器的内容构造<em>一个</em>Foo容器,于是我使用了如下的代码:但是编译8通过,哪里弄错了?rnstruct Foornrn Foo(int i, double d)rn rnrn rn;rnrnint _tmain(int argc, _TCHAR* argv[])rnrn using namespace <em>boost</em>::lambda;rn std::vector int_vec;rn int_vec.push_back(1);rn int_vec.push_back(2);rnrn std::vector db_vec;rn db_vec.push_back(1.2);rn db_vec.push_back(2.3);rnrn std::vector foo_vec;rnrn std::transform(int_vec.begin(), int_vec.end(), db_vec.begin(), std::back_inserter(foo_vec), Foo(_1, _2));rnrn return 0;rnrnrn
请教boost::spirit的parse()问题
刚开始看spirit,有<em>一个</em>疑问,<em>一个</em>字符串匹配成功后如何来执行一点动作,比如:rnconst char* szParam = "If(1)";rnrule<> rlx, rlAct, rlStr;rnrlx = digit_p;rnrlStr = str_p("If(")>>rlx>>ch_p(')');rnrnparse_info<> r = parse( szParam, rlStr);rnrn我的本意是要提取出If(1)里面的1,然后执行<em>一个</em>函数fun,请问该如何做?或者说怎么拿到那个1?
请教boost正则表达式的语法问题
我要提取一串URL 格式如下:rnhttp://***.***.***user_login_qp.php?uid=%BF%BC%C0%AD&pwd=7faac35ae7dcaddca9ef0c1b1c50e68a&flag=Testrn要提取uid pwd flag 3个字段 <em>请教</em>一下各位大牛语法 能解释一下各字段的提取方法则更好,刚看<em>boost</em>伤不起...rn
请教boost::asio连接超时的问题
<em>boost</em>::asio要设置连接超时(是同步连接connect,不是async_connect),除了用deadline_timer::async_wait之外,还有没有其它方法?rn我要把连接和超时写在同<em>一个</em>函数里处理,而deadline_timer::async_wait需要另外写<em>一个</em>回调函数,很不爽。
请教使用boost/lexical_cast的问题
想在<em>一个</em>console application中使用<em>boost</em>/lexical_cast将字符串转换为数值的功能,rnVC6中设置了include路径,源码如下:rnrn#include "stdafx.h"rn#include rn#include rnrnusing namespace std;rnrnint main(int argc, char *argv[])rnrn using <em>boost</em>::lexical_cast;rn int a = lexical_cast("123");rn double b = lexical_cast("123.12");rnrn cout << a << endl;rn cout << b << endl;rn rn return 0;rnrnrn编译出错:rnerror C2062: type 'int' unexpectedrnerror C2062: type 'double' unexpectedrnrn请问如何解决?多谢!!!
请教一个boost官网以及boost官方社区链接
如题,这<em>问题</em>很傻B,但是我确实没找到。我只找到这个http://www.<em>boost</em>.org 然后是这个http://www.<em>boost</em>.org/doc/,我不确定里面的doc是否是Boost的官方文档,因为我读了几篇感觉不太像。rn好吧,<em>问题</em>是:rn请给我<em>一个</em>官方文档的链接,我想从头到尾好好看看Boost。好的答案我加分!rnNOTE:百度出来的那些冒牌的中文社区,请不要贴上来了,谢谢了!
请教BOOST 的ASIO编程问题
void accept_handler(<em>boost</em>::shared_ptr psocket, error_code ec) rn rn if(ec) return; rn // 继续等待连接 rn start(); rn // 显示远程IP rn std::cout << psocket->remote_endpoint().address() << std::endl; rn // 发送信息(非阻塞) rn <em>boost</em>::shared_ptr pstr(new std::string("hello async world!")); rn[color=#FF0000] psocket->async_write_some(buffer(*pstr) , rn <em>boost</em>::bind(&CHelloWorld_Service::write_handler, this, pstr, _1, _2) [/color]rn ); rn rnrn buffer 有个重载是 (void *p, int len) 可以支持自己的数组rnrn我改成:rn Class T ;rn T _Ty 是自己定义的<em>一个</em>模板类型rnrn void accept_handler(<em>boost</em>::shared_ptr psocket, error_code ec) rn rn if(ec) return; rn // 继续等待连接 rn start(); rn // 显示远程IP rn std::cout << psocket->remote_endpoint().address() << std::endl; rn // 发送信息(非阻塞) rn <em>boost</em>::shared_ptr pstr(new _Ty(m_pData)); rn [color=#FF0000]psocket->async_write_some(buffer(&pstr, sizeof(_Ty) ), [/color] <em>boost</em>::bind(&CHelloWorld_Service::write_handler, this, pstr, _1, _2) rn ); rn rn rnrnrn编译器编译不过了,<em>请教</em>这个<em>问题</em>如何解决,rn我想用ASIO 发送自己定义结构体的数据,请问还有其他更好的方法吗?rn谢谢大家!
求教boost thread的一个问题
何时调用join()?调用join()的目的是回收线呈占用的资源,在主线程中必须调用创建的字线程才能回收资源,<em>问题</em>是在什么地方回收资源比较合适?,如下代码:rnrnvoid func() rnrnrnrnint main()rnrn <em>boost</em>::thread thrd( func ) ;rn //do some worksrn thrd.join() ;rn //do other worksrnrn如果thrd还没执行完则主线程必须等待,这样就引入了不可预测性,如果主线程要想创建很多子线程那么<em>问题</em>更加复杂,如果不调用join()会有什么后果呢,可否有什么方法当子线程在完成工作后通知主线程,然后主线程再调用子线程的join().请各位高手帮忙!谢谢!!
boost lambda用法请教
rn没时间去看lambda怎么用了,我的<em>问题</em>是:rnrn我有<em>一个</em>std::vector foos;rnrn我想std::for_each(foos.begin(), foos.end(), ....想在这里填写...);rn我想使用lambda在”想在这里填写“ 那儿调用Foo的成员函数CreateFoo();该怎么写?rn我尝试写上std::for_each(foos.begin(), foos.end(), _1->CreateFoo());结果编译不过,该怎么写
请教boost::bind用法
有一映射函数,把str转换成一整数。注意不是类型转换,而是一种映射关系,类似电话号码簿。rnint convert(const std::string& str)rnrn有<em>一个</em>vector vecrnrn现在想根据vec中的string所对应的int对vec排序,应该怎么写?rnrnstd::sort(vec.begin(), vec.end(), <em>boost</em>::bind(???));rnrn
boost 智能指针一个小小的问题
要是代码这样写:rnrnint * p;rnrn <em>boost</em>::shared_ptr a(new int(10));rn p = a.get();rnrn*p = 11;//请问这样还有用吗?智能指针a已经离开它的生存期,我分析了a.get代码实现,仅仅是return了这个int的地址,并没做引用计数之类的保护,那最后这一句还是合法吗?会不会中括号之内智能指针已经内部delete了这个int?
一个BOOST/SPIRIT的问题
比如有2个rule,分别是 ruleA, ruleBrnrnruleA有2个subrule a1, a2rnruleB也有2个subrule b1,b2rnrn现在如果想ruleA中的subrule要调用ruleB的 subrule,应当怎么写啊?
一个关于boost cstdint.hpp的问题
d:\<em>boost</em>\<em>boost</em>\cstdint.hpp(491) : fatal error C1189: #error : defaults not correct; you must hand modify <em>boost</em>/cstdint.hpprnrn第二次编译通过.
boost 内存池 请教
<em>请教</em>个<em>问题</em>rnrn<em>boost</em> 的内存池, 多线程安全不?
关于boost的asio的一个问题
我使用<em>boost</em>中的asio方式实现<em>一个</em>tcp的客户端程序,我使用《Boost程序库完全开放指南》中的例子改写的。rn采用的方式为:主线程中启动<em>一个</em>子线程,用于执行io_service的相关操作,而主线程中产生待发送的数据。rnrn我现在采用的方式是在子线程中启动<em>一个</em>定时器,在定时器的回调函数中定时检测“待发送数据缓冲器”,如果缓冲区中有数据就调用start_write()函数发送数据。rn但是我觉得这种方式不太好,相当于一种轮询的方式,我觉得应该采用一种类似事件触发的方式实现才更合理一些。rn如果我在主线程中调用start_write()函数发送数据,虽然服务器端正常接收到数据了,但是写操作的回调函数write_handler却从来没有执行过,不知道什么原因。rn不知道哪位高手能不能帮忙看一下,如果才能改为采用事件触发的方式实现,谢谢。rnrn代码如下:rnrnrn[code=C/C++]#include rn#include rn#include rn#include rn#include rn#include rnusing namespace std;rnrn#define BOOST_DATE_TIME_SOURCErn#define BOOST_ALL_NO_LIBrnrn#include rnrn#include rn#include rnrnusing namespace <em>boost</em>::asio;rnusing namespace <em>boost</em>::posix_time;rnrn#include rnusing namespace <em>boost</em>::system;rn rn#include rnusing namespace <em>boost</em>;rnrn#include rnrn#include rn#include rn#include rnrn//g++ -o client client.cpp error_code.cpp -lpthreadrnrnclass clientrnrn private:rn io_service &ios;rn ip::tcp::endpoint ep;rn typedef shared_ptr sock_pt;rn rn sock_pt connected_sock_pt;rn mutex io_mu;rn rn deadline_timer& t_timer;rn rnprotected:rn void set_deadline_timer()rn rn t_timer.expires_from_now(seconds(1)); rn t_timer.async_wait(bind(&client::time_expired,this,placeholders::error));rn rn rnpublic:rn client(io_service& io,deadline_timer& t):ios(io),t_timer(t),rn ep(ip::address::from_string("127.0.0.1"),6688)rn rn start_connect();rn rn set_deadline_timer();rn rn rn void start_connect()rn rn cout <<<<<
请教有关boost的用法
在这里<em>请教</em><em>问题</em>的时候看到有人提到<em>boost</em>,rn 可是自己根本没有接触过,去它的网站看啊,全是英文,很吃力rn想在这里讨教一下
关于boost一个初级问题
我<em>boost</em>安装文件是官网上的“<em>boost</em>_1_36_0_setup.exe”傻瓜式安装 然后先设置好了相关配置,如果头文件包含和库文件包含rn我试着编译了<em>一个</em><em>boost</em>/libs/serialization/ 底下的<em>一个</em>demo.cpp 编译通过,<em>问题</em>是执行exe的时候提示无法“无法启动应用程序,请检查应用程序设定”不知道有人知不知道这是什么<em>问题</em>,是不是我的<em>boost</em>没有安装好
一个Boost安装的问题
今天重装系统,发现网上有人这么装的<em>boost</em>:rnrnbjam -sTOOLS=vc-7_1 "-sBUILD=debug release static/dynamic" installrnrn而以前我一直是用rnbjam "-sTOOLS=vc-7_1" install rn这样装的,这两个有什么区别吗?rn不好意思,新手刚学<em>boost</em>,劳驾各位指点,谢谢!rnrn另外,装完以后好像还要把几个什么dll复制到系统目录下?不过我没有复制,写了个小程序运行也没<em>问题</em>啊
BOOST问题
rn下载BOOST后,编译是否是多次一举呢
boost问题
[code=C/C++]1rnrnrn<em>boost</em>是编译器自带的吗,我的编译错误rn fatal error C1083: 无法打开包括文件:“<em>boost</em>/shared.h”: No such file or directoryrn我去查了查,vc9里的include文件,里面没找到<em>boost</em>头文件,是得自己下吗?rnrnrn2,这个错误怎么改rn map::iterator it;rn string s1;rn cin>>s1;rn it=m1.find(s1);rn rn if((it->second).current_amount_>(it->second).max_amount_)//??rnrn rn编译错误:rnrn参见对正在编译的类 模板 实例化“std::pair”的引用rn1> withrn1> [rn1> _Ty1=const std::string,rn1> _Ty2=studentsrn1> ]rnerror C2228: “.current_amount_”的左边必须有类/结构/联合rnerror C2228: “.max_amount_”的左边必须有类/结构/联合rnrn[/code]
boost问题
哪位老大给我讲讲什么是<em>boost</em>rn以及怎么用
boost问题
下载安装之后,rn输入测试代码rnrn#include "<em>boost</em>/lambda/lambda.hpp"rn#include rn#include rn#include rnusing namespace std;rnrnint main()rnrn using namespace <em>boost</em>::lambda;rn typedef istream_iterator in;rnrn for_each(rn in(scin), in(), cout << (_1 * 3) << " " );rn return 0;rnrn--------------------Configuration: <em>boost</em>_01 - Win32 Debug--------------------rnCompiling...rn<em>boost</em>_01.cpprnd:\<em>boost</em>_1_34_0\<em>boost</em>\lambda\detail\lambda_fwd.hpp(26) : fatal error C1001: INTERNAL COMPILER ERRORrn (compiler file 'msc1.cpp', line 1786) rn Please choose the Technical Support command on the Visual C++ rn Help menu, or open the Technical Support help file for more informationrn执行 cl.exe 时出错.rnrn<em>boost</em>_01.exe - 1 error(s), 0 warning(s)rnrnrn请高手指点一下,我用的VC6.0
请教一个关于BOOST中bind 与 tuple 的问题
typedef <em>boost</em>::tuples::tuple person;rn person p1(30,"feng","chang");rn <em>boost</em>::bind(person::get,_1)(p1);rnrn如上代码,如何才能编译通过啊,谢谢(vc2003)
关于一个boost中filesystem的一个问题
怎么样才能实现用filesystem复制文件的时候,监视其进度??rnrn谢谢!!!!!
请教一个boost反序列化抛出text_iarchive invalid signature异常的问题
我采用<em>boost</em>的序列化库,将数据信息序列化之后,跨网络传输。rn代码如下:rn[code=c]rnrnrn //反序列化mreq包rn stringstream os(mreq_ch);rnrn spfs_log(INFO,low,"ready to deserlization,context=%s.",os.str().c_str());rn try rn rn text_iarchive(os)>>req;//在这一行构造抛出异常rn rn catch(const exception &e) rn rn spfs_log(ERR,high,"text_iarchive err %s.",e.what());rn rnrn[/code]rnrnrn但是序列化却没有<em>问题</em>:rn[code=c]rnrn stringstream os ;rn text_oarchive(os)<
请教:boost::shared_ptr自定义析构器的问题.
为了防止对象在不同模块之间传递,使用对象自定义的清理函数同时完成析构和内存释放的操作.为了防止不正常的使用delete来删除对象,我将析构函数放到了protected里面:rnclass Interfacernrnprotected:rn ~Interface()rnpublic:rn virtual void release() = 0;rn virtual void foo() = 0;rn;rnrnclass CA : public Interfacernrnpublic:rn static CA* create();rn virtual void release();rn virtual void foo();rn;rnrn但是这样在使用<em>boost</em>::shared_ptr的时候却发生了<em>问题</em>:<em>boost</em>::shared_ptr好像必须有public的析构函数,即使是我想使用自定义的析构器也不行.rnrn<em>请教</em>这个<em>问题</em>该怎么解决,谢谢~~
请教关于Boost和STLport两个库的问题
最近写了<em>一个</em>小程序,程序用到了<em>boost</em>库和stlport库。但是编译时候,出现了很多错误,一直困扰我解决不了。因为<em>boost</em>里用到了std的个别函数,编译时候就会去stlport库里找,搞得挺乱的。有使用经验的朋友请帮忙指导指导。谢谢。rnrnerror C2039: 'localtime' : is not a member of 'stlpd_std'rnerror C2660: '<em>boost</em>::date_time::c_time::localtime' : function does not take 1 argumentsrnerror C2039: 'gmtime' : is not a member of 'stlpd_std'rnerror C2660: '<em>boost</em>::date_time::c_time::gmtime' : function does not take 1 argumentsrnerror C2039: 'abort' : is not a member of 'stlpd_std'rnerror C3861: 'abort': identifier not foundrnerror C2039: 'bad_alloc' : is not a member of 'stlpd_std'rnerror C3861: 'bad_alloc': identifier not foundrnerror C2039: 'localtime' : is not a member of 'stlpd_std'rnerror C2660: '<em>boost</em>::date_time::c_time::localtime' : function does not take 1 argumentsrnerror C2039: 'gmtime' : is not a member of 'stlpd_std'rnerror C2660: '<em>boost</em>::date_time::c_time::gmtime' : function does not take 1 argumentsrnerror C2039: 'abort' : is not a member of 'stlpd_std'rnerror C3861: 'abort': identifier not foundrnerror C2039: 'bad_alloc' : is not a member of 'stlpd_std'rnerror C3861: 'bad_alloc': identifier not foundrnerror C2039: 'abort' : is not a member of 'stlpd_std'rnerror C3861: 'abort': identifier not foundrnerror C2039: 'localtime' : is not a member of 'stlpd_std'rnerror C2660: '<em>boost</em>::date_time::c_time::localtime' : function does not take 1 argumentsrnerror C2039: 'gmtime' : is not a member of 'stlpd_std'rnerror C2664: '<em>boost</em>::throw_exception' : cannot convert parameter 1 from '<em>boost</em>::numeric::negative_overflow' to 'const stlpd_std::exception &'rn1> Reason: cannot convert from '<em>boost</em>::numeric::negative_overflow' to 'const stlpd_std::exception'rn1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be calledrnerror C2664: '<em>boost</em>::throw_exception' : cannot convert parameter 1 from '<em>boost</em>::numeric::positive_overflow' to 'const stlpd_std::exception &'rn1> Reason: cannot convert from '<em>boost</em>::numeric::positive_overflow' to 'const stlpd_std::exception'rn1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be calledrn1>.\RainbowKeyImpl.cpp(58) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
请教:使用boost::asio库,acceptor的问题
各位好,写了<em>一个</em>跨平台通信库,使用了<em>boost</em>::asio,在windows/osx/linux/Android(NDK)编译测试都OK,rnrn但是,在用java通过jni调用的时候,出现了阻塞。rnrn代码如下:rnrn[code=C/C++]rnrn typedef <em>boost</em>::asio::ip::tcp::acceptor AcceptorType;rn typedef <em>boost</em>::asio::ip::tcp TcpType;rn AcceptorType m_acceptor;rnrn TcpType::endpoint endpoint(TcpType::v4(), m_port); rn m_acceptor.open(endpoint.protocol()); // 这里会阻塞!!!rn m_acceptor.set_option(AcceptorType::reuse_address(true));rn m_acceptor.bind(endpoint);rn m_acceptor.listen();rn[/code]rnrn百思不得其解,在各个平台都工作正常,NDK模式下测试也没<em>问题</em>,偏偏在java通过jni调用的时候,出现阻塞情况。rnrn<em>请教</em>各路高手指点!rn
请教boost::bind绑定多态函数的问题
假设有两个函数,声明如下:rnfun(A a);rnfun(B b);rnrnA和B是两个类,这个fun都只有<em>一个</em>参数,知识参数类型不同...rn当我是用<em>boost</em>::bind(fun, _1)绑定函数时,它的返回值是什么?rnrn因为我需要这个返回类型,把它存到<em>一个</em>vector里面做回调...rnrnPS:顺便问一句rn我觉得这种绑定完全不知道参数类型啊...rn我调用的时候是否可以用A也可以用B?回调的时候也能多态?
请教boost编译问题,请指教,谢谢!!
操作系统:solarisrn编译器:gcc3.4.6rn<em>boost</em>:1.37.0rn<em>问题</em>:使用<em>boost</em>_1_37_0/下的configure,编译出来的库都是*.a,没有*.so的库。不知道什么原因,请指点下。谢谢!!
请教boost:asio读取串口的基础问题
http://www.cppprog.com/2009/0720/133_5.htmlrn用<em>boost</em>::asio进行串口读取的方法在上面的网页里有介绍rnrn读串口时,请问如果读到的字符数不满缓冲区,怎样才能把实际读取到的字节数保存到<em>一个</em>变量里?
请教boost::thread和WINAPI createThread的问题
想把CreateThread用<em>boost</em>::thread来实现,各位高手给点意见,怎么重构这个函数rnCreateThread原型:rnWINBASEAPIrn__out_optrnHANDLErnWINAPIrnCreateThread(rn __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,rn __in SIZE_T dwStackSize,rn __in LPTHREAD_START_ROUTINE lpStartAddress,rn __in_opt LPVOID lpParameter,rn __in DWORD dwCreationFlags,rn __out_opt LPDWORD lpThreadIdrn );rn请问怎么实现?
一个可用的boost的正则匹配
<em>一个</em>超牛逼的正则匹配。并有<em>一个</em>很简单的测试程序。
一个boost正则表达式
源:rn[code=HTML]rnxxxxxxxxxxxxrn rn xxxxxrn rn xxxxxxrn rn xxxxxxxrnxxxxxxxxxxxxxxxxxxrn[/code]rnrnrn匹配结果:rn xxxxx xxxxxxxxrn或者:rn xxxxxxrnrn要求:rn1,标签要成对,不能拆散了rn2,<em>boost</em>::regex::perl,其他就不必了.rnrnrn
boost::xpressive 向高手请教
<em>boost</em>::xpressive 向高手<em>请教</em>,如下:rn<em>boost</em>::xpressive::wsregex expression = <em>boost</em>::xpressive::wsregex::compile(L"&#(?\d+)");rn1、编译没<em>问题</em>,执行此行出异常。rn2、看了一下异常是error_badbrace rnrn(此正则式在<em>boost</em>::wsregex没<em>问题</em>如:wsregex expression(L"&#(?\d+)");)rn
请教:关于boost::bind的用法
[code=C/C++]rnrnrn#include rn#include rnrnusing namespace std;rnrnclass TESTrnpublic:rn void Print(int ival)rn rn cout<<
[BOOST]boost编程中出现的问题
1 <em>问题</em> g++11 <em>boost</em>_test.cpp -g -o main -l<em>boost</em>_thread /usr/bin/ld: /tmp/cczHwfIG.o: undefined reference to symbol '_ZN5<em>boost</em>6system15system_categoryEv' //usr/lib/x86_64-linux-gnu/lib<em>boost</em>_system.so.1....
boost::function和boost::bind相关问题...
绑定代码:rn[code=C/C++]rn<em>boost</em>::shared_ptr send_buffer(new string(encode(*_msg)));rnrn <em>boost</em>::functionsend_call_back = <em>boost</em>::bind(rn &Connection::async_send_msg_call_back,rn this,rn <em>boost</em>::asio::placeholders::error,rn <em>boost</em>::asio::placeholders::bytes_transferred,rn send_bufferrn );rn[/code]rnrn回调函数原型:rnvoid Connection::async_send_msg_call_back(rn <em>boost</em>::system::error_code& ec,rn std::size_t bytes_transferred,rn <em>boost</em>::shared_ptr send_buffer)rnrn rnrn[/code]rnrn以上这个是模仿asio下的async_read_some写的,它的源码注释中有(basic_stream_socket.hpp)rn @code void handler(rn * const <em>boost</em>::system::error_code& error, // Result of operation.rn * std::size_t bytes_transferred // Number of bytes written.rn * ); @endcodernrn编译出错....rn一大堆模板报错...你们不想看的...rnrn1>------ 已启动生成: 项目: Slave, 配置: Debug Win32 ------rn1> Connection.cpprn1> Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:rn1> - add -D_WIN32_WINNT=0x0501 to the compiler command line; orrn1> - add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.rn1> Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “result_traits::type <em>boost</em>::_bi::list0::operator [](const <em>boost</em>::_bi::bind_t &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(178) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind_template.hpp(20): 参见对正在编译的函数 模板 实例化“void <em>boost</em>::_bi::list4::operator ()(<em>boost</em>::_bi::type,F &,A &,int)”的引用rn1> withrn1> [rn1> A1=<em>boost</em>::_bi::value,rn1> A2=<em>boost</em>::arg,rn1> A3=<em>boost</em>::arg,rn1> A4=<em>boost</em>::_bi::value>,rn1> F=<em>boost</em>::_mfi::mf3>,rn1> T=void,rn1> A=<em>boost</em>::_bi::list0rn1> ]rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind_template.hpp(18): 编译类 模板 成员函数“void <em>boost</em>::_bi::bind_t::operator ()(void)”时rn1> withrn1> [rn1> R=void,rn1> F=<em>boost</em>::_mfi::mf3>,rn1> L=<em>boost</em>::_bi::list4,<em>boost</em>::arg,<em>boost</em>::arg,<em>boost</em>::_bi::value>>rn1> ]rn1> d:\scn\slave\slave\connection.cpp(29): 参见对正在编译的类 模板 实例化“<em>boost</em>::_bi::bind_t”的引用rn1> withrn1> [rn1> R=void,rn1> F=<em>boost</em>::_mfi::mf3>,rn1> L=<em>boost</em>::_bi::list4,<em>boost</em>::arg,<em>boost</em>::arg,<em>boost</em>::_bi::value>>rn1> ]rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “result_traits::type <em>boost</em>::_bi::list0::operator [](<em>boost</em>::_bi::bind_t &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(176) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “T &<em>boost</em>::_bi::list0::operator [](const <em>boost</em>::reference_wrapper &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(174) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “const T &<em>boost</em>::_bi::list0::operator [](const <em>boost</em>::_bi::value &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(172) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “T &<em>boost</em>::_bi::list0::operator [](<em>boost</em>::_bi::value &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(170) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2676: 二进制“[”:“<em>boost</em>::_bi::list0”不定义该运算符或到预定义运算符可接收的类型的转换rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “result_traits::type <em>boost</em>::_bi::list0::operator [](const <em>boost</em>::_bi::bind_t &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(178) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “result_traits::type <em>boost</em>::_bi::list0::operator [](<em>boost</em>::_bi::bind_t &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(176) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “T &<em>boost</em>::_bi::list0::operator [](const <em>boost</em>::reference_wrapper &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(174) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “const T &<em>boost</em>::_bi::list0::operator [](const <em>boost</em>::_bi::value &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(172) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2784: “T &<em>boost</em>::_bi::list0::operator [](<em>boost</em>::_bi::value &) const”: 未能从“重载函数类型”为“重载函数类型”推导 模板 参数rn1> d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(170) : 参见“<em>boost</em>::_bi::list0::operator []”的声明rn1>d:\<em>boost</em>_1_50_0\<em>boost</em>\bind\bind.hpp(457): error C2676: 二进制“[”:“<em>boost</em>::_bi::list0”不定义该运算符或到预定义运算符可接收的类型的转换rn========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========rn
boost::socket & boost::asio:不是已经有boost::socket了,为什么又出现一个boost::asio?
<em>boost</em>::asio主要也是针对socket的,我看了看,好像不大简洁. 不是已经有<em>boost</em>::socket了,为什么又出现这个asio?
新手请教: Boost::Regex 与 Boost::regex 有什么差别?
网上的文章大多是介绍 Boost::regex的(头文件是 regex.hpp)rnrn我自己用的是Boost::Regex(头文件是regex.h)rnrn一直觉得奇怪,二者有什么区别? Boost::Regex的介绍似乎很少rnrn
请教】经常听人说boostboost是啥咚咚?
经常听人说<em>boost</em>,和STL相提并论,<em>boost</em>是一套模板库?
boost
<em>boost</em> 库 的INCLUDE
BOOST
在vs中我用的<em>boost</em>中的文件有lib<em>boost</em>_system-vc90-mt-gd-1_47.lib但是运行提示错误是lib<em>boost</em>_system-vc100-mt-gd-1_47.lib是不是这个和<em>boost</em>的版本有<em>问题</em>?
C++ boost 库中regex_replace 一个问题
regex_replace 在替换字符串内容的时候将替换结果返回,而传进去的字符串没有改变,请问有方法可以直接在原来字符串基础上修改吗?
请问高手,boost regex的一个问题
<em>boost</em> regex在windows下编译出来的库有支持stlport和不支持stlport两种,相对应的mak文件也有两个,可是在unix下确只有一种,是不是不支持stlport啊??急!
boost::functoin和boost::bind
int foo(const char *s, int i)rnrn cout << s << i << endl;rn return 0;rnrnint main()rnrn <em>boost</em>::function fun4rn = <em>boost</em>::bind(<em>boost</em>::type(), &foo, "abc", _1);//compile errorrn <em>boost</em>::function fun3rn = <em>boost</em>::bind(<em>boost</em>::type(), &foo, "abc", _2);//compile okrn (<em>boost</em>::bind(<em>boost</em>::type(), &foo, "abc", _1))(2); //compile okrn return 0;rnrnrn我的<em>问题</em>是为什么第一条语句是错的呢?怎样修改呢?我的目的是想让“abc”成为fun4的第<em>一个</em>默认参数。rnrn多谢各位
boost ptree 解析xml的一个问题
如下这样的<em>一个</em>xml结构:rnrnrn rn 14545rn aggjrn rn rn 22222rn 33333rn rn rn rnrnrn能不能使用<em>boost</em> 的相关property_tree组件(或者其他模块也行?),把子xml解析成字符串呢?rnrn例如,有string str; 把ccc节点的值解析到给这个strrn即str的值为 "2222233333"rnrn请问能这样做的吗?能的话,代码具体是怎么做的?rn
关于boost在VC6编译时的一个问题!
已使用bjam编译了<em>boost</em>的thread模块,编译为VC6环境下的,且成功生成了lib<em>boost</em>_thread-vc6-mt-sgd-1_34_1.lib lib<em>boost</em>_thread-vc6-mt-sgd-1_34_1.dll文件,此时编写<em>一个</em>例子程序中使用了lib<em>boost</em>_thread-vc6-mt-sgd-1_34_1.lib,一般在VC中都会在option->link中添加LIB文件,即把lib<em>boost</em>_thread-vc6-mt-sgd-1_34_1.lib添加后去,如:rnkernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib [b]lib<em>boost</em>_thread-vc6-mt-sgd-1_34_1.lib[/b][color=#FF0000][/color],其实我在编时不添加此LIB文件也是可以编译,我想知道这是为什么??
一个关于boost和多线程的问题。(急)
现在想做个多线程读写数据的程序,比如100个线程吧,同时读1个map,map里有100个key,每个线程对应读<em>一个</em>key所对应的数据,主进程往里写。要求除了主进程写的那个key所对应的数据外,其他的99个线程可以同时写另外99个key对应的数据。同时,如果有线程正在读某个key所对应的数据,主进程也不能写。可以实现么?rn另外请牛人顺便详细讲讲mutex(互斥体) 和 lock(锁) 这两个概念。比如<em>boost</em>::mutex,<em>boost</em>::mutex::scoped_lock。如果能实现上面的操作,是要100个mutex呢,还是要100个lock,就是每个线程专有<em>一个</em>。lock是锁住共享资源,但是如果按上面的条件,加锁的话,是只能锁住整个map,还是能非别锁住每个key对应的数据。后者才能同时写,如果锁住整个map的话,就无法同时读写了吧。
一个对象池boost::object_pool的问题
[code=C/C++]rn...rn//假设Session是一对象rntypedef <em>boost</em>::shared_ptr< Session > Session_ptr;rntypedef <em>boost</em>::object_pool< Session > Session_pool;rn...rnSession_pool m_session_pool;rn//这样是<em>一个</em>对象池加智能指针的作法rnSession_ptr new_session( m_session_pool.construct(m_io_service) );rn...rn[/code]rnrn<em>问题</em>:rn1、object_pool是否会将析构的对象放入池内等下次重复使用rn2、object_pool是否支持预初始化若干对象放入池内(手动)rn3、object_pool是否有对象上限约束rnrn4、以上例子的shared_ptr+object_pool的方法是否有<em>问题</em>,对性能提升是否有帮助rn5、是否要自定义shared_ptr的析构方法为object_pool的destroyrnrn<em>问题</em>完毕,谢谢大家。
boost资料boost资料boost资料
<em>boost</em>资料<em>boost</em>资料<em>boost</em>资料<em>boost</em>资料
请问终止boost::thread的一个问题
void test ()rnrn for (int i = 0 ; i < 10000;++i)rn rn Sleep(1);rn //POXIS::Sleep(1);rn printf("1--%d\n",i);rn rnrnrnstd::vector vec2;rnvoid createthread()rnrn <em>boost</em>::thread thrd1(&test);rn thrd1.detach();rn vec2.push_back(&thrd1);rnrnrnint main(int argc, char* argv[])rnrn std::cout<<< vec2.size()<
急:boost::bind的一个菜鸟问题
[code=C/C++]rnstruct Arnrn char a;rn;rnrnchar fun1(const char* c)rnrn //printf(c);rn std::cout<<
天书夜读:从汇编语言到Windows内核编程(完整版一)下载
总共20多兆,太大了,权限不够,一次上传不了。 总共2个包,这是第一个包 第二个包:http://download.csdn.net/source/2517250 入手篇 熟悉汇编   本书的第一部分,将帮助读者消除对汇编的恐惧,熟悉汇编。本部分包括第1~3章。稍显枯燥的是,它们和Windows内核无关,是纯C语言与汇编语言的关系的章节。如果读者已经精通汇编语言,并能顺利阅读汇编代码,请直接跳过本部分。   第1章 汇编指令与C语言 2   1.1 上机建立第一个工程 4   1.1.1 用Visual Studio创建工程 4   1.1.2 用Visual Studio查看汇编代码 5 相关下载链接:[url=//download.csdn.net/download/sky04/2517241?utm_source=bbsseo]//download.csdn.net/download/sky04/2517241?utm_source=bbsseo[/url]
神经网络算法源程序 机器学习下载
ADALINE ART1 BAM BOLTZMAN BPN CPN HOPFIELD SOM 相关下载链接:[url=//download.csdn.net/download/sdnubaoyu/2209337?utm_source=bbsseo]//download.csdn.net/download/sdnubaoyu/2209337?utm_source=bbsseo[/url]
H.264阅读笔记下载
上传在网上找到的一份H.264阅读笔记资料,个人感觉还不错。 相关下载链接:[url=//download.csdn.net/download/lanbucom/4760604?utm_source=bbsseo]//download.csdn.net/download/lanbucom/4760604?utm_source=bbsseo[/url]
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数
我们是很有底线的