- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
引自 C++11 标准:
19.5.1.5 Error category objects [syserr.errcat.objects]
const error_category& system_category() noexcept;
4 Remarks: The object’s
equivalent
virtual functions shall behave as specified for classerror_category
. The object’sname
virtual function shall return a pointer to the string"system"
. The object’sdefault_error_condition
virtual function shall behave as follows:If the argument
ev
corresponds to a POSIXerrno
valueposv
, the function shall returnerror_condition(posv, generic_category())
. Otherwise, the function shall returnerror_condition(ev, system_category())
. What constitutes correspondence for any given operating system is unspecified. [ Note: The number of potential system error codes is large and unbounded, and some may not correspond to any POSIX errno value. Thus implementations are given latitude in determining correspondence. —end note ]
换句话说,下面的代码在某些操作系统上可能无法运行,因为 system_category().default_error_condition()
没有正确映射到 generic_category()
条件(这是标准完全允许的):
try
{
// do some file IO
}
catch(const std::system_error& e)
{
if(e.code() == std::errc::permission_denied) //...
}
唯一的解决方案是实现您自己的 generic_category()
自定义替换,并为您需要的所有操作系统代码(对于您需要的所有操作系统)进行映射。
enum my_errc { /*...*/, access_denied };
class my_generic_category : public std::error_category
{
virtual bool equivalent(const error_code& code, int condition) const noexcept
{
#ifdef _WIN32
if(code == std::error_code(ERROR_ACCESS_DENIED, std::system_category())
return condition == my_errc::access_denied;
#elseif SOME_OTHER_OS // ...
}
// ...
然后使用您自己的类别而不是 generic_category
:
catch(const std::system_error& e)
{
if(e.code() == my_errc::access_denied) //...
}
那么 std::generic_category()
有什么意义呢?
最佳答案
应该问的问题是:您是否正在尝试编写绝对不是特定于编译器的代码,或者您是否愿意编写一些代码,知道它需要某些特定的编译器或编译器系列?
标准是告诉你如何做前者。
虽然编写代码以在所有编译器上工作(至少在那些足够遵循标准的编译器上)是一个很好的经验法则,但有时这意味着您将重新实现一些已经由特定编译器/库的实现。
关于c++ - std::generic_category() 没用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27760498/
我的正则表达式没有正确执行。 当我改变它的位置时,我得到不同的结果。 “bbbWindows”不是我想要的。为什么不是“bbb2222”? 'Windowsbbb'.replace(/Windows(
我正在努力理解这个概念,但我真的看不出它有什么用,所以我假设我没有捕获要点。 例如- 此正则表达式 /([0-9]+)(?:st|nd|rd|th)?/ 将匹配带有或不带“st”、“rd”等的数字。后
我在背景上下文中使用 Core Data 有一段时间了,想知道为什么每个人都建议使用 NSManagedObjectContextDidSaveNotification 从后台合并到主上下文。我创建了
我正在尝试上传数据库中的图片,但是当我检查它是否已上传时,该字段为空。我还想限制上传文件类型格式jpeg、png 和gif。请帮忙 HTML PHP 0) { $
我希望能够了解 SMS 或通话记录中的特定项目何时更改。当适当的内容提供者发生某些变化时,很容易收到通知,但是获取特定记录是完全低效的,因为需要维护商店的完整镜像,然后找出差异。这不仅是蹩脚的。有用的
我无法将 ScrollView 添加到我的布局中。我该怎么办? 错误说:在此行找到多个注释: - 这个 ScrollView View 是无用的(没有 child ,没有背景,没有 id,没有样式)
引自 C++11 标准: 19.5.1.5 Error category objects [syserr.errcat.objects] const error_category& system_c
我最近尝试使用多处理模块(和它是工作池)。我在这里阅读了一些关于多线程(与标准的非线程版本相比,它减慢了整个过程)和多处理的讨论,但我找不到一个(可能非常简单的)问题的答案: 你能用多处理加速 url
IBindingList 的 ListChanged 事件在删除项目时触发类型 ListChangedType.ItemDeleted,可能是用户删除绑定(bind)到列表的数据网格控件中的一行。
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
据我了解,如果未找到所请求的 Atom,FindAtom 将返回 0。但即使在这个小代码中,根本没有任何 AddAtom,它似乎总是返回一些东西。这是为什么?这不会让带有 Ints 的 FindAto
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
在 Windows 7 上,查看文件 c:\windows\winsxs...\weather.js 有一个函数computeSunRiseSunSet(Latitude, Longitude, Ti
我想为我的应用程序使用辅助方法 isLowRamDevice,它可以流式传输视频。由于我支持 API 级别 15 以下的设备,因此我不得不使用 ActivityManagerCompat.isLowR
我遇到嵌套布局问题并抛出一些异常。错误是“此 LinearLayout 布局或其 LinearLayout 父级无用......”。我知道我可以通过此设置忽略此警告。 设置:Build Path->C
我购买了很多(500 多台)带有 AllWinner 处理器和 Android 4.0.3 的廉价中国平板电脑。所有平板电脑都公开相同的序列号。我无法使用 ADB.EXE 在多个设备(带有 USB 集
当我将 RecyclerView 与 LinearLayoutManager 一起使用时,它将方向设置为水平,然后将适配器设置为 RecyclerView。同时,我将RecyclerView的可见性设
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
这是 contain from 方法,它写入隐藏的字母。当我按下退格键时,我需要以某种方式从控制台中删除 char *。 private static string Password()
来自 mscorlib.dll: public interface IList : ICollection, IEnumerable, IEnumerable {..} public class Li
我是一名优秀的程序员,十分优秀!