Intellisense says "Argument for class template CollisionBody is missing"
class CollisionBody : public Actor{
public:
std::unique_ptr<ShapeBase> shape;
olc::vf2d velocity = {0.0f, 0.0f};
olc::vf2d acceleration = {5000.0f, 5000.0f};
olc::vf2d collision_normal = {0.0f, 0.0f};
template<typename tShape, typename ...tArgs>
void SetShape(tArgs ..._args){
auto l_shape = std::make_unique<Shape<tShape>>(tShape(_args...));
l_shape->callbacks.push_back(
std::function<void(Shape<tShape>* _shape)>([](Shape<tShape>* _shape) -> void {
System::Get().Func(_shape);
})
);
And I can't just compile this and see if it says something because this is a piece of something that takes more time to rework. Plus, interestingly it's not raising any issues in my test file, which compiles successfully. I think it's complaining about the lack of a template<class ...> above the class declaration, but I'm not TRYING to make a template class. So what is happening here?