/[ascend]/trunk/ascxx/symchar.h
ViewVC logotype

Contents of /trunk/ascxx/symchar.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2323 - (show annotations) (download) (as text)
Wed Dec 15 06:35:43 2010 UTC (13 years, 9 months ago) by jpye
Original Path: trunk/pygtk/symchar.h
File MIME type: text/x-chdr
File size: 1113 byte(s)
Refactor some more stuff from 'utilities' into 'general' with goal that 'general' never refers to 'utilities'.
1 #ifndef ASCXX_SYMCHAR_H
2 #define ASCXX_SYMCHAR_H
3
4 #include <iostream>
5 #include <string>
6
7 #include "config.h"
8 extern "C"{
9 #include <ascend/general/platform.h>
10 #include <ascend/compiler/compiler.h>
11 #include <ascend/compiler/symtab.h>
12 #include <ascend/compiler/instance_name.h>
13 }
14
15 /**
16 A container for ASCEND strings, used to ensure
17 that two identical strings created via the SymChar interface
18 will only be stored once in memory, and can be tested for
19 equality using pointer comparison alone.
20
21 @TODO @bug FIXME There is a problem with the calling conventions of char * and symchar*
22 -- C++ can't tell which one you're trying to use.
23 */
24 class SymChar{
25 private:
26 const symchar *sc;
27 public:
28 //SymChar();
29 SymChar(const std::string &name);
30 SymChar(const char *name);
31 SymChar(const symchar *name); // never gets used
32 SymChar(const SymChar &);
33 SymChar(const struct InstanceName &);
34 bool operator==(const SymChar &) const;
35 bool operator<(const SymChar &) const;
36
37 const char *toString() const;
38 const symchar *getInternalType() const;
39 };
40
41 std::ostream& operator << (std::ostream& os, const SymChar& s);
42
43 #endif

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22