我有一堆不相关的结构,我想添加到std :: queue。我正在使用一个名为message
的结构,我用它来封装不相关的结构,以便将它们存储在同一个队列中。
struct message {
char *struct_pointer;
size_t struct_size;
};
struct confirmer {
int32_t hello;
int32_t yellow;
double jello;
}
在邮件中,我然后调用
confirmer *confirm = new confirmer();
confirmer->hello = 100;
confirmer->yellow = 000;
confirmer->jello = 123.324;
message my_message = {(char *)confirm, sizeof(struct confirmer)};
other_namespace::do_things_to_message(my_message);
其中do_things_to_message
接受对struct message
的引用。
我的问题是在函数do_things_to_message
内,如果我将参数curr_message
(这是一个引用)添加到std::container
,它是否会创建引用和存储的副本在容器中?即。
void do_things_to_message(struct message& curr_message) {
my_queue.push(curr_message) //where my_queue is a std::queue my_queue<message>
//do other things...
}
那么my_queue实际存储的是什么?对象的副本?原始对象?还有别的吗?