Monthly Archives: September 2018

Syntax [crayon-5c6ab5bcdb7df040731664/] Invoke gives a uniform way of calling methods and functions. But why would we use this ? Let’s try to call some class functions, assuming we have the following struct defined. [crayon-5c6ab5bcdb7ed348540664/] Before invoke: [crayon-5c6ab5bcdb7f3558929215/] After invoke: [crayon-5c6ab5bcdb7f9443219416/] This is pretty handy when you would like / need […]

Library feature: std::invoke

Dynamic vs Static library A static library gets compiled into the client. A .lib is used at compile time and the contents of the library become part of the consuming executable. A dynamic library is loaded at runtime and not compiled into the client executable.   Static library – Pro […]

Definitions – Dynamic vs static library

Compilation Compilation is the process that converts high level language into machine level language. Preprocessing Compilation Linking   Preprocesing is responsible for: -replacing #include directives with the content of the respective files (which is usually just declarations) -replacement of macros (#define) -selecting different portions of text depending of #if, #ifdef […]

Definitions – Compilation

Syntax [crayon-5c6ab5bcdcfee721105178/] Usage / Usability Resolve the problems we had with the old enums Can be silently converted to int The enum ids are exported in the scope in which the enum is defined, causing name clashes They have implementation-defined underlying type – type cannot be specified by the developer […]

Miscellaneous: Strongly typed enums

Definition Both TCP and UDP are protocols used for sending bits of data — known as packets — over the Internet. They both build on top of the Internet protocol. In other words, whether you are sending a packet via TCP or UDP, that packet is sent to an IP […]

Definitions – TCP versus UDP