Here\'s a minimum code example that illustrates the problem:
#include class Thing { // Non-copyable Thing(const Thing&); Thing
What happens if you try naming the temporary Thing? Thing temp(3); show(temp);
Thing temp(3);
show(temp);