• C++17
  • C++17: Variants!

    For compatibility reason to C the C++ language include the union construct which allows to manipulate several different types in a uniform manner. The reason I’m writing that this feature exist for compatibility reasons is that is almost completely useless when you’re doing object oriented programming, the only allowed types to be used with union are POD’s, non […]

  • blog
  • About C++

    When someone tell me that he know’s C++ and that he actually is a C++ programmer I believe him, but, this statement need some further explanation about which version of C++ the fellas is talking about!. Most C++ programmers knows C++03, eventually a little of C++11 and that’s all. Nowadays the tag C++ is used by […]

  • C++17
  • C++17: Folding expression.

    That is one of those new additions to the language that for the most part is not understood, but that’s not a surprise since most of the people do not understand as well for what reason on heart someone included something diabolic as the variadics in the C++ language. The folding expressions was added to the […]

  • C++17
  • C++17: map splicing

    Std::list have a very useful operation which allows you to move elements from one list to another, it’s called splicing. Splicing come’s almost for free, no elements are really moved but only the pointers internally used by std::list are copied from one container to another. Here’s how splicing work: The first invocation of the splice function […]

  • C++
  • Rendering text, not that simple at all. (part 1)

    It was a kind of surprise to discover that there’s no straightforward way to render text using OpenGL, for people new to graphics programming like me drawing a text looks like a very primitive functionality which I expect to be available by default as functions like glDrawText(some context,const char*). But that’s not the case, and rendering text […]

  • C++
  • C++17: let’s have a look at the constexpr if

    There was a long discussion in the C++ community about when and how to implement the static if, the original proposal from Bright, Sutter and Alexandrescu which was aiming to define a possible implementation of this feature was resurrected after a quite long silence, just to be included in the upcoming C++17. The actual implementation of the […]

  • assembler
  • Unexpected stuff!

    Let’s have a look at this code: int main() { for(int i{0};i<500;i++) { std::cout<<“This is a big number: “<<i*20000000<<std::endl; } } And let’s compile it with g++ using the flag -O3, what’s going to happen? Before answering, let’s have a look at the assembly, shall we? L16: movsbl 39(%ebx), %eax L6: movl %esi, %ecx movl […]

  • Algorithms
  • Segment tree

    What is the best thing you may possible do when having a eight hours train trip? Writing a blog post of course! That’s actually an interesting story by itself: Where I was and why it take that long to come back home! Anyway! Let’s say you’ve an array of integers, as usual from index 0 to […]