Sorry for asking such basic question. Being a beginner in C++, I'm puzzled about a lot of things:
- if we have Visual stuido and other IDEs, as well as Cygwin as compilers, what kind of roles do CMake play in helping a C++ programmer to develop programmes? Can we just write C++ programmes without using C Make? 
- I understand header files are like prototypes of functions that will be used in C++ files, or declarations of them, so I assume all header files should be accompanied by actual library files in the form of C++ files, as that's where the functions know what to do when being called. However,this is not usally the case, as there are header only libraries such as PyBind11. 
- What is bash? is it like another Windows command prompt? Whats its relationship wth C++? 
- Why do we have function macros and what is its advantages over normal functions? 
Thank you very much!
 
     
     
    