勿以善小而不為

2022-03-24 12:23:19 字數 1573 閱讀 5827

//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也 起床了。正在納悶中,告知我肚子疼的厲害。...