As example,
Object-oriented-Chicken-Scheme,
Object-oriented-Chicken-Scheme,

void or void*? Why? Sometimes compilers can take that as "there are no arguments here"; a lot depends on the specific version of language spec you are compiling against.People who pass void to a function are suspect.
int foo(void);
That is a prototype and (void) is now required in function prototypes if it does not take any arguments (per one of the latest C standards, don't remember which one exactly, C11?).int foo(void);
That is in the standard. Foo(void); means no parameters, but foo() actually means (....); That is the elipsis which means "anything goes". How the function will access these can be by magic or inline assembly. But there we get dirty fast.Not void pointers, these make sense. I am talking about abominations like
C:int foo(void);
Why? Because if you don't need parameters, then just pass nothing at all.
I useIf you ignore compiler warnings, you are going to get unexpected results.
-Wall -Werror -pedantic
int foo(std::initializer_list<double> values);
// foo( {1.5, 3.14, 2.7} );
There was a time before that. Since when is that possible?No one uses ellipsis in C++ since it's not type-safe. Better are initializer lists
C++:int foo(std::initializer_list<double> values); // foo( {1.5, 3.14, 2.7} );
Simply, no.C++11 was approved in 2011. It's 2023. That's an eternity in IT.
I think one can safely use C++11 nowadays![]()