issue with creating `shared_ptr` with templates C++

  c++, shared-ptr, smart-pointers, templates

I’m trying to use make_shared in my functional Parser library and I’m getting an error

error: too many arguments to function ‘std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = parser::Parser, parser::state::empty>; _Args = {}]’

I suspect C++ is failing to infer my Parser constructor argument types since _Args = {}

I tried to simplify my code and it works, but I’m not sure how to work my way back to my original implementation with more details.

Heres a link to both the full implementation and simplified code

The error in question is in function seq of the Parser class when constructing the return value.

Sorry I can’t be more precise in my problem description as I myself an unsure what the actual problem is. (I’m new to C++)

Source: Windows Questions C++