也许“Staying Idiomatic”(保持地道/遵循惯用法)的另一种说法是“以前让你牛逼的那套,这次可不灵了”。前阵子我不得不做一个 C++ 项目,经朋友推荐搞到了 James Coplien 写的《Advanced C++ Programming Styles and Idioms》。这是我真正理解这门语言精髓做过的最明智的事。我相信每门语言都有一本这样能“认出其灵魂”的书。那会是……
Maybe another way of saying "Staying Idiomatic" is "What made you great before won't this time." I had to do a C++ project a while back and got my hands on "Advanced C++ Programming Styles and Idioms" by James Coplien through a friend's recommendation. Best thing I ever did to really understand the soul of the language. I am sure there is such "soul identifying" book for each language. What would…
……有用;前现代 C++(Pre Modern C++):1) James Coplien 著《Multi-Paradigm Design for C++》;2) John Barton 与 Lee Nackman 著《Scientific and Engineering C++: An Introduction With Advanced Techniques and Examples》;3) James Coplien 著《Advanced C++ Programming Styles and Idioms》;4) Andrei Alexandrescu 著《Modern C++ Design: Generic Programming and Design Patterns Applied》。现代 C++(Modern C++):1) 《Functional Programming in C++: How to improve your C++ programs using…
…useful; Pre Modern C++: 1) Multi-Paradigm Design for C++ by James Coplien. 2) Scientific and Engineering C++: An Introduction With Advanced Techniques and Examples by John Barton & Lee Nackman. 3) Advanced C++ Programming Styles and Idioms by James Coplien. 4) Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu. Modern C++: 1) Functional Programming in C++: How to improve your C++ programs using…
James O. Coplien 写的《Advanced C++ Programming Styles and Idioms》。早在 20 世纪 90 年代,它就教会了我如何真正高效地使用 C++。它在当时绝对是独成一“类”/自成一派。(双关梗)。
_Advanced C++ Programming Styles and Idioms_ by James O. Coplien It showed me how to really use C++ effectively back in the 1990's. It was at the time in a class by itself. (Pun intended).
……像成员变量那样可以重新赋值?在某些对象模型里确实可行。去你喜欢的语言里查查“Metaclasses”(元类)看看是否支持吧。如果你想看 C++ 的示例代码,可以去看看 James Coplien 写的经典之作《Advanced C++ Programming Styles and Idioms》。书里包含大量用 C++ 实现的令人脑洞大开的 OO 黑魔法。
…reassignable like a member variable? It is possible in certain object models. Lookup "Metaclasses" in your favourite language for possible support. If you want to see example code in C++, checkout the classic Advanced C++ Programming Styles and Idioms by James Coplien. The book contains lots of examples of mind-bending OO trickery using C++.
……涉及二进制保护、混淆等的项目。通过 ABI 去偏置实现程序混淆(Program Obfuscation via ABI Debiasing,pdf)- https://www.google.com/goto?url=CAESYgHuR6pNsi8_4x_I2WBy7lmf... 顺便说一句:James Coplien 在他极棒的《Advanced C++ Programming Styles and Idioms》中展示了许多技术,其中之一实际上就是在 runtime 替换 vtable 条目,以模拟更具动态特性的运行时语言(例如 Smalltalk)的特性。
…projects involving binary protection, obfuscation etc. Program Obfuscation via ABI Debiasing (pdf) - https://www.google.com/goto?url=CAESYgHuR6pNsi8_4x_I2WBy7lmf... PS: James Coplien in his excellent Advanced C++ Programming Styles and Idioms shows many techniques one of which is actually replacing vtable entries at runtime to mimic features from more dynamical runtime languages (eg. Smalltalk).
也许“Staying Idiomatic”(保持地道/遵循惯用法)的另一种说法是“以前让你牛逼的那套,这次可不灵了”。前阵子我不得不做一个 C++ 项目,经朋友推荐搞到了 James Coplien 写的《Advanced C++ Programming Styles and Idioms》。这是我真正理解这门语言精髓做过的最明智的事。我相信每门语言都有一本这样能“认出其灵魂”的书。那会是……
Maybe another way of saying "Staying Idiomatic" is "What made you great before won't this time." I had to do a C++ project a while back and got my hands on "Advanced C++ Programming Styles and Idioms" by James Coplien through a friend's recommendation. Best thing I ever did to really understand the soul of the language. I am sure there is such "soul identifying" book for each language. What would…
……有用;前现代 C++(Pre Modern C++):1) James Coplien 著《Multi-Paradigm Design for C++》;2) John Barton 与 Lee Nackman 著《Scientific and Engineering C++: An Introduction With Advanced Techniques and Examples》;3) James Coplien 著《Advanced C++ Programming Styles and Idioms》;4) Andrei Alexandrescu 著《Modern C++ Design: Generic Programming and Design Patterns Applied》。现代 C++(Modern C++):1) 《Functional Programming in C++: How to improve your C++ programs using…
…useful; Pre Modern C++: 1) Multi-Paradigm Design for C++ by James Coplien. 2) Scientific and Engineering C++: An Introduction With Advanced Techniques and Examples by John Barton & Lee Nackman. 3) Advanced C++ Programming Styles and Idioms by James Coplien. 4) Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu. Modern C++: 1) Functional Programming in C++: How to improve your C++ programs using…
James O. Coplien 著《Advanced C++ Programming Styles and Idioms》https://www.amazon.com/Advanced-C-Programming-Styles-Idioms/...
Advanced C++ Programming Styles and Idioms by James O. Coplien https://www.amazon.com/Advanced-C-Programming-Styles-Idioms/...
James O. Coplien 写的《Advanced C++ Programming Styles and Idioms》。早在 20 世纪 90 年代,它就教会了我如何真正高效地使用 C++。它在当时绝对是独成一“类”/自成一派。(双关梗)。
_Advanced C++ Programming Styles and Idioms_ by James O. Coplien It showed me how to really use C++ effectively back in the 1990's. It was at the time in a class by itself. (Pun intended).
……像成员变量那样可以重新赋值?在某些对象模型里确实可行。去你喜欢的语言里查查“Metaclasses”(元类)看看是否支持吧。如果你想看 C++ 的示例代码,可以去看看 James Coplien 写的经典之作《Advanced C++ Programming Styles and Idioms》。书里包含大量用 C++ 实现的令人脑洞大开的 OO 黑魔法。
…reassignable like a member variable? It is possible in certain object models. Lookup "Metaclasses" in your favourite language for possible support. If you want to see example code in C++, checkout the classic Advanced C++ Programming Styles and Idioms by James Coplien. The book contains lots of examples of mind-bending OO trickery using C++.
……涉及二进制保护、混淆等的项目。通过 ABI 去偏置实现程序混淆(Program Obfuscation via ABI Debiasing,pdf)- https://www.google.com/goto?url=CAESYgHuR6pNsi8_4x_I2WBy7lmf... 顺便说一句:James Coplien 在他极棒的《Advanced C++ Programming Styles and Idioms》中展示了许多技术,其中之一实际上就是在 runtime 替换 vtable 条目,以模拟更具动态特性的运行时语言(例如 Smalltalk)的特性。
…projects involving binary protection, obfuscation etc. Program Obfuscation via ABI Debiasing (pdf) - https://www.google.com/goto?url=CAESYgHuR6pNsi8_4x_I2WBy7lmf... PS: James Coplien in his excellent Advanced C++ Programming Styles and Idioms shows many techniques one of which is actually replacing vtable entries at runtime to mimic features from more dynamical runtime languages (eg. Smalltalk).