📄 typeinfo.hpp
字号:
// file : Utility/Introspection/TypeInfo.hpp
// author : Boris Kolpackov <boris@kolpackov.net>
// copyright : Copyright (c) 2002-2003 Boris Kolpackov
// license : http://kolpackov.net/license.html
#ifndef UTILITY_INTROSPECTION_TYPE_INFO_HPP
#define UTILITY_INTROSPECTION_TYPE_INFO_HPP
#include <vector>
#include "Utility/Introspection/TypeId.hpp"
namespace Utility
{
namespace Introspection
{
//
//
//
struct Access
{
enum Value
{
PRIVATE,
PROTECTED,
PUBLIC
};
};
// Forward declaration of class TypeInfo.
//
//
class TypeInfo;
//
//
//
class BaseInfo
{
public:
BaseInfo (Access::Value access,
bool virtual_base,
TypeInfo const& ti);
public:
TypeInfo const&
type_info () const;
Access::Value
access () const;
bool
virtual_base () const;
private:
TypeInfo const* ti_;
bool virtual_base_;
Access::Value access_;
};
//
//
//
class TypeInfo
{
private:
typedef
std::vector<BaseInfo>
BaseInfoList;
public:
typedef
BaseInfoList::const_iterator
BaseIterator;
public:
TypeInfo (TypeId const& tid);
TypeId
type_id () const;
BaseIterator
begin_base () const;
BaseIterator
end_base () const;
void
add_base (Access::Value access,
bool virtual_base,
TypeInfo const& ti);
private:
TypeId tid_;
BaseInfoList base_;
};
}
}
#include "Utility/Introspection/TypeInfo.ipp"
#endif // UTILITY_INTROSPECTION_TYPE_INFO_HPP
//TypeInfo.hpp,v 1.1 2005/05/24 04:33:13 turkaye Exp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -