无法键入 def std::chrono::microseconds 以覆盖其定义以更改其基础类型
Unable to typedef std::chrono::microseconds to override its definition to change its underlying type
在libc++中,std::chrono::microseconds
定义为
std::chrono::duration<long long, std::micro>
对于64位平台,长定义会导致与int64_t
的许多冲突,因为代码之前是为相同的定义。
在 gnustl 早期std::chrono::microseconds
用int64_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
?
你不能。这些类型不属于您。这就是它们在命名空间std
中的意思。这不是你的代码。
如果要定义自己的别名,请在自己的命名空间中执行此操作。
撇开其他任何事情不谈,您的工具链以这种特定方式实现标准库可能是有原因的。即使允许,您也可能不能在不重写标准库实现的其他块的情况下"使其像 gnustl 版本"。
如果您认为libc ++在64位平台上存在导致std::chrono::microseconds
无法编译的错误,则可以向libc ++开发人员提出错误。但是,您应该首先确保您的理论是正确的,而且从天文学上讲,这不太可能。检查您的其他代码以了解原因。
相关文章:
- 使用QJsEngine在Qt中注册自定义类型
- 在UE4中使用未定义类型'UTextBlock'
- 修改"std::set"中用户定义类型的值
- 当我使用自定义类型创建动态数组时,即使使用字符串,它似乎也不起作用
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 如何使自定义类型在unordered_map中用作键
- 在 C++20 中是否不再允许在 std 中对程序定义类型的函数模板进行专用化?
- Qt5 远程对象 + 自定义类型,但不在 POD 中
- 为什么转换函数声明不需要至少一个定义类型说明符
- 标准::原子中的自定义类型
- 如何使用自定义类型声明Arduino数组?
- 如何在 Cython 中定义返回 cpp 定义类型的函数?
- 使用自定义访问者时具有自定义类型的提升变体失败(源自 boost::static_visitor)
- 您可以将binary_search应用于具有自定义类型的矢量吗?
- 在自定义类型图中重用 SWIG 映射
- 扩展自定义类型的spdlog
- vim使用户定义类型的COLOR与C++中的基本类型相同
- 重载自定义类型的 std::to_string 和 std::to_chars?
- 具有未声明/未定义类型的 typedef 结构
- 函数重载:内置类型与用户定义类型