Beautiful code #1
Beautiful code #1 explanation
Let me explain the macro first.
We have declared a macro called
CAPSY_DECLVAL which can accept any number of variables (note the
…). In the macro definition we have double
reinterpret_cast. The outcome of the far right
reinterpret_cast is converting the integer
char*. This is very dangerous conversion but that is how
reinterpret_cast works. Once it is converted to
char* the value pointed by the
char* is passed to the parent level
reinterpret_cast. The sub code is
__VA_ARGS__ has the value
int which is passed in the main function as an argument to the macro.
Let’s move one step to the left again and see that a variable
add_rvalue_ref is called that is just a
r-value reference T&&. So the interpretation in our example is
int&&. Now let’s write the whole macro after applying the template parameter as shown below:
In short, an integer converted to
char* and then the value pointed by the
char* is again converted to int&& and that is all defined inside the macro CAPSY_DECLVAL which accepts variadic parameters. Inside the main function we just print the data type of the variable we arrive at using the code
typeid(decltype(CAPSY_DECLVAL(int))).name(). Isn’t that beautiful?
I will write series of beautiful code and I hope to come up with 500 snippets of beautiful C++ code in 2023.
You will also like — More Articles
https://fluentprogrammer.com/beautiful-code-2-enable_if_t-template-inside-a-template/ https://fluentprogrammer.com/beautiful-code-3-no_unique_address_cpp_20-feature/ https://fluentprogrammer.com/beautiful-code-4-any_of-none_of-all_of/ https://fluentprogrammer.com/beautiful-code-5-for_each-optional/ https://fluentprogrammer.com/beautiful-code-6-copy_if-remove_copy_if-copy-back_inserter/