void connectionAccepted(int fd, const folly::SocketAddress& clientAddr)
noexcept {
- events_.push_back(EventInfo(fd, clientAddr));
+ events_.emplace_back(fd, clientAddr);
if (connectionAcceptedFn_) {
connectionAcceptedFn_(fd, clientAddr);
}
}
void acceptError(const std::exception& ex) noexcept {
- events_.push_back(EventInfo(ex.what()));
+ events_.emplace_back(ex.what());
if (acceptErrorFn_) {
acceptErrorFn_(ex);
}
}
void acceptStarted() noexcept {
- events_.push_back(EventInfo(TYPE_START));
+ events_.emplace_back(TYPE_START);
if (acceptStartedFn_) {
acceptStartedFn_();
}
}
void acceptStopped() noexcept {
- events_.push_back(EventInfo(TYPE_STOP));
+ events_.emplace_back(TYPE_STOP);
if (acceptStoppedFn_) {
acceptStoppedFn_();
bytesWritten = writeUntilFull(fd_);
}
- log.push_back(EventRecord(events, bytesRead, bytesWritten));
+ log.emplace_back(events, bytesRead, bytesWritten);
}
struct EventRecord {
virtual void handlerReady(uint16_t events) noexcept {
assert(events == EventHandler::READ);
ssize_t bytesRead = readFromFD(fd_, readLength_);
- log.push_back(EventRecord(events, bytesRead, 0));
+ log.emplace_back(events, bytesRead, 0);
}
private:
virtual void handlerReady(uint16_t events) noexcept {
assert(events == EventHandler::WRITE);
ssize_t bytesWritten = writeToFD(fd_, writeLength_);
- log.push_back(EventRecord(events, 0, bytesWritten));
+ log.emplace_back(events, 0, bytesWritten);
}
private:
}
virtual void timeoutExpired() noexcept {
- timestamps.push_back(TimePoint());
+ timestamps.emplace_back();
reschedule();
}
}
void timeoutExpired() noexcept override {
- timestamps.push_back(TimePoint());
+ timestamps.emplace_back();
if (fn) {
fn();
}
}
void callbackCanceled() noexcept override {
- canceledTimestamps.push_back(TimePoint());
+ canceledTimestamps.emplace_back();
if (fn) {
fn();
}
{
throwCounter = 1000;
for (int i = 0; i < prepopulate; ++i) {
- vec.push_back(Thrower());
+ vec.emplace_back();
}
}
(TestBasicGuarantee(prepop))( // parens or a mildly vexing parse :(
1,
[&] (folly::small_vector<Thrower,3>& v) {
- v.push_back(Thrower());
+ v.emplace_back();
}
);
3,
[&] (folly::small_vector<Thrower,3>& v) {
std::vector<Thrower> b;
- b.push_back(Thrower());
- b.push_back(Thrower());
- b.push_back(Thrower());
+ b.emplace_back();
+ b.emplace_back();
+ b.emplace_back();
/*
* Apparently if you do the following initializer_list instead
[&] (folly::small_vector<Thrower,3>& v) {
std::vector<Thrower> b;
for (int i = 0; i < 6; ++i) {
- b.push_back(Thrower());
+ b.emplace_back();
}
v.insert(v.begin() + 1, b.begin(), b.end());
std::list<CountCopyCtor> v;
for (int i = 0; i < 20; ++i) {
- v.push_back(CountCopyCtor(20 + i));
+ v.emplace_back(20 + i);
}
a.insert(v.begin(), v.end());
check_invariant(a);
explicit PriorityLifoSemMPMCQueue(uint8_t numPriorities, size_t capacity) {
queues_.reserve(numPriorities);
for (int8_t i = 0; i < numPriorities; i++) {
- queues_.push_back(MPMCQueue<T>(capacity));
+ queues_.emplace_back(capacity);
}
}