//file: myproj/my_lambda.h -- wraps boost's lambda.hpp
#pragma warning(push)
//disable for this header only
#pragma warning(disable:
4512
)#pragma warning(disable:
4180
)#include
<
boost
/lambda
/lambda.hpp
>
#pragma warning(pop)
//restore original warning level
例二:函式引數未使用
遇到此類編譯警告資訊時,首先確保這個引數是否是無用的引數。如果是你為了以後擴充套件所留的佔位符,或者是函式簽名標準必須的引數,就刪除掉函式引數的名字。
//warning: "unused parameter 'localityhint'"
pointer allocate( size_type numobjects,
const
void
*localityhint =0
) //
new version: eliminates warning
pointer allocate( size_type numobjects,
const
void*/*
localityhint */=
0) 例三:變數已經定義了但從未使用過
首先確保該變數確實不需要被使用,然後將該變數作為表示式插入**中消除編譯警告資訊。
//warning: "variable 'lock' is defined but never used"
void
fun()
//new version: probably eliminates warning
void
fun()
例四:使用變數前沒有被初始化
如果變數沒有初始化,就初始化變數。具體做法參見《effective c++》第二版的item12,item13或是第三版的item4。
例五:缺少return語句
很多時候編譯器都需要為函式的所有控制流編寫return語句,即使你認為函式根本就不可能到達那裡。不過這也未必是壞事,而你也不必為此做很多事,只需要簡單的加個return語句就可以了。
//warning: missing "return"
intfun( color c ) }//
new version: eliminates warning
intfun( color c )
}雖然,對於大多數警告資訊我們都必須認真對待,但同時我們也應該看到,編譯器有時也會產生一些很無聊的警告資訊,甚至是一些虛假的警告資訊,當遇到這種警告資訊時,我們唯一能做的只能是禁止掉這些警告資訊。
終於為這一章做了個總結,可以開始看第二章的內容了。剛才又看了看《effective c++》第二版,才發現它的item48說的也是同樣的問題,看來編譯器的警告資訊確實值得我們認真對待。
工具開發 勿以善小而不為
這可能是乙個被大家忽略的話題。工具的開發,往往是軟體開發過程中不可或缺的關鍵因素。它們往往涉及到程式資料的製作,而這又是乙個複雜系統完成的必要前提。談起這個話題,其實更是一種倡議,希望我們能重視軟體開發過程中的工具開發。在專案開發過程中,做得好的專案,往往會在專案初期就設計好需要開發哪些工具,並且會...
不以善小而不為,不以惡小而為之。
通過下午的 看到的 也是給我們敲響了乙個警鐘。發現問題及時改正,看似乙個個微不足道的問題,背後卻是種種問題,首先,第一要改變我們的生活習慣。從小事做起,然後慢慢就養成習慣。提高自己的自制力,養成良好的行為習慣。第二 注重每乙個細節,看到問題要多思考,多想一想別人想不到的事。第三 警惕安全,危險的事情...
無為無不為
又是很久沒有吃過早飯,吃完早飯,只能再熬2個小時方可睡覺,否則這胃啊,又得跟我鬧彆扭。昨晚1點多就趴在床上看mfc,看到困了就順其自然的睡了過去,4點多點再次的趴了起來,渾身發燙的要命,估計又是感冒了,迷糊中喝了幾杯的開水,正坐在椅子上悠閒的吸菸,卻看到x也 起床了。正在納悶中,告知我肚子疼的厲害。...