gpt4 book ai didi

c++ - 什么 C++ 转换运算符等同于 (MyStructType){1,2,3}?

转载 作者:行者123 更新时间:2023-11-28 01:10:44 25 4
gpt4 key购买 nike

是否有一个 C++ 转换运算符(或它们的组合)等同于下面的旧式转换:

struct MyStruct {
int i;
int j;
int k;
};

void do_something_with_mystruct( MyStruct ms ) {
...
};

int main( int argc, char** argv ) {
do_something_with_mystruct( (MyStruct){1,2,3} );
};

最佳答案

结构

(MyStruct) {1,2,3}

实际上不是类型转换!这是一个 ISO C99“复合文字”。没有使用任何 C++ 的等价物 *_cast<>运算符,因为 C++(甚至 C++0x)不包含此构造。一些编译器将它实现为 C++ 的扩展,但你仍然必须这样写。参见例如 http://gcc.gnu.org/onlinedocs/gcc-4.4.4/gcc/Compound-Literals.html .

关于c++ - 什么 C++ 转换运算符等同于 (MyStructType){1,2,3}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473231/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com