FAQs on the exercise How to Get Your Functions Inline
There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.
If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.
Join the Discussion. Help a fellow learner on their journey.
Ask or answer a question about this exercise by clicking reply () below!
You can also find further discussion and get answers to your questions over in Language Help.
Agree with a comment or answer? Like () to up-vote the contribution!
Is there an explanation anywhere about why with the inline keyword the execution was slower?
Here are the times
0.02295 //without inline
0.024281 //with inline
Mine didn’t work at all. Codecademy showed that I completed the exercise and I was able to click the next button (to move on) but with inline nothing happened! Does anyone know why?
I got 0.02786 ms without inline, and 0.024231 ms with inline. Unlike what earlier posters got, my code actually ran faster.
What is supposed to be the reason behind why using inline functions can either increase or decrease runtime? What is the speeding up or slowing down dependent upon?
There’s always minor differences in the times for either version (with or without inline), for me at least.
Kinda defeats the purpose of the exercise, but the idea is that sometimes using inline will make things faster and sometimes make things slower. I don’t know why as of know (there’s probably a ton of info out there on it) but for code this short and simple it doesn’t make a discernible difference. One we start making more complex stuff there will likely be a difference.
“Using inline advises the compiler to insert the function’s body where the function call is…”
Since we’re putting inline in the .hpp file, aren’t we supposed to say that inline advises the compiler to insert the function’s body where the function declaration is?
Or is that line still correct as those header contents are essentially inserted above main() function within the .cpp file. So technically it’s still correct that it’s within the file where the function is called?
Hi Everyone. I am having trouble understanding how inline functions work! I searched elsewhere and one site says “C++ provides an inline functions to reduce the function call overhead”, which is the switch between when a function executes and when the CPU returns the function. However, could anyone please explain inline functions clearly? Thank you.
The second program will run slightly slower because it takes a bit of time to call the function and then print out the string, while the first program just needs to print the string
What the inline keyword does is instructs the compiler to replace the function call in the executable with the actual code of the function. In the second example above, the main() function would have hello_world() replaced with std::cout << "Hello, World!" << std::endl; in the executable (not the actual code file, the source code stays identical)
See here for more info such as pros, cons and when to use
Generally, with an inline function the body of the function is expanded in-place from where the function is being called. It is as if you have written the body of the function in that place instead of making a function call.
With a normal (not inline) function, the function call is not replaced with the function body. The program will assign values to parameters, keep track of memory locations, branch to where the function is stored and then come back to where the function call was made.
This lesson feels like a waste of time. It’s almost totally uninformative. They want me to pay them money for this?
The combination of the seemingly unnecessarily complicated syntax of C++ and the basic lack of explanation in these lessons is very frustrating. For example in the previous lesson we had to write a #include statement for a .hpp header file… But the syntax is different than all other previous #include statements. Why doesn’t the lesson explain the difference between #include and #include “xxxxx.xxx”?
How about explaining why things like stings require a namespace prefix but things like int or bool do not.
Why is it that we are expected to know that basic concepts like strings or vectors require a namespace prefix? How are we supposed to find out what namespace should be used? ‘std’ stands for ‘standard’? seems like someone has a fuzzy concept of what ‘standard’ means. C++ is confusing compared to other languages. These lessons should endeavor to reduce the confusion.,
We are shown these confusing and seemingly inconsistent aspects of the language with no connection to anything logical. #include ;