锘??xml version="1.0" encoding="utf-8" standalone="yes"?>青青草原综合久久大伊人,99久久无码一区人妻a黑,久久精品国产第一区二区http://www.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://www.shnenglu.com/Error/archive/2014/05/30/207147.htmlEnicEnicThu, 29 May 2014 17:09:00 GMThttp://www.shnenglu.com/Error/archive/2014/05/30/207147.htmlhttp://www.shnenglu.com/Error/comments/207147.htmlhttp://www.shnenglu.com/Error/archive/2014/05/30/207147.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/207147.htmlhttp://www.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鏋愭瀯浠ュ悗涓嶄細璋冪敤錛屼絾鏄笉緇ф壙鏄細璋冪敤鐨勩備篃灝辨槸璇達紝榪欐槸涓涓嵄闄╂搷浣滐紝涓嶇煡閬撳唴閮ㄦ庝箞綆$悊鐨勶紝浼氫笉浼氬嚭鐜板唴瀛樻硠婕忥紵
/////////////////////////////////////////////////////////////////////////////


// 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搴旇灝監K娌′簨錛岋紝錛?br />




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


鏁翠綋涓婄湅鏉ユ槸榪欐牱錛?br />闂錛歵arget鐨勬垚鍛樺嚱鏁板拰this鎸囬拡鎵撳寘娉ㄥ唽鍒皊ource涓婁互鍚庯紝濡傛灉target鏋愭瀯錛宻ource鏃犳硶鎰熺煡鍒幫紝鍙兘浼氳皟鐢ㄥ凡緇忔垚涓洪噹鎸囬拡鐨則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鏋愭瀯錛屽氨鎮插墽浜嗐備絾鏄疄闄呮儏鍐墊槸錛屽鏋渟ource宸茬粡鏋愭瀯浜嗭紝涔熸棤娉曡Е鍙憈arget緇戝畾鐨勫嚱鏁頒簡銆備絾闂鏄紝target鏋愭瀯鐨勬椂鍊欒繕鏄幓瑙﹀彂source緇戝畾鍒皌arget鐨勮В闄ゅ叧緋葷殑鍑芥暟銆傛偛鍌備絾鏄疄闄呮祴璇曡繖涓棶棰樹笉瀛樺湪錛屼及璁℃槸鐢ㄧ被浼紈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榪愯鐨勭幆澧冭繕鏄厧閲嶄嬌鐢ㄣ備笉榪囧鎴風璨屼技鏃犳墍璋擄紝錛岋紝鍥с?/div>


Enic 2014-05-30 01:09 鍙戣〃璇勮
]]>鍒╃敤boost鍋歴tring鍒皐string杞崲錛屼互鍙婂瓧絎﹂泦杞崲http://www.shnenglu.com/Error/archive/2014/02/09/205684.htmlEnicEnicSun, 09 Feb 2014 04:34:00 GMThttp://www.shnenglu.com/Error/archive/2014/02/09/205684.htmlhttp://www.shnenglu.com/Error/comments/205684.htmlhttp://www.shnenglu.com/Error/archive/2014/02/09/205684.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/205684.htmlhttp://www.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://www.shnenglu.com/Error/archive/2013/04/11/199325.htmlEnicEnicWed, 10 Apr 2013 16:29:00 GMThttp://www.shnenglu.com/Error/archive/2013/04/11/199325.htmlhttp://www.shnenglu.com/Error/comments/199325.htmlhttp://www.shnenglu.com/Error/archive/2013/04/11/199325.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/199325.htmlhttp://www.shnenglu.com/Error/services/trackbacks/199325.html
鎼炰簡鎼瀞plit錛屽彂鐜癰oost閲岃竟宸茬粡鏈変簡錛屽氨鎷胯繃鏉ョ洿鎺ョ敤錛屼箣鍓嶇炕浜嗕笅facebook鐨勶紝涔熸病瑙佹瘮boost鏇村鏄撹錛岃繕鏄痓oost綆椾簡銆?br />鍦╲s2012涓婄紪璇戜簡涓涓嬶紝鍙戠幇鏈夐棶棰橈細error C4996: 'std::_Copy_impl': Function call with para

鎵句簡涓嬶紝鑰佸鏄繖涔堣鐨勶細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 鍙戣〃璇勮
]]>
精品视频久久久久| 四虎影视久久久免费观看| 青草国产精品久久久久久| 色婷婷综合久久久中文字幕| 久久精品国产AV一区二区三区| 久久久久久人妻无码| 91精品国产综合久久香蕉| 伊人色综合久久天天人守人婷| 久久亚洲精品无码VA大香大香| 69SEX久久精品国产麻豆| 久久久久成人精品无码| 久久久女人与动物群交毛片| 精品久久久久久无码人妻热| 国内精品伊人久久久久777| 伊人丁香狠狠色综合久久| 精品久久久久久久国产潘金莲 | 狠狠色伊人久久精品综合网| 亚洲人成无码网站久久99热国产 | 久久91精品久久91综合| 亚洲人AV永久一区二区三区久久| 国产午夜精品久久久久免费视| 久久亚洲国产最新网站| 国産精品久久久久久久| 国产精品视频久久久| 亚洲va久久久噜噜噜久久天堂| 色天使久久综合网天天| 99久久国产综合精品网成人影院 | 国产69精品久久久久9999APGF| 国产精品无码久久四虎| 九九久久自然熟的香蕉图片| 亚洲午夜久久久久久久久电影网| 久久伊人影视| 亚洲国产精品无码久久久久久曰| 国产免费久久精品丫丫| 激情综合色综合久久综合| 一级做a爰片久久毛片16| 国产—久久香蕉国产线看观看| 精品久久久噜噜噜久久久| 国产精品一区二区久久| 久久97精品久久久久久久不卡| 91亚洲国产成人久久精品网址|