c++ - python 的 import as 的 C++ 等价物是什么?

标签 c++ reference

我已经尝试了几种不同的变体,但并不愉快...

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 这样的简单类型,您可以使用 typedefusing:

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_pointhrc::now

关于c++ - python 的 import as 的 C++ 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668197/

相关文章:

c++ - 制作具有平均值的随机数生成器

c++ - 指针在退出递归函数后更改其地址

visual-studio-2008 - Visual Studio : Relative Assembly References Paths

c - 重新分配更改的指针引用

c++ - 为什么在对基类的 const 引用上调用派生类的析构函数?

c++ - GMock 将一个模拟对象传递给另一个对象,调用 stub 方法仍然是调用真实逻辑

c++ - 为什么我的 for 循环永远不会结束?

c++ - const 引用字段作为 C++ 类中的只读属性

c++ - 传递 const 引用 : performance increase?

c++ - 在给定 Sum 的未排序数组中配对