[英]Anonymous arrays in C++
在C99 +中,我可以使用匿名數組和結構作為復合文字,例如
void f(unsigned char *data);
f((char []){ 42, 15, 33 });
這是等價的
{
char tmp[] = { 42, 15, 33 };
f(tmp);
}
有沒有辦法在C ++中做類似的事情?
在C ++ 11中,你有std::initializer_list
,它允許類似的東西:
// Declare function
void f(std::initializer_list<int> data);
...
// Call function
f({ 1, 2, 3, 4 });
大多數容器已被修改為采用std::initializer_list
,因此您可以使用例如std::vector
代替:
// Function declaration, call as before
void f(const std::vector<int>& data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.