Are Blueprints C++ complete?

This is more a formal question from the point of view of computation.
Could BP reach the same expressiveness (in the context of UE4 of course) that we have in C++?
Can I really do exactly the same thing in BP like C++?
I’m not an expert of BP, but for example is NOT possible customise the Map data structure with custom types, but only with built-in variables. For instance, each programming language like Java, C#, C++ allows to build a Map>, but not BP.
This is just one example I discovered, but I’m pretty sure the limitations on typing could not be the only one.
So, if my reasoning is correct, what exactly I CANNOT do in BP?

No it can’t do the same things.

First: types like double for example do not exsist in Blueprint.

Second: Not all functions are exposed to blueprints, for example you can’t spawn a component in Blueprint if the class does not have a (C++) function for that, whereas in C++ thats a simple matter of calling NewObject();.

Third: This is not technically a constraint, but in reality it is: If you try to make complex things in Blueprint all hell breaks loose. It is just inclined to be less readable than straight C++ code when it gets complicated. Graphs get real big real fast, however a .cpp with 500 lines can still be perfectly readable. Templates also don’t work in Blueprint, you are not able to do pointer magic (the desirability of that can be questioned - I used it multiple times with great success)…

Don’t get me wrong, I like the Blueprint System and it has it’s place, but that place is not where C++ is. They are not comparable. Blueprint is good for getting small task done quickly, and has the additional Bonus of a very visual typechecking system that is very usefull for beginners (try to decrypt the type error when you want to bind a delegate in C++ for the first time - good luck), but it does not nearly scale as well as C++ does.