Conclusion : this last solution is undeniably faster. Be careful, it is not everytime the case and only true here because of how operator+ can be implemented and because of the two assumptions, especially the second assumption thatone, i.e. default constructor >= copy constructor = move constructor (note that this conclusion would be also be true if default constructor = copy constructor = move constructor).