176c38d385447b7acdff2d7e6b13fa8580e7174a7Argyrios Kyrtzidis// Header for PCH test cxx-typeid.cpp
276c38d385447b7acdff2d7e6b13fa8580e7174a7Argyrios Kyrtzidis
325e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis#ifndef CXX_TYPEID_H
425e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis#define CXX_TYPEID_H
525e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
625e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidisnamespace std {
725e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
825e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidisclass type_info
925e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis{
1025e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidispublic:
1125e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    virtual ~type_info();
1225e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
1325e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bool operator==(const type_info& rhs) const;
1425e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bool operator!=(const type_info& rhs) const;
1525e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
1625e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bool before(const type_info& rhs) const;
1725e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    unsigned long hash_code() const;
1825e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    const char* name() const;
1925e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
2025e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    type_info(const type_info& rhs);
2125e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    type_info& operator=(const type_info& rhs);
2225e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis};
2325e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
2425e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidisclass bad_cast
2525e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis{
2625e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidispublic:
2725e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_cast();
2825e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_cast(const bad_cast&);
2925e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_cast& operator=(const bad_cast&);
3025e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    virtual const char* what() const;
3125e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis};
3225e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
3325e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidisclass bad_typeid
3425e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis{
3525e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidispublic:
3625e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_typeid();
3725e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_typeid(const bad_typeid&);
3825e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    bad_typeid& operator=(const bad_typeid&);
3925e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis    virtual const char* what() const;
4025e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis};
4125e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
4225e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis}  // std
4325e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis
4425e42cba8f949f8b2e561046a7db49d674d410e1Argyrios Kyrtzidis#endif
45