Explore >> Select a destination


You are here

www.cppstories.com
| | cppstories.com
1.1 parsecs away

Travel
| | Recently, I've found somethinginterestingin Visual Studio that improved my Logger! I had a function called AddMsg /** appends message to the log file */ void AddMsg(LOG_MODE m, int level, char* strModule, char *strMsg, ...); But, when you wanted to add a comment you needed to use quite complicated and long syntnax, like:
| | rodusek.com
5.1 parsecs away

Travel
| | Getting the name of a type in C++ is a hassle. For something that should be trivially known by the compiler at compile-time, the closest thing we have to getting the type in a cross-platform way is to use std::type_info::name which is neither at compile-time, nor is it guaranteed to be human-readable. In fact, both GCC and Clang actually return the compiler's mangled name rather than the human-readable name we are used to. Let's try to make something better using the modern utilities from c++17 and a little creative problem solving!
| | eli.thegreenplace.net
4.7 parsecs away

Travel
| |
| | entangledlogs.com
21.8 parsecs away

Travel
| Generic Programming: Generating part of programs Introduction Generic Programming: Programming with generic parameters to avoid unnecessary code duplication and encourage code reuse. Polymorphism is also another technique to solve code reuse Puts implicit constraints on the generic types that are to be fulfilled by concrete types. template T adder(T LHS, T RHS) { return LHS + RHS; } struct Foo { inv Val = 0; } Foo f = adder(Foo{}, Foo{}): In this code snippet, we assume that Foo meets the requirement tha...