#include <iostream>
#include <deque>
#include <chrono>
#include <vector>
#include <list>
#include <array>
#include <mutex>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
struct timepoint
{
chrono::time_point<chrono::high_resolution_clock> time;
array<uint32_t, 2> id;
string s;
};
deque<timepoint> events;
auto iter = 10000000u;
auto start = chrono::high_resolution_clock::now();
for (auto i = 0u; i < iter; ++i)
{
events.emplace_back({chrono::high_resolution_clock::now(), {0, 1}, "foo"});
}
auto end = chrono::high_resolution_clock::now();
cout << "time taken = " << std::chrono::nanoseconds(end - start).count() / iter << " ns / iteration" << endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxjaHJvbm8+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxtdXRleD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCQoJc3RydWN0IHRpbWVwb2ludAoJewoJCWNocm9ubzo6dGltZV9wb2ludDxjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jaz4gdGltZTsKCQlhcnJheTx1aW50MzJfdCwgMj4gaWQ7CgkJc3RyaW5nIHM7Cgl9OwoKCWRlcXVlPHRpbWVwb2ludD4gZXZlbnRzOwoJCglhdXRvIGl0ZXIgPSAxMDAwMDAwMHU7CglhdXRvIHN0YXJ0ID0gY2hyb25vOjpoaWdoX3Jlc29sdXRpb25fY2xvY2s6Om5vdygpOwoJCglmb3IgKGF1dG8gaSA9IDB1OyBpIDwgaXRlcjsgKytpKQoJewoJCWV2ZW50cy5lbXBsYWNlX2JhY2soe2Nocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKSwgezAsIDF9LCAiZm9vIn0pOwoJfQoJCglhdXRvIGVuZCA9IGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKCQoJY291dCA8PCAidGltZSB0YWtlbiA9ICIgPDwgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzKGVuZCAtIHN0YXJ0KS5jb3VudCgpIC8gaXRlciA8PCAiIG5zIC8gaXRlcmF0aW9uIiA8PCBlbmRsOwoJCgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==
prog.cpp: In function ‘int main()’:
prog.cpp:28:76: error: no matching function for call to ‘std::deque<main()::timepoint>::emplace_back(<brace-enclosed initializer list>)’
events.emplace_back({chrono::high_resolution_clock::now(), {0, 1}, "foo"});
^
In file included from /usr/include/c++/6/deque:66:0,
from prog.cpp:2:
/usr/include/c++/6/bits/deque.tcc:149:7: note: candidate: void std::deque<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = main()::timepoint; _Alloc = std::allocator<main()::timepoint>]
deque<_Tp, _Alloc>::
^~~~~~~~~~~~~~~~~~
/usr/include/c++/6/bits/deque.tcc:149:7: note: candidate expects 0 arguments, 1 provided