锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一区在线播放,国产精品国产三级国产aⅴ入口,久热精品在线http://m.shnenglu.com/Error/category/20472.htmlzh-cnThu, 29 May 2014 20:24:05 GMTThu, 29 May 2014 20:24:05 GMT60boost signals solt 01 鏆傛椂鏃犳硶鐞嗚В鐨勫潙http://m.shnenglu.com/Error/archive/2014/05/30/207147.htmlEnicEnicThu, 29 May 2014 17:09:00 GMThttp://m.shnenglu.com/Error/archive/2014/05/30/207147.htmlhttp://m.shnenglu.com/Error/comments/207147.htmlhttp://m.shnenglu.com/Error/archive/2014/05/30/207147.html#Feedback0http://m.shnenglu.com/Error/comments/commentRss/207147.htmlhttp://m.shnenglu.com/Error/services/trackbacks/207147.html// boost_singal_solt.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <boost/signals2.hpp>
class CTarget /*: public boost::signals2::trackable*/
{
public:
    virtual ~CTarget()
    {
        std::cout << __FUNCTION__ << std::endl;
    }
    CTarget()
    {
        m_strMsg = "1343rwkjdfkjdfasdklf";
    }
    void SomeHandle()
    {
        std::cout << __FUNCTION__ << std::endl;
        std::cout << m_strMsg << std::endl;
    }
    void SomeHandle1()
    {
        std::cout << __FUNCTION__ << std::endl;
    }
private:
    std::string m_strMsg;
};
class CSource
{
public:
    boost::signals2::connection Connect(const boost::signals2::signal<void(void)>::slot_type &sub)
    {
        return m_sig.connect(sub);
    }
    void OnSig()
    {
        m_sig();
    }
private:
    boost::signals2::signal<void(void)> m_sig;
};
int _tmain(int argc, _TCHAR* argv[])
{
    CSource source;
    boost::signals2::connection conn;
    {
        CTarget target;
        
        /*conn = */source.Connect(boost::bind(&CTarget::SomeHandle, &target));
        source.Connect(boost::bind(&CTarget::SomeHandle1, &target));
        source.OnSig();
    }
    source.OnSig();
return 0;
}


鍦ㄧ戶鎵縝oost::signals2::trackable鐨勬儏鍐典笅錛孴arget鏋愭瀯浠ュ悗涓嶄細(xì)璋冪敤錛屼絾鏄笉緇ф壙鏄細(xì)璋冪敤鐨勩備篃灝辨槸璇達(dá)紝榪欐槸涓涓嵄闄╂搷浣滐紝涓嶇煡閬撳唴閮ㄦ庝箞綆$悊鐨勶紝浼?xì)涓嶄細(xì)鍑虹幇鍐呭瓨娉勬紡锛?br />/////////////////////////////////////////////////////////////////////////////


// boost_singal_solt.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <boost/signals2.hpp>
class CSource
{
public:
    boost::signals2::connection Connect(const boost::signals2::signal<void(void)>::slot_type &sub)
    {
        return m_sig.connect(sub);
    }
    void OnSig()
    {
        m_sig();
    }
private:
    boost::signals2::signal<void(void)> m_sig;
};
class CTarget : public boost::signals2::trackable
{
public:
    virtual ~CTarget()
    {
        std::cout << __FUNCTION__ << std::endl;
        m_con.disconnect();
    }
    CTarget()
    {
        m_strMsg = "1343rwkjdfkjdfasdklf";
    }
    void RegisterSolts(CSource& source)
    {
        m_con = source.Connect(boost::bind(&CTarget::SomeHandle, this));
    }
    void SomeHandle()
    {
        std::cout << __FUNCTION__ << std::endl;
        std::cout << m_strMsg << std::endl;
    }
    void SomeHandle1()
    {
        std::cout << __FUNCTION__ << std::endl;
    }
private:
    std::string m_strMsg;
    boost::signals2::connection m_con;
};
int _tmain(int argc, _TCHAR* argv[])
{
    CSource source;
    boost::signals2::connection conn;
    {
        CTarget target;
        
        target.RegisterSolts(source);
        //source.OnSig();
    }
    source.OnSig();
return 0;
}
紜鍙緇存姢濂絚onnection鍦ㄥ璞arget鏋愭瀯浠ュ悗涓瀹氭槸disconnect搴旇灝監(jiān)K娌′簨錛岋紝錛?br />




///////////////////////////////////////////


鏁翠綋涓婄湅鏉ユ槸榪欐牱錛?br />闂錛歵arget鐨勬垚鍛樺嚱鏁板拰this鎸囬拡鎵撳寘娉ㄥ唽鍒皊ource涓婁互鍚庯紝濡傛灉target鏋愭瀯錛宻ource鏃犳硶鎰熺煡鍒幫紝鍙兘浼?xì)璋冪敤宸簿l忔垚涓洪噹鎸囬拡鐨則arget鍦板潃銆?br />瑙e喅錛歴ignals2搴撶殑瑙e喅鍔炴硶鏄紝鐢ㄤ竴涓猚onnection鏉ョ淮鎶ゆ墦鍖呯殑target鎴愬憳鍑芥暟鍜宻ource涓婄殑signal鐨勮繛鎺ュ叧緋匯倀arget鎸佹湁榪欎釜connection錛屽綋鑷韓鏋愭瀯鐨勬椂鍊欏繀欏昏皟鐢╠isscontion瑙i櫎榪欎釜鍏崇郴銆?br />
濡傛灉瑕佹妱琚紝涔熸槸瑕佽璁′竴縐嶆満鍒訛紝鍦╰arget鏋愭瀯鐨勬椂鍊欙紝鎯沖姙娉曟竻闄ゅ畠鍦ㄥ埆澶勬敞鍐岀殑鍑芥暟鎸囬拡銆?br />1.鍙互寤虹珛target鍒皊ource鐨勫叧緋伙紝target鏋愭瀯浠ュ悗閫氱煡source錛宻ouce娓呯悊鑷韓淇濈暀鐨則arget鐩稿叧鎵撳寘鍑芥暟銆傝繖縐嶆柟寮忓湪浣跨敤boost bind鐨勬椂鍊欏彲鑳藉氨鏈夐棶棰樹簡錛屽簲涓轟箣渚濋潬target鎸囬拡鍘誨垽鏂璪ind鍑烘潵鐨刦unction鏈夐毦搴︺?br />2.寤虹珛鍏崇郴鐨勬椂鍊欏氨灝嗚В闄ゅ叧緋葷殑鍑芥暟鎵撳寘鍒頒竴涓柊鐨勫璞′腑錛岀劧鍚庣敱target璐熻矗鍦ㄨ嚜宸辨瀽鏋勭殑鏃跺欏幓璋冪敤瀹冦?br />
錛侊紒錛佸鏋渟ource鍏堜簬target鏋愭瀯錛屽氨鎮(zhèn)插墽浜嗐備絾鏄疄闄呮儏鍐墊槸錛屽鏋渟ource宸茬粡鏋愭瀯浜嗭紝涔熸棤娉曡Е鍙憈arget緇戝畾鐨勫嚱鏁頒簡銆備絾闂鏄紝target鏋愭瀯鐨勬椂鍊欒繕鏄幓瑙﹀彂source緇戝畾鍒皌arget鐨勮В闄ゅ叧緋葷殑鍑芥暟銆傛?zhèn)插偓銆備絾鏄疄闄呮祴璇曡繖涓棶棰樹笉瀛樺湪錛屼及璁℃槸鐢ㄧ被浼紈eak_ptr鐨勬妧鏈?br />鍦ㄥ畬鍏ㄧ悊瑙d箣鍓嶏紝鍔″繀淇濊瘉source鐢熷懡鍛ㄦ湡澶т簬target
// boost_singal_solt.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <boost/signals2.hpp>
class CSource
{
public:
    boost::signals2::connection Connect(const boost::signals2::signal<void(void)>::slot_type &sub)
    {
        return m_sig.connect(sub);
    }
    void OnSig()
    {
        m_sig();
    }
private:
    boost::signals2::signal<void(void)> m_sig;
};
class CTarget : public boost::signals2::trackable
{
public:
    virtual ~CTarget()
    {
        //std::cout << __FUNCTION__ << std::endl;
        m_con.disconnect();
    }
    CTarget()
    {
        m_strMsg = "1343rwkjdfkjdfasdklf";
    }
    void RegisterSolts(CSource& source)
    {
        m_con = source.Connect(boost::bind(&CTarget::SomeHandle, this));
    }
    void SomeHandle()
    {
        std::cout << __FUNCTION__ << std::endl;
        std::cout << m_strMsg << std::endl;
    }
    void SomeHandle1()
    {
        std::cout << __FUNCTION__ << std::endl;
    }
private:
    std::string m_strMsg;
    boost::signals2::connection m_con;
};
int _tmain(int argc, _TCHAR* argv[])
{
    for (;;)
    {
        CSource* pSource = new CSource;
        boost::signals2::connection conn;
        CTarget* pTarget = new CTarget;
        pTarget->RegisterSolts(*pSource);
        delete pSource;
        delete pTarget;
    }
    //source.OnSig();
return 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

娌℃湁瀹屽叏璇繪槑鐧戒箣鍓嶏紝鍦ㄩ渶瑕?×24榪愯鐨勭幆澧冭繕鏄厧閲嶄嬌鐢ㄣ備笉榪囧鎴風(fēng)璨屼技鏃犳墍璋擄紝錛岋紝鍥с?/div>


Enic 2014-05-30 01:09 鍙戣〃璇勮
]]>鍒╃敤boost鍋歴tring鍒皐string杞崲錛屼互鍙?qiáng)瀛椊W﹂泦杞崲http://m.shnenglu.com/Error/archive/2014/02/09/205684.htmlEnicEnicSun, 09 Feb 2014 04:34:00 GMThttp://m.shnenglu.com/Error/archive/2014/02/09/205684.htmlhttp://m.shnenglu.com/Error/comments/205684.htmlhttp://m.shnenglu.com/Error/archive/2014/02/09/205684.html#Feedback0http://m.shnenglu.com/Error/comments/commentRss/205684.htmlhttp://m.shnenglu.com/Error/services/trackbacks/205684.html#include <boost/locale.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
//std::locale::global(std::locale("utf-8"));
std::locale::global(std::locale(""));  // 璁劇疆鍏ㄥ眬鐨凜榪愯搴搇ocale  鍙互閽堝cout  fstream絳夊崟鐙緗?絀鴻〃紺洪粯璁や嬌鐢ㄥ綋鍓嶇郴緇熷瓧絎﹂泦
std::string strGbk = "澶╂湞鐨勬柟寮忓紑鍙戝埢褰曟満鍗℃礇鏂垎123qwerwer綣?;
std::wstring wstr = boost::locale::conv::to_utf<wchar_t>(strGbk, "gbk");
std::string strA = boost::locale::conv::from_utf(wstr, "GBK");
std::cout << strGbk.c_str() << std::endl;
std::wcout << wstr.c_str() << std::endl;
std::cout << strA.c_str() << std::endl;
try
{
std::string strBit5;
strBit5 = boost::locale::conv::between(strA, "big5", "gbk");
strA = boost::locale::conv::between(strBit5, "GBK", "BIG5");
}
catch (std::exception& e)
{
std::cout << e.what() << std::endl;
}
catch (...)
{
std::cout << "..." << std::endl;
}
std::cout << __FUNCTION__ << std::endl;
return 0;
}


Enic 2014-02-09 12:34 鍙戣〃璇勮
]]>
boost::splithttp://m.shnenglu.com/Error/archive/2013/04/11/199325.htmlEnicEnicWed, 10 Apr 2013 16:29:00 GMThttp://m.shnenglu.com/Error/archive/2013/04/11/199325.htmlhttp://m.shnenglu.com/Error/comments/199325.htmlhttp://m.shnenglu.com/Error/archive/2013/04/11/199325.html#Feedback0http://m.shnenglu.com/Error/comments/commentRss/199325.htmlhttp://m.shnenglu.com/Error/services/trackbacks/199325.html
鎼炰簡鎼瀞plit錛屽彂鐜癰oost閲岃竟宸茬粡鏈変簡錛屽氨鎷胯繃鏉ョ洿鎺ョ敤錛屼箣鍓嶇炕浜嗕笅facebook鐨勶紝涔熸病瑙佹瘮boost鏇村鏄撹錛岃繕鏄痓oost綆椾簡銆?br />鍦╲s2012涓婄紪璇戜簡涓涓嬶紝鍙戠幇鏈夐棶棰橈細(xì)error C4996: 'std::_Copy_impl': Function call with para

鎵句簡涓嬶紝鑰佸鏄繖涔堣鐨勶細(xì)http://stackoverflow.com/questions/14141476/warning-with-boostsplit-when-compiling

You haven't done anything wrong. Visual Studio is being overly cautious. In debug mode, visual studio uses something called "Checked Iterators". Pointers are also iterators, but the checking mechanism doesn't work with them. So when a standard library algorithm is called with pointers, which is something that boost::split does, it issues this warning.

You'll get the same warning with this obviously safe code:

int main()
{
    int x[10] = {};
    int y[10] = {};
    int *a = x, *b = y;
    std::copy(a, a+10, b);
}

Disable the warning. It's for beginners. It's on by default for the safety of beginners, because if it was off by default, they wouldn't know how to turn it on.





#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string.hpp>
void LearnSplit()
{
    std::string strTem("1,2,3,4");
    std::list<std::string> listStrTem;
    std::vector<std::string> vectorStrTem;
    boost::split(listStrTem, strTem, boost::is_any_of(","));
    boost::split(vectorStrTem, strTem, boost::is_any_of(","));
    for(auto item : listStrTem)
    {
        std::cout << item.c_str() << std::endl;
    }
    std::string s = "Hello, the beautiful world!";
    std::vector<std::string> rs;
    boost::split( rs, s, boost::is_any_of( " ,!" ), boost::token_compress_on );
}
int _tmain(int argc, _TCHAR* argv[])
{
    LearnSplit();
return 0;
}


Enic 2013-04-11 00:29 鍙戣〃璇勮
]]>
久久精品免费一区二区| 伊人久久大香线蕉综合影院首页 | 久久国产香蕉一区精品| 国产精品内射久久久久欢欢 | 精品久久777| 办公室久久精品| 麻豆精品久久久久久久99蜜桃| 亚洲狠狠婷婷综合久久久久 | 狠狠色综合网站久久久久久久高清 | 婷婷五月深深久久精品| 99久久成人18免费网站| 香蕉久久久久久狠狠色| 国产成人精品久久亚洲| A狠狠久久蜜臀婷色中文网| 无码8090精品久久一区| 久久国产免费观看精品| 亚洲中文精品久久久久久不卡| 久久国产热这里只有精品| 精品久久无码中文字幕| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久亚洲欧洲国产综合| 久久午夜电影网| 国产成人精品白浆久久69| 伊人久久综合精品无码AV专区| 日韩va亚洲va欧美va久久| 999久久久国产精品| 狠狠色婷婷综合天天久久丁香| 人妻少妇久久中文字幕| 麻豆AV一区二区三区久久| 午夜精品久久久久久久久| 麻豆AV一区二区三区久久| 欧美一区二区三区久久综| 久久人人青草97香蕉| 亚洲国产成人精品女人久久久 | 久久婷婷五月综合97色直播| 欧美伊人久久大香线蕉综合69| 国产精品gz久久久| 精品久久久久国产免费| 狠狠色综合久久久久尤物| 久久久91人妻无码精品蜜桃HD| 久久九九免费高清视频|