Library, instantiation of a class object
The statement

Minimal_library obj(BUF_SIZE, buff);


means “create an object named obj, initialized by calling the class
constructor with the supplied parameters”.

On the other hand,

Minimal_library obj = Minimal_library(BUF_SIZE, buff);


means “create an unnamed object initialized as before, then copy it
into an object named obj, then delete the unnamed object”.

The compiler would normally optimize the second form into the first one.
It is even allowed to do so in some weird cases where they may not be
equivalent. In the end, it's mostly a matter of style. I prefer to do
the optimization myself and write the first form. But if you find the
second form more readable, go ahead: you can normally trust the compiler
to optimize out the unneeded copy.