{}-List constructors

So in modern C++ we have initializer-lists ({}-lists). I was reading about them because I was interested in how to add a {}-list constructor to my own classes. It turns out it’s actually really easy!

I’ll use a Singly Linked List as an example:

#include<initializer_list>

template <typename T>
LinkedList<T>::LinkedList(std::initializer_list<T> lst) : root{nullptr}
{
for (auto i = std::begin(lst); i != std::end(lst); ++i)
this->push_back(*i);
this->size_ = lst.size();
}

So here we have a templated LinkedList class {}-list constructor. We use iterators to get the pointer to the data in the {}-list, and then we dereference the pointer when we push it to the LinkedList.

And we can use it like this:

LinkedList<int> list{1, 2, 3, 4, 5}

Easy, isn’t it?