# Guide to modern C++ - Essentials of Modern C++ Style [CppCon 2014](https://www.youtube.com/watch?v=xnqTKD8uD64&t=2304s) - [Style Guides](https://lefticus.gitbooks.io/cpp-best-practices/content/03-Style.html) - [Herb Stutter's style](https://herbsutter.com/elements-of-modern-c-style/) - [Bjarne Stroustrup's C++ Style](https://www.stroustrup.com/bs_faq2.html) ## C++20 - Error : - C2664 - cannot convert ... 'const[4] to char*' - C2132 expression didnot evalute to a constant ```C++ void myFn(char* data) { std::cout << data; return; } int main() { myFn("ABC"); ==> error myFn(const_cast("ABC")); ==> OK std::cout << "Hello World!\n"; } constexpr struct stIniEnumToFilenameMap LogNameMap[] = { {CFileLocation::DEBUG_LOG, const_cast("Dbg.log")}, {CFileLocation::DEBUG_TIMING_LOG, const_cast("DbgTiming.log"}, {CFileLocation::GUIEVENT_LOG, const_cast("GUIEventLog.log"}, }; ``` - range for loop `for each()` ```C++ for each (auto x in items){} ==> error for (auto x : items) {} ==> OK ``` - Error: C2440 'initializing': cannot convert from 'ATL::CA2CA' to 'std::basic_string,std::allocator>' ```C++ std::string strModelName = hardwareIniMotionCard.GetString(osKey.str().c_str(), "Error", FALSE).GetString(); ==> OK - use CString().GetString() ```