Murray Cumming wrote:
On Tue, 2006-10-24 at 22:05 +0200, Marco Barisione wrote:Il giorno mar, 24/10/2006 alle 13.17 -0400, Dominic Lachowicz ha scritto:1) Please don't name variables 'string', as there may be a conflict with C++'s std::stringI think they were called "string" in the original version of GRegex written by Scott Wimer in 1999. PCRE calls the string "subject". However it's not a problem with C++, this program is valid: #include <string> #include <iostream> using namespace std; int main () { string string = "hello"; cout << string << endl; }It's not necessary to challenge every compiler and every build environment with that. A rename is easy.
There are already stdin, stdout, and stderr forbidden thanks to nice C macros. Are you saying that now we must not use a nice word "string" because there may be a broken C++ compiler? Which C++ compiler will break on "void func (const char *string);" ?
2) I noticed that there are g_regex_ref/unref() methods. Why did you choose to do this, rather than subclass GObject? You would also then have easy GObject-style accessors for the regex's "pattern" and "match_options".The original plan was to include directly GRegex in GLib, so it cannot depend on GObject. This could be changed if we decide to include GRegex in a separate library. However is really necessary to have a real object? I added _ref and _unref because the only two programs that are currently using my modified version of EggRegex are GtkSourceView and MooEdit.Both programs need reference counting for regular expressions.[snip] Do they need to reference count plain strings too?
Of course we do, we also reference count plain ints and chars. Regards, Yevgen