-
Type:
Task
-
Resolution: Done
-
Priority:
Trivial - P5
-
None
-
Affects Version/s: 3.0.1
-
Component/s: Implementation
-
None
-
Environment:Windows 10
MS VS 2015
MongoDB 3.3.5
MongoDB C++11 Driver 3.0.1
-
None
-
None
-
None
-
None
-
None
-
None
-
None
#include <bsoncxx/builder/stream/document.hpp>
#include <iostream>
bsoncxx::document::element return_element()
{
auto build_doc = bsoncxx::builder::stream::document{};
build_doc << "key_field" << "hello world";
bsoncxx::document::element element_to_return = build_doc.view()["key_field"];
// outputs: key_field hello world
std::cout << element_to_return.key().to_string() << " " << element_to_return.get_utf8().value;
return element_to_return;
}
int main()
{
bsoncxx::document::element returned_element = return_element();
// the next line causes a debug error at element.cpp
// types::b_utf8 element::get_utf8() const {
// BSONCXX_TYPE_CHECK(k_utf8);
std::cout << returned_element.get_utf8().value;
return 0;
}
The returned_element is "junk". Is there a way to preserve an element from a function?