The S() construct in this context denotes the type of a pointer to a function that takes no parameters and returns an object of type S.
Thus, S v(S()); is a forward declaration in the local scope of the function with the name v, the type of the return value S and the type of the argument - a pointer to a function without parameters with the type of the return value of S.
Login in to like
Login in to comment