.. _program_listing_file_include_shad_util_measure.h: Program Listing for File measure.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/shad/util/measure.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp //===------------------------------------------------------------*- C++ -*-===// // // SHAD // // The Scalable High-performance Algorithms and Data Structure Library // //===----------------------------------------------------------------------===// // // Copyright 2018 Battelle Memorial Institute // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy // of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations // under the License. // //===----------------------------------------------------------------------===// #ifndef INCLUDE_SHAD_UTIL_MEASURE_H_ #define INCLUDE_SHAD_UTIL_MEASURE_H_ #include #include namespace shad { template struct measure { template static auto duration(F&& function, Args... args) { auto start = std::chrono::steady_clock::now(); std::forward(function)(std::forward(args)...); std::chrono::duration duration = std::chrono::steady_clock::now() - start; return duration; } }; } // namespace shad #endif // INCLUDE_SHAD_UTIL_MEASURE_H_