Came here to yell at some kid pasting homework, was pleasantly surprised.
–
SomeKittensApr 18 '14 at 0:27

Actually not all languages require that inline functions are expanded. "inline" is a compiler hint rather than a command in Delphi, and C, C++ have exceptions. So "c" can be false as well. It might be more entertaining to write an answer showing how each statement can be wrong.
–
ӍσᶎApr 18 '14 at 1:44

1

@Ӎσᶎ If only there was a text box. I want to go back and hit the "Report an issue with this question".
–
QixApr 18 '14 at 3:06

5

That is not an array of functions. That is an array of function pointers.
–
immibisApr 18 '14 at 8:45

A function with void result type ends either by reaching the end of the function or by executing a return statement with no returned value. The void type may also appear as the sole argument of a function prototype to indicate that the function takes no arguments. Note that despite the name, in all of these situations, the void type serves as a unit type, not as a zero or bottom type, even though unlike a real unit type which is a singleton, the void type is said to comprise an empty set of values, and the language does not provide any way to declare an object or represent a value with type void.

That is not completely right.
Despite its name, the keyword inline does not guarantee that a function will be inlined. The only thing that you can be sure of is that the compiler will not complain if it sees the definition of an inline function multiple times.

So, strictly speaking, option C is incorrect, but I don't think it is the answer that the authors of the quiz expect, because there is an answer that is even more wrong.

d. Without going into much detail about the placement of the following elements,

In your example, functions is an array of pointers to functions and not an array of functions themselves. Similarly, lambdas and functors are not really functions either. They are classes that respond to the function-call operator, but that doesn't make them functions in the eyes of the C++ language definition.

Functions in C++ are a bit like second-class citizens. You can define and call them, but as soon as you try to do something else with a function type (like create an array of them), you either get an error or they silently convert themselves in a pointer.