轉自: http://www.cnblogs.com/qicosmos/p/4562174.html
整理一下吧,原文好亂。。。。。。。。。。。。。。。
page 4, 倒數第9,10行注釋中的變量名e和f應該改為g和h
page16, 第二行 "c++" 應為 "c++98/03"; page21, 第一段代碼傳回處為 "ret val" ,應為 "val;"; page61, 最後一行 "tuple<constchar*, int>tp" 應為 "tuple<const char *, int> tp"
page21, 關于模闆參數的順序搞錯了,現更正如下:
但需要注意的是,在調用函數模闆時,若顯示指定模闆的參數,由于參數填充順序是從左往右的,是以,像下面這樣調用:
func<long>(123); // func的傳回值類型是long
函數模闆func的傳回值類型是long,而不是int,因為模闆參數的填充順序從左往右,是以指定的模闆參數類型long會作為func的傳回值類型而不是參數類型,最終func的傳回類型為long。
page 28, 倒數第二行“而對于非集合類型,則需要先自定義一個合适的構造函數”中的“非集合類型”應該改為“非聚合類型”。
page62, 代碼段"auto tp = return std::tie(1, "aa", 2);"文法錯誤,要去掉return,tie不能綁定右值,應該改為:
int x = 1;
int y = 2;
string s = "aa";
auto tp = return std::tie(x, s, y);
接下來一段代碼中"constchar*" 應為 "const char *","tp.get"應該改為“std::get”
page62, 介紹forward_as_tuple的用法寫錯了,應該改為:
std::map<int, std::string> m;
m.emplace(std::piecewise_construct,
std::forward_as_tuple(10),
std::forward_as_tuple(20, 'a'));
page 63, 第二行“第2章”應該改為“第3章”。
page68, 代碼"int&& var1 = x; //var1"應該改為"int&& var1 = 1; //var1", 這個問題由讀者YZB_OO7指出,在此表示感謝。
68頁“其中,var1的類型是一個左值類型”,應該改為“其中,var1的類型是一個右值類型”,由網友低調指出,再次表示感謝。
69頁:
将輸出如下結果:
...
rvalue : 1
lvaue : 2 此處應該為 lvalue : 2
page74,倒數第二和第三行"_len"和"_data"應該為"m_len"和"m_data"。
page 173,代碼清單5-2中,both函數寫到Complex類的外面了,應該放裡面。
80頁: FuncWrapper(test0) ; // 沒有傳回值, 列印 1 此處應該是列印void
page93,第二行decay的描述不太準确,應該是移除引用和cv,函數或數組退化為指針。
page99第二段和第三段代碼中的很多空格被被吃掉了。
page101,"returnt"應該改為"return t"。
page107,109, "structSum"應該為"struct Sum";
page108,第二段代碼中 "sizeof (First);" 應該為 "sizeof(Last);"。
99頁auto const typedef後少空格
104頁最後和105頁上面,模闆的聲明對不上
page110,第二行 "MakeIndexes<1,2,3>::type" 應該為 "MakeIndexes<3>::type"; page121, 注釋 "不帶參數的 lamda" 應該為 "不帶參數的 lambda", 下一行的 "return12" 應為 "return 12"
page122, 最後一段代碼的錯誤:pMax, pGet 後文寫成了 PMax PMin, hMode 後文寫做 hDLL;
page124, 函數名“ExcecuteFunc”應該為"ExecuteFunc"。
page113, 最下面的Instance函數中缺少了模闆參數T。
page126, 第一段代碼中的 "return0;" 應為 "return 0;",
page127, Then的實作中"[func, &f]"應改為"[func, f]", p
age129, 第8行"emplate"應該為"template",
page136, 第8行"it->first"應該為"v", 最後三行中Integer Max應該為IntegerMax;
133頁的那個測試函數下:
PrintType<function_traits<std::function<int(int)>>::args<0>>(); //這句有問題,在args<0>後面少了type
應該改為:
PrintType<function_traits<std::function<int(int)>>::args<0>::type>();
page137, 第4行MaxType應該為IntegerMax;
page141, 3.3.9 上面的一段是屬于3.3.2lazy的那一節,不應該在這裡。
page 155, 倒數第5行"std::uniq_ptr"應該改為“std::unique_ptr“。
158頁,第三行代碼"return stared_ptr<S>(this);"類型S應該是A。
page 156, 倒數第三行代碼newint應該為new int
158頁
shred_ptr<A>GetSelf()
{
return shared_ptr<S>(this); 此處S應為A
}
int main()
{
return0; 此處應為 return 0;
}
page 177,倒數第三行語句unique_lock多寫了一個,應該去掉一個。
page212,第二行,應該是"否則傳回false."
page260, foo函數裡,根據結果運作圖10-3和編譯調試,foo的輸出應該為:
cout << "real foo function:" << a << endl; 而不是書中寫到是real HT function
page337, 第三行缺少一個"]"符号;
page352, 兩個count函數應該改為:
auto count() const -> decltype(std::distance(begin(), end()))
{
return std::distance(begin(), end());
}
template<typename F>
auto count(const F& f) const -> decltype(std::count_if(begin(), end(), f))
{
return std::count_if(begin(), end(), f);
}
page355, 第二行"decltype(begin())"應該改為"decltype(boost::make_iterator_range(std::find_if_not(begin(), end(), f), end()))"
page359, TestLinqCpp()裡變量vct應該為v,min和max應該改為Min和Max。
page 406, 多寫了一個AsyncSend函數。