Passing Variable Number of Arguments with different type - C++
c++
Solution
You should consider that using variadic functions (C-style) is a dangerous flaw. If the objects passed to the function mismatch the type awaited, or if you don't put the exact number of parameters awaited, then you basically have a violent crash at runtime.
In Bjarne Stroustrup C++ In Depth Series - C++ Coding Standards - 101 Rules, Guidelines, And Best Practices by Herb Sutter and Andrei Alexandrescu, chapter 98: Don't use varargs (ellipsis)
I deeply subscribe to @tenfour's proposal:
- use an `std::vector` that contains all your parameters.
Problem
I am coding in C++ and have a few questions regarding the ellipsis: Is it possible to pass in class or class pointer into the ellipsis? Basically what I want to do is to pass in variable number of arguments in the type of `char*` and `class`. I am using ellipsis currently and trying to figure out how to pass in the class. If ellipsis isn't applicable over here, what are the options available? I want to let the user to directly call the function using `func( params 1, params2, ...)` without explicitly assigning the params into a vector or array first before passing the vector or array as argument to the function.