---
name: "align"
section: "3bobcat"
platform: "linux"
package: "libbobcat-dev"
version: "6.07.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/align/3bobcat"
---

# align(3bobcat)

Class to align elements in Table objects

## NAME

FBB::Align - Class to align elements in Table objects

## SYNOPSIS

**#include \<bobcat/align\>**\

Linking option: *-lbobcat*

## DESCRIPTION

This class defines objects used by the class **FBB::Table** to define the alignment of its columns and/or elements.

## NAMESPACE

**FBB**\
 All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the namespace **FBB**.

## INHERITS FROM

\-

## ADDITIONAL TYPEDEF

The type **FBB::Manipulator** can be used as a shorthand for

```
        std::ios_base &(*)(std::ios_base &)
```

which is the prototype of standard io-manipulators like *std::left*.

## MANIPULATOR

The following manipulator (not part of the **FBB::Align**, class but defined in the *FBB* namespace) can be specified as *Align*-object constructor arguments and can be stored in *Align* objects through, e.g., *setManip*:

- o

  **FBB::center**:\

## CONSTRUCTORS

- o

  **Align(Manipulator manip)**:\
   This constructor is used to specify an alignment which, when inserted into a *Table*, is used for all the table’s elements. This general alignment type may be modified of specific columns and/or elements using the following constructors;

-

  - o

  **Align(size\_t column = 0, Manipulator manip = std::right)**:\
   This constructor defines how the content of column \`*column*’ of a *Table* object are aligned. When used, it is the responsibility of the programmer to ensure that the table’s column exists (i.e., the *Table* must have a column index *column*);

-

  - o

  **Align(int row, size\_t column, Manipulator manip)**:\
   This constructor defines the alignment of element *\[row\]\[column\]* of a *Table* object. Before using this constructor table element *\[row\]\[column\]* must have been defined. E.g.,

  ```
      Table tab{  3, Table::ROWWISE };
      tab << "xx00x " << " x01x " << " x02xx" <<
              10 << 11 << 12;
      tab << Align(1, 1, FBB::center);
  ```

Copy and move constructors (and assignment operators) are available.

## OVERLOADED OPERATORS

- o

  **operator size\_t() const**:\
   Returns the value representing a requested width of an element in a *Table* object.

## MEMBER FUNCTIONS

- o

  **size\_t col() const**:\
   Returns the object’s column index;

- o

  **bool hasRow() const**:\
   Returns *true* if the object’s  member returns a sensible value;

- o

  **size\_t row() const**:\
   Returns the object’s row index;

- o

  **Manipulator manip() const**:\
   Returns the *Manipulator* stored in the object;

- o

  **void setWidth(size\_t width)**:\
   Defines the field-width of element(s) of a *Table* object to which the *Align* object refers;

- o

  **void setManip(Manipulator manip)**:\
   Changes the object’s currently stored *Manipulator*.

## EXAMPLE

See the [**table**(3bobcat)](/table/3bobcat.md) man-page.

## FILES

*bobcat/align* - defines the class interface

## SEE ALSO

[**bobcat**(7)](/bobcat/7.md), [**csvtable**(3bobcat)](/csvtable/3bobcat.md), **manipulator**(3bobcat), [**table**(3bobcat)](/table/3bobcat.md)

## BUGS

None Reported.

## BOBCAT PROJECT FILES

- o

  *https://fbb-git.gitlab.io/bobcat/*: gitlab project page;

Debian Bobcat project files:

- o

  *libbobcat6*: debian package containing the shared library, changelog and copyright note;

- o

  *libbobcat-dev*: debian package containing the static library, headers, manual pages, and developer info;

## BOBCAT

Bobcat is an acronym of \`Brokken’s Own Base Classes And Templates’.

## COPYRIGHT

This is free software, distributed under the terms of the GNU General Public License (GPL).

## AUTHOR

Frank B. Brokken (**f.b.brokken@rug.nl**).
