20 #if FOLLY_HAS_COROUTINES 28 for (
size_t iter = 0; iter < iters; ++iter) {
38 "hello coroutines! this is a longer string that " 39 "should hopefully inhibit short string optimisations.";
41 BENCHMARK(blockingWaitRVOStrings, iters) {
42 for (
size_t iter = 0; iter < iters; ++iter) {
45 if (result.size() != longString.size()) {
51 struct IdentityMatrix {};
55 for (
int i = 0;
i < 4; ++
i) {
56 for (
int j = 0; j < 4; ++j) {
57 values_[
i][j] = (
i == j) ? 1 : 0;
62 Matrix(
const Matrix&) noexcept =
default;
63 Matrix& operator=(
const Matrix&) noexcept = default;
70 for (
size_t iter = 0; iter < iters; ++iter) {
72 if (result.values_[3][3] != 1) {
81 gflags::ParseCommandLineFlags(&argc, &argv,
true);
requires E e noexcept(noexcept(s.error(std::move(e))))
int main(int argc, char **argv)
#define BENCHMARK(name,...)
auto blockingWait(Awaitable &&awaitable) -> detail::decay_rvalue_reference_t< await_result_t< Awaitable >>