~ubuntu-branches/ubuntu/jaunty/aspectc++/jaunty

« back to all changes in this revision

Viewing changes to Puma/src/infos/CSpecifiers.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-07-07 14:41:02 UTC
  • mfrom: (1.1.3 upstream) (6.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080707144102-lzml7t07f3sl00r5
Tags: 1.0pre4~svn.20080711-1
* new upstream snapshot.
* include all upstream documentation. Clarifying emails regarding
  licensing has been included into debian/copyright.
* reformat description following recomendations of
  http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description
  (Closes: #480316)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#ifndef __CSpecifiers__
20
20
#define __CSpecifiers__
21
21
 
22
 
// C++ declaration specifiers
 
22
/** \file
 
23
 *  C/C++ declaration specifiers. */
23
24
 
24
25
namespace Puma {
25
26
 
26
27
 
 
28
/** \class CSpecifiers CSpecifiers.h Puma/CSpecifiers.h
 
29
 *  C/C++ declaration specifiers for the declaration 
 
30
 *  of an entity. */
27
31
class CSpecifiers {
28
32
public:
 
33
  /** Declaration specifiers. */
29
34
  enum Spec {
 
35
    /** No declaration specifier. */
30
36
    SPEC_NONE     = 0x0,
 
37
    /** Declaration specifier \c virtual. */
31
38
    SPEC_VIRTUAL  = 0x1,
 
39
    /** Declaration specifier \c static. */
32
40
    SPEC_STATIC   = 0x2,
 
41
    /** Declaration specifier \c extern. */
33
42
    SPEC_EXTERN   = 0x4,
 
43
    /** Declaration specifier \c mutable. */
34
44
    SPEC_MUTABLE  = 0x8,
 
45
    /** Declaration specifier \c register. */
35
46
    SPEC_REGISTER = 0x10,
 
47
    /** Declaration specifier \c explicit. */
36
48
    SPEC_EXPLICIT = 0x20,
 
49
    /** Declaration specifier \c auto. */
37
50
    SPEC_AUTO     = 0x40,
 
51
    /** Declaration specifier \c inline. */
38
52
    SPEC_INLINE   = 0x80
39
53
  };
40
54
 
42
56
  unsigned char _specs;
43
57
  
44
58
public:
 
59
  /** Constructor. */
45
60
  CSpecifiers ();
46
 
  CSpecifiers (const CSpecifiers &);
47
 
  CSpecifiers &operator =(const CSpecifiers &);
 
61
  /** Copy-constructor.
 
62
   *  \param copy The declaration specifiers to copy. */
 
63
  CSpecifiers (const CSpecifiers &copy);
 
64
  /** Assignment operator.
 
65
   *  \param s The assigned declaration specifiers. */
 
66
  CSpecifiers &operator =(const CSpecifiers &s);
48
67
 
49
 
  // add/remove specifier
50
 
  CSpecifiers &operator +=(Spec);
51
 
  CSpecifiers &operator -=(Spec);
 
68
  /** Add a declaration specifier. 
 
69
   *  \param s The declaration specifier. */
 
70
  CSpecifiers &operator +=(Spec s);
 
71
  /** Remove a declaration specifier. 
 
72
   *  \param s The declaration specifier. */
 
73
  CSpecifiers &operator -=(Spec s);
52
74
  
53
 
  // test for specifier
 
75
  /** Check if the given declaration specifier was specified.
 
76
   *  \param s The declaration specifier. */
54
77
  bool operator ==(Spec) const;
 
78
  /** Check if the given declaration specifier was not specified.
 
79
   *  \param s The declaration specifier. */
55
80
  bool operator !=(Spec) const;
56
81
};
57
82