it has no virtual
/// functions. This is important because it ensures that there is no run-time
/// distinction between a Table instance and an instance of any variation of
/// BasicTable<T>, and this, in turn, makes it valid to cast a pointer from
/// Table to BasicTable<T> even when the instance is constructed as a Table. Of
/// course, this also assumes that BasicTable<> is non-polymorphic, has no
/// destructor, and adds no extra data members.
///
/// FIXME: Table assignment (from any group to any group) could be made aliasing
/// safe as follows: Start by cloning source table into target allocator. On
/// success, assign, and then deallocate any previous structure at the target.
///
/// FIXME: It might be desirable to have a 'table move' feature between two
/// places inside the same group (say from a subtable or a mixed column to group
/// level). This could be done in a very efficient manner.
///
/// FIXME: When compiling in debug mode, all public non-static table functions
/// should REALM_ASSERT(is_attached()).
class Table {
public:
/// Construct a new freestanding top-level table with static
/// lifetime.
///
/// This constructor should be used only when placing a table
/// instance on the stack, and it is then the responsibility of
/// the application that there are no objects of type TableRef or
/// ConstTableRef that refer to it, or to any of its subtables,
/// when it goes out of scope. To create a top-level table with
/// dynamic lifetime, use Table::create() instead.
Table(Allocator& = Allocator::get_default());
/// Construct a copy of the specified table as a new freestanding
/// top-level table with static lifetime.
///
/// This constructor should be used only when placing a table
/// instance on the stack, and it is then the responsibility of
/// the application that there are no objects of type TableRef or
/// ConstTableRef that refer to it, or to any of its subtables,
/// when it goes out of scope. To create a top-level table with
/// dynamic lifetime, use Table::copy() instead.
Table(const Table&, Allocator& = Allocator::get_default());
͓קΊϔομϑΝΠϧ group.hpp group_shared.hpp table.hpp string_data.hpp index_string.hpp query_expression.hpp