相关疑难解决方法(0)

我在哪里可以找到当前的C或C++标准文档?

对于许多问题,答案似乎可以在"标准"中找到.但是,我们在哪里找到它?最好是在线.

谷歌搜索有时会觉得徒劳,尤其是对于C标准,因为他们在编程论坛的大量讨论中被淹没.

要开始这个,因为这些是我现在正在搜索的,那里有很好的在线资源:

  • C89
  • C99
  • C11
  • C++ 98
  • C++ 03
  • C++ 11
  • C++ 14

c c++ standards c++-faq

394
推荐指数
8
解决办法
12万
查看次数

正确的继承std :: exception的方法

我刚刚创建了异常层次结构,并希望传递char*给我的一个派生类的构造函数,并带有一条告诉错误的消息,但显然std::exception没有允许我这样做的构造函数.然而,有一个类成员被称为what()可以传递一些信息.
我怎么能(我可以?)将文本传递给a的派生类,std::exception以便通过我的异常类传递信息,所以我可以在代码中的某处说:

throw My_Exception("Something bad happened.");
Run Code Online (Sandbox Code Playgroud)

c++ exception

53
推荐指数
5
解决办法
6万
查看次数

为什么std :: exception在VC++中有额外的构造函数?

我刚才注意到的事情.定义exception标准(18.6.1):

class exception {
public :
    exception() throw();
    exception(const exception &) throw();
    exception& operator=(const exception&) throw();
    virtual ~exception() throw();
    virtual const char* what() const throw();
};
Run Code Online (Sandbox Code Playgroud)

exceptionMSDN中的定义:

class exception {
public:
   exception(); 
   exception(const char *const&);
   exception(const char *const&, int);
   exception(const exception&); 
   exception& operator=(const exception&); 
   virtual ~exception();
   virtual const char *what() const;
};
Run Code Online (Sandbox Code Playgroud)

看起来Microsoft的版本允许您为exception对象指定错误消息,而标准版本只允许您为派生类执行此操作(但不会阻止您exception使用未定义的消息创建泛型).

我知道这是非常微不足道的,但仍然存在.有这么好的理由吗?

c++ standards visual-c++

24
推荐指数
1
解决办法
2417
查看次数

C++抛出类成员

我有以下C++代码

template <class E>
class ExceptionWrapper {
public:
    explicit ExceptionWrapper(const E& e): e(e) {}

    void throwException() {
        throw e;
    }

private:
    E e;
};

...
try {
    ExceptionWrapper<E> w(...);
    w.throwException();
} catch (const E& e) {
    ...
}
...
Run Code Online (Sandbox Code Playgroud)

问题:这段代码有效吗?我可以争辩说,返回对类成员的引用几乎总是无效的(我相信每个人都同意这个陈述).但是,我的同事声称事实并非如此throw.

改变后的PS catch (const E& e)catch (E e)一个讨厌的错误看似消失这加强了我的位置-这个代码是不是有效.

c++ reference exception

8
推荐指数
1
解决办法
535
查看次数

标签 统计

c++ ×4

exception ×2

standards ×2

c ×1

c++-faq ×1

reference ×1

visual-c++ ×1