Consider method
functionA (double[] arg)
I want to pass a double array inline, like
functionA({1.9,2.8})
and not create an array first and then pass it, like
double var[] = {1.0,2.0};
functionA(var);
Is this possible with C++? Sounds simple, but I could not find a hint anyway concerning my question which made me suspicious :).
You can do this with std::initializer_list<>
#include<vector>
void foo(const std::initializer_list<double>& d)
{ }
int main()
{
foo({1.0, 2.0});
return 0;
}
Which compiles and works for me under g++ with -std=c++0x
specified.
This works with c++0x
void functionA(double* arg){
//functionA
}
int main(){
functionA(new double[2]{1.0, 2.0});
//other code
return 0;
}
Although you need to make sure that the memory allocated by new is deleted in the functionA(), failing which you there will be a memory leak!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With