我已经尝试了几种不同的变体,但并不愉快...
auto& hrctp = std::chrono::high_resolution_clock::time_point;
auto& hrcn = std::chrono::high_resolution_clock::now;
我知道我可以使用...
use namespace std::chrono::high_resolution_clock;
而且我知道人们不应该过于努力地用另一种语言复制一种语言的范例,但我只是好奇。有没有等价物?
最佳答案
这比看起来要复杂得多。作为Cheers and hth说,别名对于类型、函数和命名空间是不同的。
对于像 std::chrono::high_resolution_clock::time_point
这样的简单类型,您可以使用 typedef
或 using
:
using hrctp = std::chrono::high_resolution_clock::time_point;
或
typedef std::chrono::high_resolution_clock::time_point hrctp;
using
的优点是您也可以将它用于模板类。
对于静态成员函数或嵌入在命名空间中的独立函数,您可以只使用指向该函数的指针:
const auto hrcn = std::chrono::high_resolution_clock::now;
你不能为非静态成员函数这样做(指向成员函数的指针是完全不同的野兽),但幸运的是你不需要这样做(因为你在适当类型的对象)。
time_point
的选项完全在编译时完成。但是,函数别名可能会造成运行时损失(因为您是通过指针调用函数,而不是直接跳转到那里)。但是,编写代码首先是为了清晰,其次是速度。 (OTOH,C++ 方式可能是:
using hrc =std::chrono::high_resolution_clock;
然后使用hrc::time_point
和hrc::now
。
关于c++ - python 的 import as 的 C++ 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668197/