VirtualBox

source: vbox/trunk/include/iprt/nocrt/exception@ 95996

Last change on this file since 95996 was 95975, checked in by vboxsync, 2 years ago

include/iprt/nocrt: Prototyped a whole bunch of things to make mesa (almost) compile. bugref:10261

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1/** @file
2 * IPRT / No-CRT - Our own exception header.
3 */
4
5/*
6 * Copyright (C) 2022 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef IPRT_INCLUDED_nocrt_exception
27#define IPRT_INCLUDED_nocrt_exception
28#ifndef RT_WITHOUT_PRAGMA_ONCE
29# pragma once
30#endif
31
32#include <iprt/types.h>
33
34namespace std {
35
36/** Exception base class. */
37class exception
38{
39public:
40 exception() RT_NOEXCEPT
41#ifdef _MSC_VER
42 : m_pszWhat(NULL)
43#endif
44 { }
45
46 exception(const exception &a_rThat) RT_NOEXCEPT
47#ifdef _MSC_VER
48 : m_pszWhat(a_rThat.m_pszWhat)
49#endif
50 {
51 RT_NOREF(a_rThat);
52 }
53
54#ifdef _MSC_VER
55 exception(const char *a_pszWhat, int a_iIgnored = 0) RT_NOEXCEPT
56 : m_pszWhat(a_pszWhat)
57 { RT_NOREF(a_iIgnored); }
58#endif
59
60 virtual ~exception() RT_NOEXCEPT
61 {}
62
63 virtual const char *what() const RT_NOEXCEPT
64 {
65#ifdef _MSC_VER
66 if (m_pszWhat)
67 return m_pszWhat;
68#endif
69 return "unknown exception";
70 }
71#ifdef _MSC_VER
72protected:
73 const char *m_pszWhat;
74#endif
75};
76
77}
78
79#endif /* !IPRT_INCLUDED_nocrt_exception */
80
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette