Difference between c++ and blueprint

What are the pros and cons of c++ and blueprint scripting over each other?

From my mind, you can do a lot of things with BluePrint. It is easier, it is contextual and so on.
It is just hard to maintain if too big, and hard to share/collaborate between team, if you work lot of people.

You can do all things in C++. Moreover, when you have to do specific things, or not in the mood of unreal, you have to do C++. I manage my own player class, with quest class, events and so on in C++. I manage networking with third party in C++ too.
For complex algorithm, I prefer C++ too. To do some if and loop, it is just not very simple in blueprint. When you have just a case true/false, it is ok. But if you hve lot of case, or dependent/cascade if, it becomes nightmare to maintain.
For the remaining, all about interaction with player (UI, movement, interaction between players and npc) are in blueprint.