re: 直接的VS 2005 遠程調試 溪流 2011-04-06 16:39
學習了
1、打包人員不該偷懶,他們應該知道完整的精確的文件清單,而不僅僅是“某個目錄下的所有文件”
2、還是沒有看出來把solution單獨藏在一個目錄的用意。
個人非常討厭什么 bin,source,solution,。。。
你要么就純粹自己搞,bin、source 都可以,就別 solution、project 了,最后自己寫腳本
要么就用 solution、project,目錄就大體上按默認的,一個project一個目錄,
既用 solution、project,又獨立搞一套目錄體系,然后修改一大堆純粹關于目錄的配置參數,何必呢
僅僅以快或慢來決定用哪個我覺得不好
這兩個函數的語義是不同的,要看上下文中你要操作的究竟是字符串還是普通內存。就算沒法區分這一點,快慢也并非唯一標準,可能還有一些因素是重要的。
(抱歉,最近有點排斥“唯性能主義”。)
re: 失足于shared_ptr 溪流 2011-04-02 09:53
返回的不是臨時對象的引用。
之所以 warining,是因為 m_pB 會隨著 C 對象的析構而消亡,此時,之前有這個返回的引用就成了孤魂野鬼了。m_pB 在類外的地位就是一個局部變量。
re: 支持不同類型的 min 函數 溪流 2011-04-02 09:40
@flyinghearts
是的,應該顯式轉換,但是我必須知道原始返回類型后,才能考慮如何轉換得到的結果。當我寫下min(1LL, 2.0f) 的時候,我該認為返回類型是什么呢?或者是你假定不允許寫下min(1LL, 2.0f)?請注意,當寫下“min(1LL, 2.0f)”的時候,我并不了解min內部做了什么,我只是認為在比較他們的大小,不會猜到min里面會進行類型轉換,因此不會寫成“min((float)1LL, 2.0f)”或者“min(1LL, (long long)2.0f)”。
re: 支持不同類型的 min 函數 溪流 2011-04-01 09:34
對內建類型來說,sizeof 誰大就轉到誰,也不是最合理的
比如int->double,我認為應該可以轉換;而float->long long呢?貌似應該不認為可轉換吧
re: 不對稱邊界編碼風格 溪流 2011-03-31 17:40
嗯,支持左閉右開區間
@空明流轉
我現在倒是有了個不太完美的解法:
// 判斷 T 到 U 的轉換是否存在
template <typename T, typename U>
class Conversion
{
private:
typedef char Small;
class Big { char XXX[2]; };
static Small Test(U);
static Big Test(...);
static T MakeT();
public:
enum
{
Exists = (sizeof(Test(MakeT())) == sizeof(Small)),
};
};
// 以上對內置類型的判斷還是不夠給力,
// 比如給出 T = int,U = double,它認為可轉換;反過來,它還是認為可轉換,只是多了個 warning 而已。
// 所幸,這些內置類型是有限的,我們可以采用人肉的方法,兩兩組合,分別給出偏特化版本。
// 簡潔起見,僅列出 int 和 double 兩個。
template <>
class Conversion<int, double>
{
public:
enum
{
Exists = true,
};
};
template <>
class Conversion<double, int>
{
public:
enum
{
Exists = false,
};
};
template <bool Condition, typename TypeIfTrue, typename TypeIfFalse>
struct Select
{
typedef TypeIfFalse Type;
};
template <typename TypeIfTrue, typename TypeIfFalse>
struct Select<true, TypeIfTrue, TypeIfFalse>
{
typedef TypeIfTrue Type;
};
struct NullType;
template <typename T, typename U>
struct CommonType
{
typedef typename Select<Conversion<T, U>::Exists,
U,
typename Select<Conversion<U, T>::Exists,
T,
NullType>::Type
>::Type Type;
};
template <typename T1, typename T2>
typename CommonType<T1, T2>::Type Min(T1 t1, T2 t2)
{
return (t1 < t2 ? t1 : t2);
}
int main()
{
int a = 0;
double b = 1;
CommonType<int, double>::Type m1 = Min(a, b);
CommonType<double, int>::Type m2 = Min(a, b);
int m3 = Min(a, b);
double m4 = Min(a, b);
return 0;
}
只是。。。太人肉了。。。
@周星星
不一定要 lambda 啊,單單一個普通函數就可以了,就像我原文里寫的那樣
@gbb21
這還沒到運行時啊,模板函數特化的時候就知道了啊
@陳梓瀚(vczh)
比如 T1 = int, T2 = double,我期望返回類型是 double
@so
我不需要參數的數值大小,只需要知道類型信息啊,編譯期可以知道
@OwnWaterloo
你也認為它多管閑事了?!好~哈哈!
re: 徹底放棄CN域名 溪流 2011-03-28 09:19
可是現在,當你訪問慢的時候,被墻的時候,你會覺得不僅僅被魚肉。。。
re: 坦克大戰 曾經幼稚的代碼 溪流 2011-03-19 12:09
@coreBugZJ
仰慕會寫Win32游戲的
@volnet
看到這哥們的回復,我又看了下自己當時的回復,一開始還真有點不知道當時想表達什么。后來仔細看了下,應該是這么個意思吧:你說 IsWOW64 不能用于檢測系統是32位還是64位的,原因是64位程序調用IsWOW64得到的結果不是預期的。我對這個因果推理的邏輯表示費解。既然要檢測系統是32位還是64位的,程序本身必須是32位的,64位程序自然只能運行在64位系統下不能運行在32位系統下,所以對64位程序來說,是無所謂“檢測”操作系統是不是32位的。IsWOW64確實可以讓32位程序檢查到操作系統到底是32位還是64位,已經充分地支持了“IsWOW64 可以用于檢測系統是32位還是64位的”。。。。好繞,不知道我表達清楚了沒有。所以,能不能拿64位程序調用 IsWOW64 的結果說事。
re: 坦克大戰 曾經幼稚的代碼 溪流 2011-03-18 18:54
@coreBugZJ
不貼了,偶得太弱智了,還是DOS版的
re: 坦克大戰 曾經幼稚的代碼 溪流 2011-03-18 12:44
呃。。。好懷舊啊。。。搞得哥也想貼坦克
re: 如何書寫權威的程序庫頭文件 溪流 2011-03-18 09:29
哈哈
re: 學習下 WTL 的 thunk 溪流 2011-03-17 23:51
re: 學習下 WTL 的 thunk 溪流 2011-03-17 23:11
@OwnWaterloo
又看了一些人對回調函數的理解,覺得你在這個問題上如此激烈的反應是必要的,太多人認為function之類的玩意兒就能解決回調函數少參數的問題了,甚至沒意識到這個問題是什么問題。。。
re: 稚嫩版垃圾收集器 之 工作機制 溪流 2011-03-17 22:26
路過,學習~
@dayn9
不要裝,好嗎?有什么話說出來,大家都可以受教~
@C++愛好者
呵呵。重新回顧了上面這么多糾結的提法(塊啊、字節流啊、二進制格式啊、struct啊,char啊),再看到你說明白話,頓感輕松。塊也好、二進制格式也好、struct也好,不就是一堆字節么。。。
re: 如何寫出高質量的函數 溪流 2011-03-10 10:47
項目里只要是帶上業務邏輯處理的,就找不到高質量的函數。。。。
@fixdot
對,當時也是這樣的問題。也是原因不明。可是既然原因不明,那么作為論據其實有問題的。如果這兩個函數確實有引用計數的,那么應該提倡用時CoInitialize,用完馬上CoUninitialize。除非能夠說出“一個進程里最好只調用一次”的道理。
@OwnWaterloo
在足夠牛b的機器上,不見得新版本比舊版本慢啊
@Carnegieer
Email: kejinjin (at) gmail.com
re: 也談談GUI框架 溪流 2011-02-28 23:10
@zdhsoft
謝謝推薦,抽空一定看看
re: 孟巖blog理解矩陣一、二, 三 溪流 2011-02-22 20:30
要是大一能看到有這樣高度的解釋就好了,可惜那些教授們根本不去鉆研教學方法,不知道怎么講大家才能理解,,,說不定他們自己也不一定理解,或者不一定理解自己是怎么理解的
re: 有時,你真的太自信了 溪流 2011-02-22 16:49
@by
就算有這樣的需求,也應該在另一個地方寫專用工具來處理源代碼或者處理二進制文件,而不應該在源代碼中丟下這些不三不四的東西讓別人費解。寫這樣的代碼不就是為了炫耀一下“我懂機器碼”么?這沒什么值得炫耀的。
re: 有時,你真的太自信了 溪流 2011-02-22 13:09
@by
體現的是折騰,不是功力,謝謝。
除非你是學院派的,不在工程前線呆。
re: 有時,你真的太自信了 溪流 2011-02-21 12:45
話題不錯,例子不好,支持樓上
re: 一個大整數類的實現 溪流 2011-02-16 00:40
@foxriver
好的,謝謝分享,有空我得想辦法改進下~
re: 也談談GUI框架 溪流 2011-02-16 00:40
@abeng
@小龍紅
你們倆都有DirectUI傾向。。。就是因為不想要Windows來管理嗎?想了解下,Windows管理方式的那些方面值得我們拋棄它?
re: 也談談GUI框架 溪流 2011-02-16 00:38
@欲三更
謝謝你的分享~
控件工作量確實很多啊,標準的,自己的,才做了一個半~突然又有點不想解析 WPARAM LPARAM 了。。。
re: 一個大整數類的實現 溪流 2011-02-11 09:20
@foxriver
謝謝告知!
re: 再次批判 裘宗燕 溪流 2011-01-31 13:31
他的書沒看過,僅僅看了上面有人貼出的網址。雖說看上去態度不錯,但是有些詞語偏偏不用大家約定俗成的,自搞一套,這樣不好,,除非他真的能創造出一個流派。
@陳梓瀚(vczh)
@OwnWaterloo
一直用 Window Live Writer 寫~
@廷
咱換個位置多好,呵呵。說不定我也喜歡數學的,只是在讀數學的時候很不喜歡。
@gbb21
我沒有認識的在校的學妹了,進不了校上不了98了,求vpn~!
@OwnWaterloo
像是……帶版本控制的wiki?