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

Contents of /trunk/ascxx/symchar.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2327 - (show annotations) (download) (as text)
Wed Dec 22 07:17:24 2010 UTC (13 years, 8 months ago) by jpye
File MIME type: text/x-chdr
File size: 1113 byte(s)
Merging in refactor of the C++ code, which is moved out of 'pygtk' and into 'ascxx'.
Adding support for IPOPT 3.9.1, the current latest version.
Support in dtar for parallel builds (possibly needs some testing still).
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