【发布时间】:2019-07-15 10:50:14
【问题描述】:
在 libc++ 中 std::chrono::microseconds 被定义为
std::chrono::duration<long long, std::micro>
对于 64 位平台,long long 定义会导致与 int64_t 的许多冲突,因为之前为相同定义的代码。
在 gnustl 中,早期的 std::chrono::microseconds 是用 in64_t 类型定义的。
我想将现有的微秒定义覆盖到 gnustl 版本,例如:
typedef std::chrono::duration<int64_t, std::ratio<1, 1000000>> std::chrono::microseconds;
or
#define std::chrono::microseconds std::chrono::duration<int64_t, std::ratio<1, 1000000>>;
我如何做到这一点。 Typdef 和 #define 在我们希望重新定义的一侧有 std:: 和 chrono:: 时给出语法错误,即 std::chrono::microseconds?
【问题讨论】:
-
你能描述一下冲突吗?有人可能有比重新定义标准类型更好的解决方案。
标签: c++ std typedef chrono libc++