boost::any實現

在用C++編寫coroutine基礎類的時候,需要參數的傳遞。而基礎類對參數類型一無所知,畢竟參數是與應用相關的。此時,boost::any就派上用場了。編寫此類的時候並沒有參考boost::any代碼(因此功能肯定不如boost::any完善嚴謹),寫完後做了一下參考,將命名向boost看齊1.  先思考一下Any的用法:Any obj;obj = 5;cout << any_cast<int>(obj) << endl;obj =

JS實用——Interacting with checkbox

/** * 全選的所有指定名稱的checkbox *@state 全選的checkbox的狀態 *@name 表格中的所有checkbox的名稱 *@author fangtf *@type void */ function selectAll(state,name) {

Win32 Application和Win32 Console Application區別

Win32 Application和Win32 Console Application 都是工作在32位Windows環境的程式。 其中Win32 Application 就是普通的常見的視窗應用程式,當然有的介面做得比較個人化,比如圓形的、不規則形狀的…… 它們都是所謂的GUI(Graphics User Interface圖形使用者介面),我們可以通過滑鼠點擊來完成控制。Win32

靜態頁面間資料傳遞方法總結–Data transforming between static html pages

靜態壓面間資料的傳遞方法很多,目前經搜尋得到主要以下幾種方法。但是靜態頁面間資料傳遞用處應該不會很多,在開發工作單位的前期由於需要做UI Mockup 給使用者體驗,簡單的資料傳遞還是會用到,如有更好的方法請跟帖補充,不甚感激。此貼完善中。註:1.escape()及unescape()方法已淘汰,使用encodeURI() 和 decodeURI()對加入URL的參數進行編碼;2.很好的參考資料,《JavaScript 權威指南》(download from here),可以下載到英文版第六版,

MEMCACHED(5)——對雜湊表的改進

1.在官網還是哪兒,我看到了一句關於代碼中雜湊表的注釋:具體記不清楚了,大概有個單詞是coarse,意識是說,該雜湊表的鎖粒度實在是太粗了,以後再細化。 確實,非常粗,多個背景工作執行緒對它的互斥競爭比較強烈,到處都是對cache_lock的上鎖解鎖。 2.解決方案:首先,想把雜湊表拆成多個小表,怎麼拆呢?嗯,看一下背景工作執行緒;之前說過,背景工作執行緒將IO與邏輯糅合在了一起。嘗試剝離它們把。 我的設計方案如下: 主線程: 

計數智能指標要點(shared_ptr)

引言: 與java等眾多支援GC的現代語言不同,C/C++將更多的記憶體控制權交給程式員,在保證效率的同時,也給了很多犯錯的機會。常見的記憶體泄露、重複釋放等等。智能指標大大減少了犯錯的機會,簡化代碼,提高可維護性。常用的智能指標有scope_ptr(c++

GCC O2編譯的bug

最近對以前寫的tcp網路程式庫做輸送量測試,gcc O1編譯,運行效果很好,可以達到900MiB/s。但是問題來了,當我用gcc O2選項編譯網路程式庫,程式一啟動就core掉。查看coredump檔案,原因大概如下:掛在g_pool.DoSomething();但是在DoSomething()裡, this != &g_pool;非常詭異。我對自己的程式還是很有信心,不會有stack或者heap溢出錯亂:不使用靜態數組,只用容器;只new但不delete,資源交給 UniquePtr

不改動已存在代碼,程式退出時檢測記憶體泄露

(2012.05.19補充:儘管-rdynamic選項使得可讀性大大提高,但仍然不太好根據二進位地址定位到某行泄露代碼;這時使用objdump  -S  exefile 即可)在WINDOWS下檢測記憶體泄露比較容易,畢竟MSDN強大,方法多多;有興趣可以查看VLD原始碼;  前幾天無意中從MAN文檔中查到linux可以給malloc掛鈎子;於是寫下了如下檢測記憶體泄露的代碼;已存在的程式碼只需要與linux_vld.o檔案一起編譯連結即可,退出時會列印記憶體泄露狀態;對於下面檔案,g++

memcached(1)

1.memcached參數解讀 "p:"  /* TCP port number to listen on */    這是監聽通訊端所綁定的連接埠號碼,對應的變數是settings.port; "U:"  /* UDP port number to listen on */   UDP套介面所綁定的連接埠號碼,對應的變數是settings.udpport;   進程會建立兩種類型的通訊端用於服務。其實還有UNIX域SOCKET,本文忽略之。 "m:"  /* max memory to

boost enable_if——SFINAE(匹配失敗不是錯誤)

讓我們看下這段程式:很簡單的一個重載;如我所願,程式正常運行結果如下:void func(int)void func(T) [with T = Test]現在,取消最後一行的注釋,再次編譯。。。出現了如下編譯錯誤:test0.cc: In function ‘void func(T) [with T = short int]’:test0.cc:28:   instantiated from heretest0.cc:12: error: ‘short int’ is not a class,

string類型能和字串相加嗎?字串常量能相加嗎?

程式1:#include <iostream>#include <string>int main(){ const std::string hello="hello"; const std::string message =hello+",world"+"!"; std::cout<<message<<std::endl;}程式2:#include <iostream>#include <string>int main(){

MEMCACHED(2) 網路執行緒模式

1

用空格實現連結分類的排序

csdn的blog系統的連結分類有兩種,一種是系統定義的,如導“導航”,還有一種是自訂的,如本blog的“友情連結”、“常用連結”等。系統定義的連結分類排在自訂分類的上面,而對於自訂的分類則按拼音排序,拼音序總是不能令人滿意的。偶發現分類名中多餘的空格是不顯示的,於是想到用空格來實現排序。字串的比較規則是從左邊第一個字元開始比較,直到找到不相等的字元為止,其中含有較大字元的字串較大,固“  友情連結”比“ 我的其他網站”小,這就用空格的多少實現排序了。

jQuery讀書筆記(一)

1.jQuery對象和DOM對象的區別;jQuery對象是一組數組,可以對jQuery對象調用jQuery庫的方法而DOM對象則只能調用標準的JavaScript方法;二者可以互相轉化:var $cr = $("#cr"); //jQuery 對象var cr = $cr[0]; //[index]方法獲得DOM對象,或者get(index)方法 $cr.get(0)alert(cr.checked); //檢測checkbox是否被選中,調用了DOM對象的方法var cr =

使用文字檔(.txt)進行資料存取的技巧總結(上)

特別說明:由於大家在 I/O 存取上以 txt 檔案為主,且讀取比儲存更麻煩(儲存的話 fwrite, fprintf基本夠用),因此下面的討論主要集中在“txt

困擾我快一個月的BUG

昨天終於解決了...1.背景:提供音視頻服務的業務隨著使用者量的上漲,UDP丟包逐漸加劇。其實包量也不大,高峰期每秒不超過10W的UDP包,不應該丟包的。而前輩們的網路底層代碼是單線程的,因此決定將網路線程獨立出來,以提高效率。2.多線程策略  學過作業系統的應該知道,生產者和消費者的例子。只需要知道1:1的例子即可,這種情形下,可以使用無鎖環形緩衝區,避免了mutex的代價(儘管事實上mutex的代價並不大)。  對於每一個socket,從邏輯線程角度看(也就是你寫的那個運行main的線程),

使用文字檔(.txt)進行資料存取的技巧總結(下)

三.具體例子分析:Matlab網站用兩個例子非常詳盡地介紹了各個命令的基本用法,實際中,面對手頭上的資料,如何選用合適的命令呢?以下結合幾個樣本給出一些總結,大家舉一反三就可以了:1. 純資料(列數相同):源檔案: CODE:0 3866.162 2198.938 141.1401 3741.139 2208.475 141.25223866.200 2198.936 141.1563 3678.048 2199.191 141.2304 3685.453 2213.726141.2615 37

從圖書館回來

上次借了兩本java的教程,本以為至少可以看完一本的,沒有想到大概只看了四分之一,只怪自己太懶了,後來的幾天就根本沒有翻過。書今天終於到期了,也好還回去,反正放著也是不看的。吃過晚飯,我特地跑了一趟圖書館。過去的時候下了一點雨,不是很大,但我想走走,感受一下雨中漫步的感覺,順便看看路上的行人,於是就沒有騎車。一路上,見到一對對情侶的,沒有什麼感覺,像我這樣隻身一人走路還是很多的。但是在回來的路上就不舒服,忽然覺得自己是那麼的寂寞,過去是沒有這樣的感覺的,或是這樣的感覺非常的輕微,但這時的感覺是那

枚舉(enum),類型說明(typedef),預先處理指令

枚 舉(enum)枚舉是一個被命名的整型常數的集合, 枚舉在日常生活中很常見。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一個枚舉。枚舉的說明與結構和聯合相似, 其形式為:enum 枚舉名{標識符[=整型常數],標識符[=整型常數],...標識符[=整型常數],} 枚舉變數;如果枚舉沒有初始化, 即省掉"=整型常數"時, 則從第一個標識符開始, 順次賦給標識符0, 1, 2,

總頁數: 61357 1 .... 16109 16110 16111 16112 16113 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.