Using the = at the declaration of an object is supposed to be the same as calling its constructor, right? I've come across this situation:
1 2 3 4 5 6 7 8
//Build(PartType) returns a pointer to RobotPart
std::unique_ptr<RobotPart> catalyst=Build(PartType::HUBBlock);
//This gives me an error:
//C:\...\Extensions.cpp|40|error: conversion from 'RobotPart*' to
// non-scalar type 'std::unique_ptr<RobotPart>' requested|
//But if I use this syntax, everything is all hunky-dory
std::unique_ptr<RobotPart> catalyst(Build(PartType::HUBBlock));