=> Bootstrap dependency digest>=20211023: found digest-20220214
===> Skipping vulnerability checks.
WARNING: No /usr/pkg/pkgdb/pkg-vulnerabilities file found.
WARNING: To fix run: `/usr/sbin/pkg_admin -K /usr/pkg/pkgdb fetch-pkg-vulnerabilities'.
===> Building for qalculate-gtk-3.5.0nb26
/usr/pkg/bin/gmake  all-recursive
gmake[1]: Entering directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0'
Making all in data
gmake[2]: Entering directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0/data'
LC_ALL=C /pbulk/work/math/qalculate-gtk/work/.tools/bin/intltool-merge  -x -u -c ../po/.intltool-merge-cache ../po qalculate-gtk.appdata.xml.in qalculate-gtk.appdata.xml
LC_ALL=C /pbulk/work/math/qalculate-gtk/work/.tools/bin/intltool-merge  -d -u -c ../po/.intltool-merge-cache ../po qalculate-gtk.desktop.in qalculate-gtk.desktop
Generating and caching the translation database
Merging translations into qalculate-gtk.desktop.
Generating and caching the translation database
Merging translations into qalculate-gtk.appdata.xml.
CREATED qalculate-gtk.appdata.xml
gmake[2]: Leaving directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0/data'
Making all in src
gmake[2]: Entering directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0/src'
c++ -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share"\" -DPACKAGE_DOC_DIR=\""/usr/pkg/share/doc/qalculate-gtk"\" -I/usr/pkg/include/gtk-3.0 -I/usr/X11R7/include -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -D_REENTRANT -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include -pthread -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include/pixman-1 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/fribidi -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm  -O2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cc
c++ -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share"\" -DPACKAGE_DOC_DIR=\""/usr/pkg/share/doc/qalculate-gtk"\" -I/usr/pkg/include/gtk-3.0 -I/usr/X11R7/include -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -D_REENTRANT -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include -pthread -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include/pixman-1 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/fribidi -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm  -O2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm -MT interface.o -MD -MP -MF .deps/interface.Tpo -c -o interface.o interface.cc
c++ -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share"\" -DPACKAGE_DOC_DIR=\""/usr/pkg/share/doc/qalculate-gtk"\" -I/usr/pkg/include/gtk-3.0 -I/usr/X11R7/include -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -D_REENTRANT -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include -pthread -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include/pixman-1 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/fribidi -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm  -O2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm -MT callbacks.o -MD -MP -MF .deps/callbacks.Tpo -c -o callbacks.o callbacks.cc
gcc -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share"\" -DPACKAGE_DOC_DIR=\""/usr/pkg/share/doc/qalculate-gtk"\" -I/usr/pkg/include/gtk-3.0 -I/usr/X11R7/include -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -D_REENTRANT -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include -pthread -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include/pixman-1 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/fribidi -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm  -O2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm -Wall -MT ui.o -MD -MP -MF .deps/ui.Tpo -c -o ui.o ui.c
gcc -DHAVE_CONFIG_H -I. -I..  -DPACKAGE_DATA_DIR=\""/usr/pkg/share"\" -DPACKAGE_DOC_DIR=\""/usr/pkg/share/doc/qalculate-gtk"\" -I/usr/pkg/include/gtk-3.0 -I/usr/X11R7/include -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/cairo -I/usr/pkg/include/dbus-1.0 -I/usr/pkg/lib/dbus-1.0/include -D_REENTRANT -I/usr/pkg/include/atk-1.0 -I/usr/pkg/include -pthread -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libpng16 -I/usr/X11R7/include/pixman-1 -I/usr/pkg/include/at-spi2-atk/2.0 -I/usr/pkg/include/at-spi-2.0 -I/usr/pkg/include/fribidi -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/pkg/include -I/usr/pkg/include/libxml2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm  -O2 -I/usr/pkg/include -I/usr/include -I/usr/include/krb5 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/X11R7/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/harfbuzz -I/usr/X11R7/include/libdrm -Wall -MT flags.o -MD -MP -MF .deps/flags.Tpo -c -o flags.o flags.c
mv -f .deps/flags.Tpo .deps/flags.Po
In file included from interface.cc:25:0:
callbacks.h:63:40: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
                                        ^
callbacks.h:64:44: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(ExpressionFunction)
                                            ^
In file included from main.cc:25:0:
callbacks.h:63:40: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
                                        ^
callbacks.h:64:44: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(ExpressionFunction)
                                            ^
In file included from callbacks.cc:28:0:
callbacks.h:63:40: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
                                        ^
callbacks.h:64:44: error: macro "DECLARE_BUILTIN_FUNCTION" requires 2 arguments, but only 1 given
 DECLARE_BUILTIN_FUNCTION(ExpressionFunction)
                                            ^
mv -f .deps/ui.Tpo .deps/ui.Po
callbacks.h:37:2: error: 'string' does not name a type; did you mean 'GString'?
  string name;
  ^~~~~~
  GString
callbacks.h:63:1: error: 'DECLARE_BUILTIN_FUNCTION' does not name a type; did you mean 'SUBTYPE_USER_FUNCTION'?
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
 ^~~~~~~~~~~~~~~~~~~~~~~~
 SUBTYPE_USER_FUNCTION
callbacks.h:81:21: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                     ^~~~~~
callbacks.h:81:21: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:81:34: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                                  ^~~~~~
callbacks.h:81:34: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:81:45: error: expression list treated as compound expression in initializer [-fpermissive]
 bool string_is_less(string str1, string str2);
                                             ^
In file included from interface.cc:25:0:
callbacks.h:132:180: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                    ^~~~~~
callbacks.h:132:201: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                         ^~~~~~
callbacks.h:132:201: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:132:211: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                   ^~~~~~
callbacks.h:132:224: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                                ^~~~~~
callbacks.h:132:224: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:133:114: error: 'string' has not been declared
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                  ^~~~~~
callbacks.h:133:193: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                                                                                                 ^
callbacks.h:138:23: error: variable or field 'RPNRegisterAdded' declared void
 void RPNRegisterAdded(string text, gint index = 0);
                       ^~~~~~
callbacks.h:138:23: error: 'string' was not declared in this scope
callbacks.h:138:23: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:138:41: error: expected primary-expression before 'index'
 void RPNRegisterAdded(string text, gint index = 0);
                                         ^~~~~
callbacks.h:140:25: error: variable or field 'RPNRegisterChanged' declared void
 void RPNRegisterChanged(string text, gint index);
                         ^~~~~~
callbacks.h:140:25: error: 'string' was not declared in this scope
callbacks.h:140:25: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from interface.cc:25:0:
callbacks.h:140:43: error: expected primary-expression before 'index'
 void RPNRegisterChanged(string text, gint index);
                                           ^~~~~
callbacks.h:37:2: error: 'string' does not name a type; did you mean 'GString'?
  string name;
  ^~~~~~
  GString
callbacks.h:63:1: error: 'DECLARE_BUILTIN_FUNCTION' does not name a type; did you mean 'SUBTYPE_USER_FUNCTION'?
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
 ^~~~~~~~~~~~~~~~~~~~~~~~
 SUBTYPE_USER_FUNCTION
callbacks.h:81:21: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                     ^~~~~~
callbacks.h:81:21: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:81:34: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                                  ^~~~~~
callbacks.h:81:34: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:81:45: error: expression list treated as compound expression in initializer [-fpermissive]
 bool string_is_less(string str1, string str2);
                                             ^
In file included from main.cc:25:0:
callbacks.h:132:180: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                    ^~~~~~
callbacks.h:132:201: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                         ^~~~~~
callbacks.h:132:201: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:132:211: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                   ^~~~~~
callbacks.h:132:224: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                                ^~~~~~
callbacks.h:132:224: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:133:114: error: 'string' has not been declared
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                  ^~~~~~
callbacks.h:133:193: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                                                                                                 ^
callbacks.h:138:23: error: variable or field 'RPNRegisterAdded' declared void
 void RPNRegisterAdded(string text, gint index = 0);
                       ^~~~~~
callbacks.h:138:23: error: 'string' was not declared in this scope
callbacks.h:138:23: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:138:41: error: expected primary-expression before 'index'
 void RPNRegisterAdded(string text, gint index = 0);
                                         ^~~~~
callbacks.h:140:25: error: variable or field 'RPNRegisterChanged' declared void
 void RPNRegisterChanged(string text, gint index);
                         ^~~~~~
callbacks.h:140:25: error: 'string' was not declared in this scope
callbacks.h:140:25: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from main.cc:25:0:
callbacks.h:140:43: error: expected primary-expression before 'index'
 void RPNRegisterChanged(string text, gint index);
                                           ^~~~~
interface.cc:66:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<mode_struct> modes;
        ^~~~~~
        Vector
main.cc:29:1: error: 'string' does not name a type; did you mean 'GString'?
 string *parsed_to_str;
 ^~~~~~
 GString
interface.cc:125:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<GtkTreeViewColumn*> matrix_edit_columns, matrix_columns;
        ^~~~~~
        Vector
main.cc:32:1: error: 'string' does not name a type; did you mean 'GString'?
 string selected_function_category;
 ^~~~~~
 GString
interface.cc:151:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string custom_result_font, custom_expression_font, custom_status_font;
        ^~~~~~
        GString
main.cc:35:1: error: 'string' does not name a type; did you mean 'GString'?
 string selected_variable_category;
 ^~~~~~
 GString
interface.cc:152:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string status_error_color, status_warning_color;
        ^~~~~~
        GString
main.cc:37:1: error: 'string' does not name a type; did you mean 'GString'?
 string result_text, parsed_text;
 ^~~~~~
 GString
interface.cc:162:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string nbases_error_color, nbases_warning_color;
        ^~~~~~
        GString
main.cc:39:1: error: 'string' does not name a type; did you mean 'GString'?
 string selected_unit_category;
 ^~~~~~
 GString
interface.cc:169:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<GtkWidget*> mode_items;
        ^~~~~~
        Vector
interface.cc:170:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<GtkWidget*> popup_result_mode_items;
        ^~~~~~
        Vector
main.cc:40:1: error: 'string' does not name a type; did you mean 'GString'?
 string selected_unit_selector_category;
 ^~~~~~
 GString
interface.cc:172:8: error: 'deque' does not name a type
 extern deque<string> expression_undo_buffer;
        ^~~~~
main.cc:47:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<string> recent_functions_pre;
        ^~~~~~
        Vector
main.cc:48:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<string> recent_variables_pre;
        ^~~~~~
        Vector
interface.cc:177:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string latest_button_unit_pre, latest_button_currency_pre;
        ^~~~~~
        GString
main.cc:49:8: error: 'vector' does not name a type; did you mean 'Vector'?
 extern vector<string> recent_units_pre;
        ^~~~~~
        Vector
main.cc:64:1: error: 'string' does not name a type; did you mean 'GString'?
 string calc_arg;
 ^~~~~~
 GString
main.cc: In function 'void create_application(GtkApplication*)':
main.cc:120:2: error: 'parsed_to_str' was not declared in this scope
  parsed_to_str = new string;
  ^~~~~~~~~~~~~
interface.cc:188:8: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 extern unordered_map<string, GdkPixbuf*> flag_images;
        ^~~~~~~~~~~~~
        isunordered
main.cc:120:2: note: suggested alternative: 'parsed_tostruct'
  parsed_to_str = new string;
  ^~~~~~~~~~~~~
  parsed_tostruct
interface.cc:190:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string fix_history_string(const string &str);
        ^~~~~~
        GString
main.cc:120:22: error: 'string' does not name a type; did you mean 'GString'?
  parsed_to_str = new string;
                      ^~~~~~
                      GString
main.cc:135:5: error: 'calc_arg' was not declared in this scope
  if(calc_arg.empty() && first_time) {
     ^~~~~~~~
main.cc:135:5: note: suggested alternative: 'va_arg'
  if(calc_arg.empty() && first_time) {
     ^~~~~~~~
     va_arg
main.cc:167:2: error: 'string' was not declared in this scope
  string ans_str = _("ans");
  ^~~~~~
main.cc:167:2: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
main.cc:168:104: error: 'ans_str' was not declared in this scope
  vans[0] = (KnownVariable*) CALCULATOR->addVariable(new KnownVariable(CALCULATOR->temporaryCategory(), ans_str, m_undefined, _("Last Answer"), false));
                                                                                                        ^~~~~~~
interface.cc: In function 'GtkBuilder* getBuilder(const char*)':
interface.cc:566:2: error: 'string' was not declared in this scope
  string resstr = "/qalculate-gtk/ui/";
  ^~~~~~
interface.cc:566:2: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:567:2: error: 'resstr' was not declared in this scope
  resstr += filename;
  ^~~~~~
main.cc:168:104: note: suggested alternative: 'wcsstr'
  vans[0] = (KnownVariable*) CALCULATOR->addVariable(new KnownVariable(CALCULATOR->temporaryCategory(), ans_str, m_undefined, _("Last Answer"), false));
                                                                                                        ^~~~~~~
                                                                                                        wcsstr
interface.cc:567:2: note: suggested alternative: 'eqstr'
  resstr += filename;
  ^~~~~~
  eqstr
interface.cc: In function 'void set_keypad_tooltip(const gchar*, const char*, const char*, const char*, bool, bool)':
interface.cc:574:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
main.cc:181:41: error: expected type-specifier before 'AnswerFunction'
  f_answer = CALCULATOR->addFunction(new AnswerFunction());
                                         ^~~~~~~~~~~~~~
interface.cc:574:2: note: suggested alternatives:
main.cc:182:45: error: expected type-specifier before 'ExpressionFunction'
  f_expression = CALCULATOR->addFunction(new ExpressionFunction());
                                             ^~~~~~~~~~~~~~~~~~
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:575:9: error: 'str' was not declared in this scope
  if(s1) str += s1;
         ^~~
main.cc:197:2: error: 'selected_function_category' was not declared in this scope
  selected_function_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.cc:577:10: error: 'str' was not declared in this scope
   if(s1) str += "\n\n";
          ^~~
interface.cc:578:19: error: 'str' was not declared in this scope
   if(b_longpress) str += _("Right-click/long press: %s");
                   ^~~
interface.cc:579:8: error: 'str' was not declared in this scope
   else str += _("Right-click: %s");
        ^~~
interface.cc:580:18: error: 'str' was not declared in this scope
   gsub("%s", s2, str);
                  ^~~
interface.cc:583:10: error: 'str' was not declared in this scope
   if(s2) str += "\n";
          ^~~
interface.cc:584:15: error: 'str' was not declared in this scope
   else if(s1) str += "\n\n";
               ^~~
interface.cc:585:3: error: 'str' was not declared in this scope
   str += _("Middle-click: %s");
   ^~~
interface.cc:588:98: error: 'str' was not declared in this scope
  if(b_markup) gtk_widget_set_tooltip_markup(GTK_WIDGET(gtk_builder_get_object(main_builder, w)), str.c_str());
                                                                                                  ^~~
interface.cc:589:88: error: 'str' was not declared in this scope
  else gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(main_builder, w)), str.c_str());
                                                                                        ^~~
interface.cc: In function 'void create_button_menus()':
interface.cc:740:6: error: 'latest_button_unit_pre' was not declared in this scope
  if(!latest_button_unit_pre.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~
interface.cc:740:6: note: suggested alternative: 'latest_button_unit'
  if(!latest_button_unit_pre.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~
      latest_button_unit
interface.cc:745:3: error: 'string' was not declared in this scope
   string si_label_str;
   ^~~~~~
interface.cc:745:3: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:747:4: error: 'si_label_str' was not declared in this scope
    si_label_str = ((CompositeUnit*) latest_button_unit)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~
main.cc:197:2: note: suggested alternative: 'selected_function'
  selected_function_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
  selected_function
main.cc:200:2: error: 'selected_variable_category' was not declared in this scope
  selected_variable_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.cc:747:4: note: suggested alternative: 'gtk_label_new'
    si_label_str = ((CompositeUnit*) latest_button_unit)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~
    gtk_label_new
interface.cc:750:4: error: 'si_label_str' was not declared in this scope
    si_label_str = latest_button_unit->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~
interface.cc:750:4: note: suggested alternative: 'gtk_label_new'
    si_label_str = latest_button_unit->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~
    gtk_label_new
interface.cc:752:83: error: 'si_label_str' was not declared in this scope
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_si")), si_label_str.c_str());
                                                                                   ^~~~~~~~~~~~
interface.cc:752:83: note: suggested alternative: 'gtk_label_new'
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_si")), si_label_str.c_str());
                                                                                   ^~~~~~~~~~~~
                                                                                   gtk_label_new
interface.cc:757:2: error: 'vector' was not declared in this scope
  vector<Unit*> to_us;
  ^~~~~~
interface.cc:757:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
interface.cc:757:13: error: expected primary-expression before '*' token
  vector<Unit*> to_us;
             ^
interface.cc:757:14: error: expected primary-expression before '>' token
  vector<Unit*> to_us;
              ^
interface.cc:757:16: error: 'to_us' was not declared in this scope
  vector<Unit*> to_us;
                ^~~~~
interface.cc:765:61: error: 'string_is_less' cannot be used as a function
     if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                             ^
interface.cc:788:61: error: 'string_is_less' cannot be used as a function
     if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                             ^
interface.cc:801:6: error: 'latest_button_currency_pre' was not declared in this scope
  if(!latest_button_currency_pre.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
interface.cc:801:6: note: suggested alternative: 'latest_button_currency'
  if(!latest_button_currency_pre.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      latest_button_currency
interface.cc:807:2: error: 'string' was not declared in this scope
  string unit_label_str;
  ^~~~~~
interface.cc:807:2: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:809:3: error: 'unit_label_str' was not declared in this scope
   unit_label_str = ((CompositeUnit*) latest_button_currency)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
   ^~~~~~~~~~~~~~
main.cc:200:2: note: suggested alternative: 'selected_variable'
  selected_variable_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
  selected_variable
main.cc:203:2: error: 'selected_unit_category' was not declared in this scope
  selected_unit_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~
interface.cc:809:3: note: suggested alternative: 'statuslabel_r'
   unit_label_str = ((CompositeUnit*) latest_button_currency)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
   ^~~~~~~~~~~~~~
   statuslabel_r
interface.cc:812:3: error: 'unit_label_str' was not declared in this scope
   unit_label_str = latest_button_currency->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
   ^~~~~~~~~~~~~~
interface.cc:812:3: note: suggested alternative: 'statuslabel_r'
   unit_label_str = latest_button_currency->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
   ^~~~~~~~~~~~~~
   statuslabel_r
interface.cc:814:84: error: 'unit_label_str' was not declared in this scope
  gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_euro")), unit_label_str.c_str());
                                                                                    ^~~~~~~~~~~~~~
interface.cc:814:84: note: suggested alternative: 'statuslabel_r'
  gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_euro")), unit_label_str.c_str());
                                                                                    ^~~~~~~~~~~~~~
                                                                                    statuslabel_r
interface.cc:831:61: error: 'string_is_less' cannot be used as a function
     if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                             ^
In file included from interface.cc:26:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/g++/unordered_map:48:0,
                 from interface.cc:32:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from interface.cc:26:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cc:203:2: note: suggested alternative: 'selected_unit'
  selected_unit_category = _("All");
  ^~~~~~~~~~~~~~~~~~~~~~
  selected_unit
main.cc:206:2: error: 'result_text' was not declared in this scope
  result_text = "0";
  ^~~~~~~~~~~
main.cc:206:2: note: suggested alternative: 'resultview'
  result_text = "0";
  ^~~~~~~~~~~
  resultview
main.cc:207:2: error: 'parsed_text' was not declared in this scope
  parsed_text = "0";
  ^~~~~~~~~~~
main.cc:207:2: note: suggested alternative: 'parsed_mstruct'
  parsed_text = "0";
  ^~~~~~~~~~~
  parsed_mstruct
main.cc:237:21: error: 'recent_functions_pre' was not declared in this scope
  for(int i = ((int) recent_functions_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~~~~~
interface.h:18:145: note: suggested alternative: 'copy_separator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
interface.cc:841:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.h:37:2: error: 'string' does not name a type; did you mean 'GString'?
  string name;
  ^~~~~~
  GString
interface.cc:845:13: error: expected primary-expression before '*' token
  vector<Unit*> to_us2;
             ^
interface.cc:845:14: error: expected primary-expression before '>' token
  vector<Unit*> to_us2;
              ^
interface.cc:845:16: error: 'to_us2' was not declared in this scope
  vector<Unit*> to_us2;
                ^~~~~~
In file included from interface.cc:26:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/g++/unordered_map:48:0,
                 from interface.cc:32:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from interface.cc:26:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:145: note: suggested alternative: 'copy_separator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
interface.cc:883:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), insert_button_currency, to_us[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cc:237:21: note: suggested alternative: 'update_functions_tree'
  for(int i = ((int) recent_functions_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~~~~~
                     update_functions_tree
main.cc:240:21: error: 'recent_variables_pre' was not declared in this scope
  for(int i = ((int) recent_variables_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~~~~~
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/g++/unordered_map:48:0,
                 from interface.cc:32:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from interface.cc:26:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.h:63:1: error: 'DECLARE_BUILTIN_FUNCTION' does not name a type; did you mean 'SUBTYPE_USER_FUNCTION'?
 DECLARE_BUILTIN_FUNCTION(AnswerFunction)
 ^~~~~~~~~~~~~~~~~~~~~~~~
 SUBTYPE_USER_FUNCTION
callbacks.h:81:21: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                     ^~~~~~
callbacks.h:81:21: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:81:34: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2);
                                  ^~~~~~
callbacks.h:81:34: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:81:45: error: expression list treated as compound expression in initializer [-fpermissive]
 bool string_is_less(string str1, string str2);
                                             ^
In file included from callbacks.cc:28:0:
callbacks.h:132:180: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                    ^~~~~~
callbacks.h:132:201: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                         ^~~~~~
callbacks.h:132:201: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:132:211: error: 'string' has not been declared
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                   ^~~~~~
callbacks.h:132:224: error: 'string' was not declared in this scope
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
                                                                                                                                                                                                                                ^~~~~~
callbacks.h:132:224: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:133:114: error: 'string' has not been declared
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                  ^~~~~~
callbacks.h:133:193: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
                                                                                                                                                                                                 ^
callbacks.h:138:23: error: variable or field 'RPNRegisterAdded' declared void
 void RPNRegisterAdded(string text, gint index = 0);
                       ^~~~~~
callbacks.h:138:23: error: 'string' was not declared in this scope
callbacks.h:138:23: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:138:41: error: expected primary-expression before 'index'
 void RPNRegisterAdded(string text, gint index = 0);
                                         ^~~~~
callbacks.h:140:25: error: variable or field 'RPNRegisterChanged' declared void
 void RPNRegisterChanged(string text, gint index);
                         ^~~~~~
callbacks.h:140:25: error: 'string' was not declared in this scope
callbacks.h:140:25: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:28:0:
callbacks.h:140:43: error: expected primary-expression before 'index'
 void RPNRegisterChanged(string text, gint index);
                                           ^~~~~
interface.h:18:145: note: suggested alternative: 'copy_separator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
interface.cc:888:3: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
   MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), insert_button_currency, to_us2[i])
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cc:240:21: note: suggested alternative: 'update_variables_tree'
  for(int i = ((int) recent_variables_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~~~~~
                     update_variables_tree
main.cc:243:21: error: 'recent_units_pre' was not declared in this scope
  for(int i = ((int) recent_units_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
interface.cc: In function 'void create_main_window()':
interface.cc:1047:4: error: 'string' was not declared in this scope
    string flag_s = flags_r[i];
    ^~~~~~
interface.cc:1047:4: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:1048:19: error: 'flag_s' was not declared in this scope
    size_t i_ext = flag_s.find(".", 1);
                   ^~~~~~
interface.cc:1048:19: note: suggested alternative: 'flags_r'
    size_t i_ext = flag_s.find(".", 1);
                   ^~~~~~
                   flags_r
interface.cc:1049:16: error: 'string' is not a class, namespace, or enumeration
    if(i_ext != string::npos) {
                ^~~~~~
interface.cc:1051:17: error: 'flag_images' was not declared in this scope
     if(flagbuf) flag_images[flag_s.substr(0, i_ext)] = flagbuf;
                 ^~~~~~~~~~~
interface.cc:1062:2: error: 'expression_undo_buffer' was not declared in this scope
  expression_undo_buffer.push_back("");
  ^~~~~~~~~~~~~~~~~~~~~~
main.cc:243:21: note: suggested alternative: 'update_units_tree'
  for(int i = ((int) recent_units_pre.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
                     update_units_tree
main.cc:251:20: error: 'ViewThread' does not name a type; did you mean 'view_thread'?
  view_thread = new ViewThread;
                    ^~~~~~~~~~
                    view_thread
main.cc:255:6: error: 'calc_arg' was not declared in this scope
  if(!calc_arg.empty()) {
      ^~~~~~~~
main.cc:255:6: note: suggested alternative: 'va_arg'
  if(!calc_arg.empty()) {
      ^~~~~~~~
      va_arg
main.cc:261:38: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   setResult(NULL, false, false, false);
                                      ^
main.cc: In function 'gint qalculate_handle_local_options(GtkApplication*, GVariantDict*)':
main.cc:336:3: error: 'string' was not declared in this scope
   string stmp, svar;
   ^~~~~~
main.cc:336:3: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
main.cc:340:4: error: 'stmp' was not declared in this scope
    stmp = line;
    ^~~~
main.cc:340:4: note: suggested alternative: 's2p'
    stmp = line;
    ^~~~
    s2p
main.cc:342:40: error: 'string' is not a class, namespace, or enumeration
    if((i = stmp.find_first_of("=")) != string::npos) {
                                        ^~~~~~
main.cc:343:5: error: 'svar' was not declared in this scope
     svar = stmp.substr(0, i);
     ^~~~
main.cc:343:5: note: suggested alternative: 'stat'
     svar = stmp.substr(0, i);
     ^~~~
     stat
main.cc:346:13: error: expected ';' before 'svalue'
      string svalue = stmp.substr(i + 1, stmp.length() - (i + 1));
             ^~~~~~
main.cc:347:24: error: 'svalue' was not declared in this scope
      remove_blank_ends(svalue);
                        ^~~~~~
main.cc:347:24: note: suggested alternative: 'GValue'
      remove_blank_ends(svalue);
                        ^~~~~~
                        GValue
main.cc: In function 'gint qalculate_command_line(GtkApplication*, GApplicationCommandLine*)':
main.cc:369:2: error: 'calc_arg' was not declared in this scope
  calc_arg = "";
  ^~~~~~~~
main.cc:369:2: note: suggested alternative: 'va_arg'
  calc_arg = "";
  ^~~~~~~~
  va_arg
interface.cc:1062:2: note: suggested alternative: 'expressionbuffer'
  expression_undo_buffer.push_back("");
  ^~~~~~~~~~~~~~~~~~~~~~
  expressionbuffer
main.cc: In function 'int main(int, char**)':
main.cc:408:2: error: 'string' was not declared in this scope
  string stmp;
  ^~~~~~
interface.cc:1112:34: error: 'custom_result_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_result_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
main.cc:408:2: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from main.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:1112:34: note: suggested alternative: 'use_custom_result_font'
   gchar *gstr = font_name_to_css(custom_result_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
                                  use_custom_result_font
interface.cc:1117:6: error: 'custom_result_font' was not declared in this scope
   if(custom_result_font.empty()) {
      ^~~~~~~~~~~~~~~~~~
callbacks.cc:85:8: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 extern unordered_map<size_t, GtkWidget*> cal_year, cal_month, cal_day, cal_label;
        ^~~~~~~~~~~~~
        isunordered
callbacks.cc:129:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string selected_function_category;
        ^~~~~~
        GString
callbacks.cc:147:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string selected_variable_category;
        ^~~~~~
        GString
interface.cc:1117:6: note: suggested alternative: 'use_custom_result_font'
   if(custom_result_font.empty()) {
      ^~~~~~~~~~~~~~~~~~
      use_custom_result_font
interface.cc:1125:34: error: 'custom_expression_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_expression_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:149:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string selected_unit_category;
        ^~~~~~
        GString
callbacks.cc:150:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string selected_unit_selector_category;
        ^~~~~~
        GString
callbacks.cc:157:1: error: 'string' does not name a type; did you mean 'GString'?
 string custom_result_font, custom_expression_font, custom_status_font;
 ^~~~~~
 GString
callbacks.cc:171:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string result_text, parsed_text;
        ^~~~~~
        GString
callbacks.cc:172:1: error: 'string' does not name a type; did you mean 'GString'?
 string previous_expression;
 ^~~~~~
 GString
callbacks.cc:174:1: error: 'string' does not name a type; did you mean 'GString'?
 string result_text_long;
 ^~~~~~
 GString
callbacks.cc:183:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<vector<GtkWidget*> > insert_element_entries;
 ^~~~~~
 Vector
callbacks.cc:188:1: error: 'string' does not name a type; did you mean 'GString'?
 string parsed_expression;
 ^~~~~~
 GString
callbacks.cc:190:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<DataProperty*> tmp_props;
 ^~~~~~
 Vector
callbacks.cc:191:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<DataProperty*> tmp_props_orig;
 ^~~~~~
 Vector
interface.cc:1125:34: note: suggested alternative: 'use_custom_expression_font'
   gchar *gstr = font_name_to_css(custom_expression_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~~~~~
                                  use_custom_expression_font
interface.cc:1129:6: error: 'custom_expression_font' was not declared in this scope
   if(custom_expression_font.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:196:1: error: 'string' does not name a type; did you mean 'GString'?
 string prev_output_base, prev_input_base;
 ^~~~~~
 GString
callbacks.cc:198:1: error: 'string' does not name a type; did you mean 'GString'?
 string command_convert_units_string;
 ^~~~~~
 GString
callbacks.cc:205:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkTreeViewColumn*> matrix_edit_columns, matrix_columns;
 ^~~~~~
 Vector
callbacks.cc:211:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<string> expression_history;
 ^~~~~~
 Vector
callbacks.cc:220:1: error: 'string' does not name a type; did you mean 'GString'?
 string default_plot_min = "0";
 ^~~~~~
 GString
callbacks.cc:221:1: error: 'string' does not name a type; did you mean 'GString'?
 string default_plot_max = "10";
 ^~~~~~
 GString
callbacks.cc:222:1: error: 'string' does not name a type; did you mean 'GString'?
 string default_plot_step = "1";
 ^~~~~~
 GString
callbacks.cc:230:1: error: 'string' does not name a type; did you mean 'GString'?
 string default_plot_variable = "x";
 ^~~~~~
 GString
callbacks.cc:235:1: error: 'string' does not name a type; did you mean 'GString'?
 string status_error_color, status_warning_color;
 ^~~~~~
 GString
callbacks.cc:237:1: error: 'string' does not name a type; did you mean 'GString'?
 string nbases_error_color, nbases_warning_color;
 ^~~~~~
 GString
interface.cc:1129:6: note: suggested alternative: 'use_custom_expression_font'
   if(custom_expression_font.empty()) {
      ^~~~~~~~~~~~~~~~~~~~~~
      use_custom_expression_font
interface.cc:1137:34: error: 'custom_status_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_status_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
callbacks.cc:258:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<mode_struct> modes;
 ^~~~~~
 Vector
gmake[2]: *** [Makefile:515: main.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
callbacks.cc:259:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> mode_items;
 ^~~~~~
 Vector
callbacks.cc:260:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> popup_result_mode_items;
 ^~~~~~
 Vector
callbacks.cc:261:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> popup_expression_mode_items;
 ^~~~~~
 Vector
callbacks.cc:264:1: error: 'deque' does not name a type
 deque<string> inhistory;
 ^~~~~
callbacks.cc:265:1: error: 'deque' does not name a type
 deque<bool> inhistory_protected;
 ^~~~~
callbacks.cc:266:1: error: 'deque' does not name a type
 deque<int> inhistory_type;
 ^~~~~
callbacks.cc:267:1: error: 'deque' does not name a type
 deque<int> inhistory_value;
 ^~~~~
interface.cc:1137:34: note: suggested alternative: 'use_custom_status_font'
   gchar *gstr = font_name_to_css(custom_status_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
                                  use_custom_status_font
interface.cc:1144:6: error: 'custom_status_font' was not declared in this scope
   if(custom_status_font.empty()) {
      ^~~~~~~~~~~~~~~~~~
callbacks.cc:268:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<MathStructure*> history_parsed;
 ^~~~~~
 Vector
callbacks.cc:269:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<MathStructure*> history_answer;
 ^~~~~~
 Vector
callbacks.cc:271:1: error: 'deque' does not name a type
 deque<string> expression_undo_buffer;
 ^~~~~
interface.cc:1144:6: note: suggested alternative: 'use_custom_status_font'
   if(custom_status_font.empty()) {
      ^~~~~~~~~~~~~~~~~~
      use_custom_status_font
interface.cc:1166:3: error: 'status_error_color' was not declared in this scope
   status_error_color = ecs;
   ^~~~~~~~~~~~~~~~~~
callbacks.cc:280:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, string> date_map;
 ^~~~~~~~~~~~~
 isunordered
callbacks.cc:281:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, string> number_map;
 ^~~~~~~~~~~~~
 isunordered
interface.cc:1166:3: note: suggested alternative: 'status_error_color_set'
   status_error_color = ecs;
   ^~~~~~~~~~~~~~~~~~
   status_error_color_set
interface.cc:1181:3: error: 'status_warning_color' was not declared in this scope
   status_warning_color = wcs;
   ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:282:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, string> number_base_map;
 ^~~~~~~~~~~~~
 isunordered
interface.cc:1181:3: note: suggested alternative: 'status_warning_color_set'
   status_warning_color = wcs;
   ^~~~~~~~~~~~~~~~~~~~
   status_warning_color_set
interface.cc:1242:2: error: 'string' was not declared in this scope
  string themestr;
  ^~~~~~
interface.cc:1242:2: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:1243:17: error: 'themestr' was not declared in this scope
  if(theme_name) themestr = theme_name;
                 ^~~~~~~~
callbacks.cc:283:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, bool> number_approx_map;
 ^~~~~~~~~~~~~
 isunordered
interface.cc:1243:17: note: suggested alternative: 'theme'
  if(theme_name) themestr = theme_name;
                 ^~~~~~~~
                 theme
interface.cc:1245:5: error: 'themestr' was not declared in this scope
  if(themestr.substr(0, 7) == "Adwaita" || themestr.substr(0, 6) == "ooxmox" || themestr == "Breeze" || themestr == "Breeze-Dark" || themestr == "Yaru") {
     ^~~~~~~~
interface.cc:1245:5: note: suggested alternative: 'theme'
  if(themestr.substr(0, 7) == "Adwaita" || themestr.substr(0, 6) == "ooxmox" || themestr == "Breeze" || themestr == "Breeze-Dark" || themestr == "Yaru") {
     ^~~~~~~~
     theme
interface.cc:1404:5: error: 'themestr' was not declared in this scope
  if(themestr.substr(0, 7) != "Adwaita" && themestr.substr(0, 6) != "ooxmox" && themestr != "Yaru") {
     ^~~~~~~~
interface.cc:1404:5: note: suggested alternative: 'theme'
  if(themestr.substr(0, 7) != "Adwaita" && themestr.substr(0, 6) != "ooxmox" && themestr != "Yaru") {
     ^~~~~~~~
     theme
interface.cc:1488:24: error: 'modes' was not declared in this scope
  for(size_t i = 0; i < modes.size(); i++) {
                        ^~~~~
callbacks.cc:284:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, string> number_exp_map;
 ^~~~~~~~~~~~~
 isunordered
interface.cc:1488:24: note: suggested alternative: 'mode_t'
  for(size_t i = 0; i < modes.size(); i++) {
                        ^~~~~
                        mode_t
interface.cc:1495:3: error: 'mode_items' was not declared in this scope
   mode_items.push_back(item);
   ^~~~~~~~~~
interface.cc:1495:3: note: suggested alternative: 'set_mode_items'
   mode_items.push_back(item);
   ^~~~~~~~~~
   set_mode_items
interface.cc:1502:3: error: 'popup_result_mode_items' was not declared in this scope
   popup_result_mode_items.push_back(item);
   ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:285:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<void*, bool> number_exp_minus_map;
 ^~~~~~~~~~~~~
 isunordered
callbacks.cc:287:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<string, GdkPixbuf*> flag_images;
 ^~~~~~~~~~~~~
 isunordered
callbacks.cc:292:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<string, GtkTreeIter> convert_category_map;
 ^~~~~~~~~~~~~
 isunordered
callbacks.cc:302:1: error: 'string' does not name a type; did you mean 'GString'?
 string old_fromValue, old_toValue;
 ^~~~~~
 GString
callbacks.cc:308:1: error: 'string' does not name a type; did you mean 'GString'?
 string last_found_version;
 ^~~~~~
 GString
callbacks.cc:324:1: error: 'string' does not name a type; did you mean 'GString'?
 string result_bin, result_oct, result_dec, result_hex;
 ^~~~~~
 GString
callbacks.cc:327:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<string> history_bookmarks;
 ^~~~~~
 Vector
callbacks.cc:376:1: error: 'AnswerFunction' does not name a type; did you mean 'UserFunction'?
 AnswerFunction::AnswerFunction() : MathFunction(_("answer"), 1, 1, CALCULATOR->f_warning->category(), _("History Answer Value")) {
 ^~~~~~~~~~~~~~
 UserFunction
callbacks.cc:382:5: error: 'AnswerFunction' has not been declared
 int AnswerFunction::calculate(MathStructure &mstruct, const MathStructure &vargs, const EvaluationOptions&) {
     ^~~~~~~~~~~~~~
callbacks.cc: In function 'int calculate(MathStructure&, const MathStructure&, const EvaluationOptions&)':
callbacks.cc:387:31: error: 'history_answer' was not declared in this scope
   if(index < 0) index = (int) history_answer.size() + 1 + index;
                               ^~~~~~~~~~~~~~
interface.cc:1502:3: note: suggested alternative: 'set_mode_items'
   popup_result_mode_items.push_back(item);
   ^~~~~~~~~~~~~~~~~~~~~~~
   set_mode_items
interface.cc:1504:107: error: 'modes' was not declared in this scope
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "menu_item_meta_mode_delete")), modes.size() > 2);
                                                                                                           ^~~~~
interface.cc:1504:107: note: suggested alternative: 'mode_t'
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "menu_item_meta_mode_delete")), modes.size() > 2);
                                                                                                           ^~~~~
                                                                                                           mode_t
callbacks.cc:387:31: note: suggested alternative: 'history_index'
   if(index < 0) index = (int) history_answer.size() + 1 + index;
                               ^~~~~~~~~~~~~~
                               history_index
callbacks.cc:388:34: error: 'history_answer' was not declared in this scope
   if(index <= 0 || index > (int) history_answer.size() || history_answer[(size_t) index - 1] == NULL) {
                                  ^~~~~~~~~~~~~~
interface.cc: In function 'GtkWidget* get_preferences_dialog()':
interface.cc:1868:126: error: 'custom_result_font' was not declared in this scope
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_result_font")), custom_result_font.c_str());
                                                                                                                              ^~~~~~~~~~~~~~~~~~
callbacks.cc:388:34: note: suggested alternative: 'history_index'
   if(index <= 0 || index > (int) history_answer.size() || history_answer[(size_t) index - 1] == NULL) {
                                  ^~~~~~~~~~~~~~
                                  history_index
interface.cc:1868:126: note: suggested alternative: 'use_custom_result_font'
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_result_font")), custom_result_font.c_str());
                                                                                                                              ^~~~~~~~~~~~~~~~~~
                                                                                                                              use_custom_result_font
interface.cc:1870:130: error: 'custom_expression_font' was not declared in this scope
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_expression_font")), custom_expression_font.c_str());
                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc: At global scope:
callbacks.cc:399:1: error: 'ExpressionFunction' does not name a type; did you mean 'DimensionFunction'?
 ExpressionFunction::ExpressionFunction() : MathFunction(_("expression"), 1, 1, CALCULATOR->f_warning->category(), _("History Parsed Expression")) {
 ^~~~~~~~~~~~~~~~~~
 DimensionFunction
callbacks.cc:405:5: error: 'ExpressionFunction' has not been declared
 int ExpressionFunction::calculate(MathStructure &mstruct, const MathStructure &vargs, const EvaluationOptions&) {
     ^~~~~~~~~~~~~~~~~~
callbacks.cc: In function 'int calculate(MathStructure&, const MathStructure&, const EvaluationOptions&)':
callbacks.cc:405:5: error: redefinition of 'int calculate(MathStructure&, const MathStructure&, const EvaluationOptions&)'
callbacks.cc:382:5: note: 'int calculate(MathStructure&, const MathStructure&, const EvaluationOptions&)' previously defined here
 int AnswerFunction::calculate(MathStructure &mstruct, const MathStructure &vargs, const EvaluationOptions&) {
     ^~~~~~~~~~~~~~
callbacks.cc:410:31: error: 'history_parsed' was not declared in this scope
   if(index < 0) index = (int) history_parsed.size() + 1 + index;
                               ^~~~~~~~~~~~~~
callbacks.cc:410:31: note: suggested alternative: 'history_index'
   if(index < 0) index = (int) history_parsed.size() + 1 + index;
                               ^~~~~~~~~~~~~~
                               history_index
callbacks.cc:411:34: error: 'history_parsed' was not declared in this scope
   if(index <= 0 || index > (int) history_parsed.size() || history_parsed[(size_t) index - 1] == NULL) {
                                  ^~~~~~~~~~~~~~
interface.cc:1870:130: note: suggested alternative: 'use_custom_expression_font'
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_expression_font")), custom_expression_font.c_str());
                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~~
                                                                                                                                  use_custom_expression_font
interface.cc:1872:126: error: 'custom_status_font' was not declared in this scope
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_status_font")), custom_status_font.c_str());
                                                                                                                              ^~~~~~~~~~~~~~~~~~
callbacks.cc:411:34: note: suggested alternative: 'history_index'
   if(index <= 0 || index > (int) history_parsed.size() || history_parsed[(size_t) index - 1] == NULL) {
                                  ^~~~~~~~~~~~~~
                                  history_index
callbacks.cc: At global scope:
callbacks.cc:423:64: error: 'string' has not been declared
 void executeCommand(int command_type, bool show_result = true, string ceu_str = "", Unit *u = NULL, int run = 1);
                                                                ^~~~~~
callbacks.cc:423:112: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
 void executeCommand(int command_type, bool show_result = true, string ceu_str = "", Unit *u = NULL, int run = 1);
                                                                                                                ^
callbacks.cc:427:1: error: 'string' does not name a type; did you mean 'GString'?
 string print_with_evalops(const Number &nr) {
 ^~~~~~
 GString
callbacks.cc:467:22: error: variable or field 'add_line_breaks' declared void
 void add_line_breaks(string &str, int expr = false, size_t first_i = 0);
                      ^~~~~~
callbacks.cc:467:22: error: 'string' was not declared in this scope
callbacks.cc:467:22: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:467:30: error: 'str' was not declared in this scope
 void add_line_breaks(string &str, int expr = false, size_t first_i = 0);
                              ^~~
callbacks.cc:467:35: error: expected primary-expression before 'int'
 void add_line_breaks(string &str, int expr = false, size_t first_i = 0);
                                   ^~~
callbacks.cc:467:60: error: expected primary-expression before 'first_i'
 void add_line_breaks(string &str, int expr = false, size_t first_i = 0);
                                                            ^~~~~~~
callbacks.cc:469:29: error: 'string' does not name a type; did you mean 'GString'?
 bool equalsIgnoreCase(const string &str1, const string &str2, size_t i2, size_t i2_end, size_t minlength) {
                             ^~~~~~
                             GString
callbacks.cc:469:49: error: 'string' does not name a type; did you mean 'GString'?
 bool equalsIgnoreCase(const string &str1, const string &str2, size_t i2, size_t i2_end, size_t minlength) {
                                                 ^~~~~~
                                                 GString
callbacks.cc: In function 'bool equalsIgnoreCase(const int&, const int&, size_t, size_t, size_t)':
callbacks.cc:470:10: error: request for member 'empty' in 'str1', which is of non-class type 'const int'
  if(str1.empty() || str2.empty()) return false;
          ^~~~~
callbacks.cc:470:26: error: request for member 'empty' in 'str2', which is of non-class type 'const int'
  if(str1.empty() || str2.empty()) return false;
                          ^~~~~
callbacks.cc:472:15: error: 'string' has not been declared
  if(i2_end == string::npos) i2_end = str2.length();
               ^~~~~~
callbacks.cc:472:43: error: request for member 'length' in 'str2', which is of non-class type 'const int'
  if(i2_end == string::npos) i2_end = str2.length();
                                           ^~~~~~
callbacks.cc:475:22: error: request for member 'length' in 'str1', which is of non-class type 'const int'
    return i1 >= str1.length();
                      ^~~~~~
callbacks.cc:477:17: error: request for member 'length' in 'str1', which is of non-class type 'const int'
   if(i1 >= str1.length()) break;
                 ^~~~~~
callbacks.cc:478:14: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   if((str1[i1] < 0 && i1 + 1 < str1.length()) || (str2[i2] < 0 && i2 + 1 < str2.length())) {
              ^
callbacks.cc:478:37: error: request for member 'length' in 'str1', which is of non-class type 'const int'
   if((str1[i1] < 0 && i1 + 1 < str1.length()) || (str2[i2] < 0 && i2 + 1 < str2.length())) {
                                     ^~~~~~
callbacks.cc:478:58: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   if((str1[i1] < 0 && i1 + 1 < str1.length()) || (str2[i2] < 0 && i2 + 1 < str2.length())) {
                                                          ^
callbacks.cc:478:81: error: request for member 'length' in 'str2', which is of non-class type 'const int'
   if((str1[i1] < 0 && i1 + 1 < str1.length()) || (str2[i2] < 0 && i2 + 1 < str2.length())) {
                                                                                 ^~~~~~
callbacks.cc:480:14: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
    if(str1[i1] < 0) {
              ^
callbacks.cc:481:27: error: request for member 'length' in 'str1', which is of non-class type 'const int'
     while(iu1 + i1 < str1.length() && str1[i1 + iu1] < 0) {
                           ^~~~~~
callbacks.cc:481:52: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
     while(iu1 + i1 < str1.length() && str1[i1 + iu1] < 0) {
                                                    ^
callbacks.cc:485:14: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
    if(str2[i2] < 0) {
              ^
callbacks.cc:486:27: error: request for member 'length' in 'str2', which is of non-class type 'const int'
     while(iu2 + i2 < str2.length() && str2[i2 + iu2] < 0) {
                           ^~~~~~
callbacks.cc:486:52: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
     while(iu2 + i2 < str2.length() && str2[i2 + iu2] < 0) {
                                                    ^
callbacks.cc:493:20: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
      if(str1[i1 + i] != str2[i2 + i]) {
                    ^
callbacks.cc:493:36: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
      if(str1[i1 + i] != str2[i2 + i]) {
                                    ^
callbacks.cc:500:37: error: request for member 'c_str' in 'str1', which is of non-class type 'const int'
     char *gstr1 = utf8_strdown(str1.c_str() + (sizeof(char) * i1), iu1);
                                     ^~~~~
callbacks.cc:501:37: error: request for member 'c_str' in 'str2', which is of non-class type 'const int'
     char *gstr2 = utf8_strdown(str2.c_str() + (sizeof(char) * i2), iu2);
                                     ^~~~~
callbacks.cc:510:20: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                    ^
callbacks.cc:510:32: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                ^
callbacks.cc:510:47: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                               ^
callbacks.cc:510:66: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                  ^
callbacks.cc:510:86: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                      ^
callbacks.cc:510:103: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                                       ^
callbacks.cc:510:119: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                                                       ^
callbacks.cc:510:138: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                                                                          ^
callbacks.cc:510:158: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                                                                                              ^
callbacks.cc:510:175: error: invalid types 'const int[size_t {aka unsigned int}]' for array subscript
   } else if(str1[i1] != str2[i2] && !((str1[i1] >= 'a' && str1[i1] <= 'z') && str1[i1] - 32 == str2[i2]) && !((str1[i1] <= 'Z' && str1[i1] >= 'A') && str1[i1] + 32 == str2[i2])) {
                                                                                                                                                                               ^
interface.cc:1872:126: note: suggested alternative: 'use_custom_status_font'
   gtk_font_chooser_set_font(GTK_FONT_CHOOSER(gtk_builder_get_object(preferences_builder, "preferences_button_status_font")), custom_status_font.c_str());
                                                                                                                              ^~~~~~~~~~~~~~~~~~
                                                                                                                              use_custom_status_font
interface.cc:1874:22: error: 'status_error_color' was not declared in this scope
   gdk_rgba_parse(&c, status_error_color.c_str());
                      ^~~~~~~~~~~~~~~~~~
callbacks.cc: At global scope:
callbacks.cc:518:48: error: 'string' does not name a type; did you mean 'GString'?
 bool title_matches(ExpressionItem *item, const string &str, size_t minlength = 0) {
                                                ^~~~~~
                                                GString
callbacks.cc: In function 'bool title_matches(ExpressionItem*, const int&, size_t)':
callbacks.cc:519:8: error: 'string' does not name a type; did you mean 'GString'?
  const string &title = item->title(true);
        ^~~~~~
        GString
callbacks.cc:523:12: error: 'title' was not declared in this scope
    if(i >= title.length()) return false;
            ^~~~~
callbacks.cc:523:12: note: suggested alternative: 'time'
    if(i >= title.length()) return false;
            ^~~~~
            time
callbacks.cc:524:7: error: 'title' was not declared in this scope
    if(title[i] != ' ') break;
       ^~~~~
callbacks.cc:524:7: note: suggested alternative: 'time'
    if(title[i] != ' ') break;
       ^~~~~
       time
callbacks.cc:527:15: error: 'title' was not declared in this scope
   size_t i2 = title.find(' ', i);
               ^~~~~
callbacks.cc:527:15: note: suggested alternative: 'time'
   size_t i2 = title.find(' ', i);
               ^~~~~
               time
callbacks.cc:531:12: error: 'string' has not been declared
   if(i2 == string::npos) break;
            ^~~~~~
callbacks.cc: At global scope:
callbacks.cc:536:47: error: 'string' does not name a type; did you mean 'GString'?
 bool name_matches(ExpressionItem *item, const string &str) {
                                               ^~~~~~
                                               GString
callbacks.cc: In function 'bool name_matches(ExpressionItem*, const int&)':
callbacks.cc:539:51: error: request for member 'length' in 'str', which is of non-class type 'const int'
    if(str == item->getName(i2).name.substr(0, str.length())) {
                                                   ^~~~~~
callbacks.cc:543:60: error: request for member 'length' in 'str', which is of non-class type 'const int'
    if(equalsIgnoreCase(str, item->getName(i2).name, 0, str.length(), 0)) {
                                                            ^~~~~~
callbacks.cc: At global scope:
callbacks.cc:550:37: error: 'string' does not name a type; did you mean 'GString'?
 bool country_matches(Unit *u, const string &str, size_t minlength = 0) {
                                     ^~~~~~
                                     GString
interface.cc:1874:22: note: suggested alternative: 'status_error_color_set'
   gdk_rgba_parse(&c, status_error_color.c_str());
                      ^~~~~~~~~~~~~~~~~~
                      status_error_color_set
interface.cc:1876:22: error: 'status_warning_color' was not declared in this scope
   gdk_rgba_parse(&c, status_warning_color.c_str());
                      ^~~~~~~~~~~~~~~~~~~~
callbacks.cc: In function 'bool country_matches(Unit*, const int&, size_t)':
callbacks.cc:551:8: error: 'string' does not name a type; did you mean 'GString'?
  const string &countries = u->countries();
        ^~~~~~
        GString
callbacks.cc:555:12: error: 'countries' was not declared in this scope
    if(i >= countries.length()) return false;
            ^~~~~~~~~
callbacks.cc:556:7: error: 'countries' was not declared in this scope
    if(countries[i] != ' ') break;
       ^~~~~~~~~
callbacks.cc:559:15: error: 'countries' was not declared in this scope
   size_t i2 = countries.find(',', i);
               ^~~~~~~~~
callbacks.cc:563:12: error: 'string' has not been declared
   if(i2 == string::npos) break;
            ^~~~~~
callbacks.cc: At global scope:
callbacks.cc:568:29: error: 'string' was not declared in this scope
 bool completion_names_match(string name, const string &str, size_t minlength = 0) {
                             ^~~~~~
callbacks.cc:568:29: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:568:42: error: expected primary-expression before 'const'
 bool completion_names_match(string name, const string &str, size_t minlength = 0) {
                                          ^~~~~
callbacks.cc:568:68: error: expected primary-expression before 'minlength'
 bool completion_names_match(string name, const string &str, size_t minlength = 0) {
                                                                    ^~~~~~~~~
callbacks.cc:568:81: error: expression list treated as compound expression in initializer [-fpermissive]
 bool completion_names_match(string name, const string &str, size_t minlength = 0) {
                                                                                 ^
callbacks.cc:587:23: error: variable or field 'remove_separator' declared void
 void remove_separator(string &copy_text) {
                       ^~~~~~
callbacks.cc:587:23: error: 'string' was not declared in this scope
callbacks.cc:587:23: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:587:31: error: 'copy_text' was not declared in this scope
 void remove_separator(string &copy_text) {
                               ^~~~~~~~~
interface.cc:1876:22: note: suggested alternative: 'status_warning_color_set'
   gdk_rgba_parse(&c, status_warning_color.c_str());
                      ^~~~~~~~~~~~~~~~~~~~
                      status_warning_color_set
callbacks.cc:587:31: note: suggested alternative: 'dcnpgettext'
 void remove_separator(string &copy_text) {
                               ^~~~~~~~~
                               dcnpgettext
callbacks.cc: In function 'void show_help(const char*, GObject*)':
callbacks.cc:606:2: error: 'string' was not declared in this scope
  string surl;
  ^~~~~~
callbacks.cc:606:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:634:2: error: 'surl' was not declared in this scope
  surl = "file://" PACKAGE_DOC_DIR "/html/";
  ^~~~
callbacks.cc:634:2: note: suggested alternative: 'sbrk'
  surl = "file://" PACKAGE_DOC_DIR "/html/";
  ^~~~
  sbrk
callbacks.cc: At global scope:
callbacks.cc:652:26: error: variable or field 'fix_history_string2' declared void
 void fix_history_string2(string &str) {
                          ^~~~~~
callbacks.cc:652:26: error: 'string' was not declared in this scope
callbacks.cc:652:26: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:652:34: error: 'str' was not declared in this scope
 void fix_history_string2(string &str) {
                                  ^~~
callbacks.cc:657:1: error: 'string' does not name a type; did you mean 'GString'?
 string fix_history_string(const string &str2) {
 ^~~~~~
 GString
callbacks.cc:664:27: error: variable or field 'unfix_history_string' declared void
 void unfix_history_string(string &str) {
                           ^~~~~~
callbacks.cc:664:27: error: 'string' was not declared in this scope
callbacks.cc:664:27: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:664:35: error: 'str' was not declared in this scope
 void unfix_history_string(string &str) {
                                   ^~~
callbacks.cc:669:25: error: variable or field 'replace_result_cis' declared void
 void replace_result_cis(string &resstr) {
                         ^~~~~~
callbacks.cc:669:25: error: 'string' was not declared in this scope
callbacks.cc:669:25: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:669:33: error: 'resstr' was not declared in this scope
 void replace_result_cis(string &resstr) {
                                 ^~~~~~
interface.cc: At global scope:
interface.cc:2397:8: error: 'string' does not name a type; did you mean 'GString'?
 extern string prev_output_base, prev_input_base;
        ^~~~~~
        GString
callbacks.cc:669:33: note: suggested alternative: 'eqstr'
 void replace_result_cis(string &resstr) {
                                 ^~~~~~
                                 eqstr
callbacks.cc:672:26: error: variable or field 'improve_result_text' declared void
 void improve_result_text(string &resstr) {
                          ^~~~~~
callbacks.cc:672:26: error: 'string' was not declared in this scope
callbacks.cc:672:26: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:672:34: error: 'resstr' was not declared in this scope
 void improve_result_text(string &resstr) {
                                  ^~~~~~
interface.cc: In function 'GtkWidget* get_set_base_dialog()':
interface.cc:2563:2: error: 'prev_output_base' was not declared in this scope
  prev_output_base = ""; prev_input_base = "";
  ^~~~~~~~~~~~~~~~
callbacks.cc:672:34: note: suggested alternative: 'eqstr'
 void improve_result_text(string &resstr) {
                                  ^~~~~~
                                  eqstr
callbacks.cc:753:1: error: 'string' does not name a type; did you mean 'GString'?
 string get_expression_text() {
 ^~~~~~
 GString
callbacks.cc:762:1: error: 'string' does not name a type; did you mean 'GString'?
 string get_selected_expression_text(bool return_all_if_no_sel = false) {
 ^~~~~~
 GString
callbacks.cc: In function 'void add_expression_to_undo()':
callbacks.cc:779:5: error: 'expression_undo_buffer' was not declared in this scope
  if(expression_undo_buffer.size() > 100) expression_undo_buffer.pop_front();
     ^~~~~~~~~~~~~~~~~~~~~~
interface.cc:2563:2: note: suggested alternative: 'result_bases'
  prev_output_base = ""; prev_input_base = "";
  ^~~~~~~~~~~~~~~~
  result_bases
interface.cc:2563:25: error: 'prev_input_base' was not declared in this scope
  prev_output_base = ""; prev_input_base = "";
                         ^~~~~~~~~~~~~~~
callbacks.cc:779:5: note: suggested alternative: 'expressionbuffer'
  if(expression_undo_buffer.size() > 100) expression_undo_buffer.pop_front();
     ^~~~~~~~~~~~~~~~~~~~~~
     expressionbuffer
callbacks.cc:781:21: error: 'expression_undo_buffer' was not declared in this scope
  while(undo_index < expression_undo_buffer.size()) {
                     ^~~~~~~~~~~~~~~~~~~~~~
interface.cc: In function 'GtkWidget* get_nbases_dialog()':
interface.cc:2594:3: error: 'string' was not declared in this scope
   string themestr;
   ^~~~~~
interface.cc:2594:3: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:2596:4: error: 'themestr' was not declared in this scope
    themestr = theme_name;
    ^~~~~~~~
interface.cc:2596:4: note: suggested alternative: 'tNames'
    themestr = theme_name;
    ^~~~~~~~
    tNames
interface.cc:2600:6: error: 'themestr' was not declared in this scope
   if(themestr.substr(0, 7) == "Adwaita" || themestr.substr(0, 6) == "ooxmox" || themestr == "Breeze" || themestr == "Breeze-Dark" || themestr == "Yaru") {
      ^~~~~~~~
interface.cc:2600:6: note: suggested alternative: 'tNames'
   if(themestr.substr(0, 7) == "Adwaita" || themestr.substr(0, 6) == "ooxmox" || themestr == "Breeze" || themestr == "Breeze-Dark" || themestr == "Yaru") {
      ^~~~~~~~
      tNames
interface.cc:2652:3: error: 'nbases_error_color' was not declared in this scope
   nbases_error_color = ecs;
   ^~~~~~~~~~~~~~~~~~
callbacks.cc:781:21: note: suggested alternative: 'expressionbuffer'
  while(undo_index < expression_undo_buffer.size()) {
                     ^~~~~~~~~~~~~~~~~~~~~~
                     expressionbuffer
callbacks.cc:784:2: error: 'expression_undo_buffer' was not declared in this scope
  expression_undo_buffer.push_back(get_expression_text());
  ^~~~~~~~~~~~~~~~~~~~~~
interface.cc:2652:3: note: suggested alternative: 'history_error_color'
   nbases_error_color = ecs;
   ^~~~~~~~~~~~~~~~~~
   history_error_color
interface.cc:2665:3: error: 'nbases_warning_color' was not declared in this scope
   nbases_warning_color = wcs;
   ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:784:2: note: suggested alternative: 'expressionbuffer'
  expression_undo_buffer.push_back(get_expression_text());
  ^~~~~~~~~~~~~~~~~~~~~~
  expressionbuffer
callbacks.cc:784:35: error: 'get_expression_text' was not declared in this scope
  expression_undo_buffer.push_back(get_expression_text());
                                   ^~~~~~~~~~~~~~~~~~~
interface.cc:2665:3: note: suggested alternative: 'history_warning_color'
   nbases_warning_color = wcs;
   ^~~~~~~~~~~~~~~~~~~~
   history_warning_color
interface.cc: At global scope:
interface.cc:2705:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<size_t, GtkWidget*> cal_year, cal_month, cal_day, cal_label;
 ^~~~~~~~~~~~~
 isunordered
interface.cc: In function 'GtkWidget* get_calendarconversion_dialog()':
interface.cc:2751:3: error: 'cal_year' was not declared in this scope
   cal_year[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "year_1"));
   ^~~~~~~~
callbacks.cc:784:35: note: suggested alternative: 'expressiontext'
  expression_undo_buffer.push_back(get_expression_text());
                                   ^~~~~~~~~~~~~~~~~~~
                                   expressiontext
interface.cc:2751:3: note: suggested alternative: 'calculator'
   cal_year[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "year_1"));
   ^~~~~~~~
   calculator
interface.cc:2752:3: error: 'cal_month' was not declared in this scope
   cal_month[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "month_1"));
   ^~~~~~~~~
callbacks.cc: At global scope:
callbacks.cc:820:1: error: 'string' does not name a type; did you mean 'GString'?
 string sdot, saltdot, sdiv, sslash, stimes, sminus;
 ^~~~~~
 GString
interface.cc:2753:3: error: 'cal_day' was not declared in this scope
   cal_day[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "day_1"));
   ^~~~~~~
callbacks.cc:821:1: error: 'string' does not name a type; did you mean 'GString'?
 string sdot_s, saltdot_s, sdiv_s, sslash_s, stimes_s, sminus_s;
 ^~~~~~
 GString
callbacks.cc: In function 'void set_operator_symbols()':
callbacks.cc:824:84: error: 'sminus' was not declared in this scope
  if(can_display_unicode_string_function_exact(SIGN_MINUS, (void*) expressiontext)) sminus = SIGN_MINUS;
                                                                                    ^~~~~~
callbacks.cc:824:84: note: suggested alternative: 'sinl'
  if(can_display_unicode_string_function_exact(SIGN_MINUS, (void*) expressiontext)) sminus = SIGN_MINUS;
                                                                                    ^~~~~~
                                                                                    sinl
callbacks.cc:825:7: error: 'sminus' was not declared in this scope
  else sminus = "-";
       ^~~~~~
interface.cc:2754:3: error: 'cal_label' was not declared in this scope
   cal_label[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "label_1"));
   ^~~~~~~~~
callbacks.cc:825:7: note: suggested alternative: 'sinl'
  else sminus = "-";
       ^~~~~~
       sinl
callbacks.cc:826:81: error: 'sdiv' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_DIVISION, (void*) expressiontext)) sdiv = SIGN_DIVISION;
                                                                                 ^~~~
interface.cc:2754:3: note: suggested alternative: 'calculator'
   cal_label[CALENDAR_GREGORIAN] = GTK_WIDGET(gtk_builder_get_object(calendarconversion_builder, "label_1"));
   ^~~~~~~~~
   calculator
callbacks.cc:826:81: note: suggested alternative: 'qdiv'
  if(can_display_unicode_string_function(SIGN_DIVISION, (void*) expressiontext)) sdiv = SIGN_DIVISION;
                                                                                 ^~~~
                                                                                 qdiv
callbacks.cc:827:7: error: 'sdiv' was not declared in this scope
  else sdiv = "/";
       ^~~~
callbacks.cc:827:7: note: suggested alternative: 'qdiv'
  else sdiv = "/";
       ^~~~
       qdiv
callbacks.cc:828:2: error: 'sslash' was not declared in this scope
  sslash = "/";
  ^~~~~~
interface.cc: In function 'GtkWidget* get_periodic_dialog()':
interface.cc:2954:3: error: 'string' was not declared in this scope
   string tip;
   ^~~~~~
interface.cc:2954:3: note: suggested alternatives:
In file included from /usr/include/g++/string:39:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:18,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from interface.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
interface.cc:2965:10: error: expected ';' before 'weight'
   string weight;
          ^~~~~~
callbacks.cc:828:2: note: suggested alternative: 'fflush'
  sslash = "/";
  ^~~~~~
  fflush
callbacks.cc:829:81: error: 'sdot' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MULTIDOT, (void*) expressiontext)) sdot = SIGN_MULTIDOT;
                                                                                 ^~~~
interface.cc:2985:5: error: 'tip' was not declared in this scope
     tip = e->getProperty(p_number);
     ^~~
interface.cc:2988:5: error: 'weight' was not declared in this scope
     weight = e->getPropertyDisplayString(p_weight);
     ^~~~~~
callbacks.cc:829:81: note: suggested alternative: 'stat'
  if(can_display_unicode_string_function(SIGN_MULTIDOT, (void*) expressiontext)) sdot = SIGN_MULTIDOT;
                                                                                 ^~~~
                                                                                 stat
callbacks.cc:830:7: error: 'sdot' was not declared in this scope
  else sdot = "*";
       ^~~~
callbacks.cc:830:7: note: suggested alternative: 'stat'
  else sdot = "*";
       ^~~~
       stat
callbacks.cc:831:82: error: 'saltdot' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MIDDLEDOT, (void*) expressiontext)) saltdot = SIGN_MIDDLEDOT;
                                                                                  ^~~~~~~
interface.cc:2988:5: note: suggested alternative: 'p_weight'
     weight = e->getPropertyDisplayString(p_weight);
     ^~~~~~
     p_weight
callbacks.cc:831:82: note: suggested alternative: 'stdout'
  if(can_display_unicode_string_function(SIGN_MIDDLEDOT, (void*) expressiontext)) saltdot = SIGN_MIDDLEDOT;
                                                                                  ^~~~~~~
                                                                                  stdout
callbacks.cc:832:7: error: 'saltdot' was not declared in this scope
  else saltdot = "*";
       ^~~~~~~
callbacks.cc:832:7: note: suggested alternative: 'stdout'
  else saltdot = "*";
       ^~~~~~~
       stdout
callbacks.cc:833:87: error: 'stimes' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MULTIPLICATION, (void*) expressiontext)) stimes = SIGN_MULTIPLICATION;
                                                                                       ^~~~~~
callbacks.cc:833:87: note: suggested alternative: 'utimes'
  if(can_display_unicode_string_function(SIGN_MULTIPLICATION, (void*) expressiontext)) stimes = SIGN_MULTIPLICATION;
                                                                                       ^~~~~~
                                                                                       utimes
callbacks.cc:834:7: error: 'stimes' was not declared in this scope
  else stimes = "*";
       ^~~~~~
callbacks.cc:834:7: note: suggested alternative: 'utimes'
  else stimes = "*";
       ^~~~~~
       utimes
callbacks.cc:836:83: error: 'sminus_s' was not declared in this scope
  if(can_display_unicode_string_function_exact(SIGN_MINUS, (void*) statuslabel_l)) sminus_s = SIGN_MINUS;
                                                                                   ^~~~~~~~
callbacks.cc:836:83: note: suggested alternative: 'nr_minus_i'
  if(can_display_unicode_string_function_exact(SIGN_MINUS, (void*) statuslabel_l)) sminus_s = SIGN_MINUS;
                                                                                   ^~~~~~~~
                                                                                   nr_minus_i
callbacks.cc:837:7: error: 'sminus_s' was not declared in this scope
  else sminus_s = "-";
       ^~~~~~~~
callbacks.cc:837:7: note: suggested alternative: 'nr_minus_i'
  else sminus_s = "-";
       ^~~~~~~~
       nr_minus_i
callbacks.cc:838:80: error: 'sdiv_s' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_DIVISION, (void*) statuslabel_l)) sdiv_s = SIGN_DIVISION;
                                                                                ^~~~~~
callbacks.cc:838:80: note: suggested alternative: 'qdiv_t'
  if(can_display_unicode_string_function(SIGN_DIVISION, (void*) statuslabel_l)) sdiv_s = SIGN_DIVISION;
                                                                                ^~~~~~
                                                                                qdiv_t
callbacks.cc:839:7: error: 'sdiv_s' was not declared in this scope
  else sdiv_s = "/";
       ^~~~~~
callbacks.cc:839:7: note: suggested alternative: 'qdiv_t'
  else sdiv_s = "/";
       ^~~~~~
       qdiv_t
callbacks.cc:840:86: error: 'sslash_s' was not declared in this scope
  if(can_display_unicode_string_function_exact(SIGN_DIVISION, (void*) statuslabel_l)) sslash_s = SIGN_DIVISION_SLASH;
                                                                                      ^~~~~~~~
callbacks.cc:840:86: note: suggested alternative: 'sscanf_l'
  if(can_display_unicode_string_function_exact(SIGN_DIVISION, (void*) statuslabel_l)) sslash_s = SIGN_DIVISION_SLASH;
                                                                                      ^~~~~~~~
                                                                                      sscanf_l
callbacks.cc:841:7: error: 'sslash_s' was not declared in this scope
  else sslash_s = "/";
       ^~~~~~~~
callbacks.cc:841:7: note: suggested alternative: 'sscanf_l'
  else sslash_s = "/";
       ^~~~~~~~
       sscanf_l
callbacks.cc:842:80: error: 'sdot_s' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MULTIDOT, (void*) statuslabel_l)) sdot_s = SIGN_MULTIDOT;
                                                                                ^~~~~~
callbacks.cc:843:7: error: 'sdot_s' was not declared in this scope
  else sdot_s = "*";
       ^~~~~~
callbacks.cc:844:81: error: 'saltdot_s' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MIDDLEDOT, (void*) statuslabel_l)) saltdot_s = SIGN_MIDDLEDOT;
                                                                                 ^~~~~~~~~
callbacks.cc:845:7: error: 'saltdot_s' was not declared in this scope
  else saltdot_s = "*";
       ^~~~~~~~~
callbacks.cc:846:86: error: 'stimes_s' was not declared in this scope
  if(can_display_unicode_string_function(SIGN_MULTIPLICATION, (void*) statuslabel_l)) stimes_s = SIGN_MULTIPLICATION;
                                                                                      ^~~~~~~~
callbacks.cc:846:86: note: suggested alternative: 'utimens'
  if(can_display_unicode_string_function(SIGN_MULTIPLICATION, (void*) statuslabel_l)) stimes_s = SIGN_MULTIPLICATION;
                                                                                      ^~~~~~~~
                                                                                      utimens
callbacks.cc:847:7: error: 'stimes_s' was not declared in this scope
  else stimes_s = "*";
       ^~~~~~~~
callbacks.cc:847:7: note: suggested alternative: 'utimens'
  else stimes_s = "*";
       ^~~~~~~~
       utimens
callbacks.cc: In function 'const char* expression_sub_sign()':
callbacks.cc:855:9: error: 'sminus' was not declared in this scope
  return sminus.c_str();
         ^~~~~~
callbacks.cc:855:9: note: suggested alternative: 'sinl'
  return sminus.c_str();
         ^~~~~~
         sinl
callbacks.cc: In function 'const char* expression_times_sign()':
callbacks.cc:858:99: error: 'sdot' was not declared in this scope
  if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_DOT) return sdot.c_str();
                                                                                                   ^~~~
callbacks.cc:858:99: note: suggested alternative: 'stat'
  if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_DOT) return sdot.c_str();
                                                                                                   ^~~~
                                                                                                   stat
callbacks.cc:859:107: error: 'saltdot' was not declared in this scope
  else if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_ALTDOT) return saltdot.c_str();
                                                                                                           ^~~~~~~
callbacks.cc:859:107: note: suggested alternative: 'stdout'
  else if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_ALTDOT) return saltdot.c_str();
                                                                                                           ^~~~~~~
                                                                                                           stdout
callbacks.cc:860:102: error: 'stimes' was not declared in this scope
  else if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_X) return stimes.c_str();
                                                                                                      ^~~~~~
callbacks.cc:860:102: note: suggested alternative: 'utimes'
  else if(printops.use_unicode_signs && printops.multiplication_sign == MULTIPLICATION_SIGN_X) return stimes.c_str();
                                                                                                      ^~~~~~
                                                                                                      utimes
callbacks.cc: In function 'const char* expression_divide_sign()':
callbacks.cc:865:62: error: 'sdiv' was not declared in this scope
  if(printops.division_sign == DIVISION_SIGN_DIVISION) return sdiv.c_str();
                                                              ^~~~
callbacks.cc:865:62: note: suggested alternative: 'qdiv'
  if(printops.division_sign == DIVISION_SIGN_DIVISION) return sdiv.c_str();
                                                              ^~~~
                                                              qdiv
callbacks.cc:866:9: error: 'sslash' was not declared in this scope
  return sslash.c_str();
         ^~~~~~
callbacks.cc:866:9: note: suggested alternative: 'fflush'
  return sslash.c_str();
         ^~~~~~
         fflush
callbacks.cc: In function 'void set_unicode_buttons()':
callbacks.cc:1060:93: error: 'string' was not declared in this scope
  gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(main_builder, "label_history_xy")), (string("x") + SUP_STRING("y")).c_str());
                                                                                             ^~~~~~
callbacks.cc:1060:93: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: At global scope:
callbacks.cc:1116:21: error: redefinition of 'bool string_is_less'
 bool string_is_less(string str1, string str2) {
                     ^~~~~~
In file included from callbacks.cc:28:0:
callbacks.h:81:6: note: 'bool string_is_less' previously defined here
 bool string_is_less(string str1, string str2);
      ^~~~~~~~~~~~~~
callbacks.cc:1116:21: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2) {
                     ^~~~~~
callbacks.cc:1116:21: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1116:34: error: 'string' was not declared in this scope
 bool string_is_less(string str1, string str2) {
                                  ^~~~~~
callbacks.cc:1116:34: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1129:2: error: 'string' does not name a type; did you mean 'GString'?
  string item;
  ^~~~~~
  GString
callbacks.cc:1130:2: error: 'list' does not name a type; did you mean 'lastx'?
  list<tree_struct> items;
  ^~~~
  lastx
callbacks.cc:1131:2: error: 'list' does not name a type; did you mean 'lastx'?
  list<tree_struct>::iterator it;
  ^~~~
  lastx
callbacks.cc:1132:2: error: 'list' does not name a type; did you mean 'lastx'?
  list<tree_struct>::reverse_iterator rit;
  ^~~~
  lastx
callbacks.cc:1133:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<void*> objects;
  ^~~~~~
  Vector
callbacks.cc: In member function 'void tree_struct::sort()':
callbacks.cc:1136:3: error: 'items' was not declared in this scope
   items.sort();
   ^~~~~
callbacks.cc:1137:7: error: 'list' was not declared in this scope
   for(list<tree_struct>::iterator it = items.begin(); it != items.end(); ++it) {
       ^~~~
callbacks.cc:1137:7: note: suggested alternatives:
In file included from /usr/include/g++/list:63:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:20,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
     class list : protected _List_base<_Tp, _Alloc>
           ^~~~
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
callbacks.cc:1137:23: error: expected primary-expression before '>' token
   for(list<tree_struct>::iterator it = items.begin(); it != items.end(); ++it) {
                       ^
callbacks.cc:1137:26: error: '::iterator' has not been declared
   for(list<tree_struct>::iterator it = items.begin(); it != items.end(); ++it) {
                          ^~~~~~~~
callbacks.cc:1137:26: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:1137:55: error: 'it' was not declared in this scope
   for(list<tree_struct>::iterator it = items.begin(); it != items.end(); ++it) {
                                                       ^~
callbacks.cc:1137:55: note: suggested alternative: 'int'
   for(list<tree_struct>::iterator it = items.begin(); it != items.end(); ++it) {
                                                       ^~
                                                       int
callbacks.cc: In member function 'bool tree_struct::operator<(const tree_struct&) const':
callbacks.cc:1142:25: error: 'item' was not declared in this scope
   return string_is_less(item, s1.item);
                         ^~~~
callbacks.cc:1142:25: note: suggested alternative: 'tm'
   return string_is_less(item, s1.item);
                         ^~~~
                         tm
callbacks.cc:1142:34: error: 'const struct tree_struct' has no member named 'item'
   return string_is_less(item, s1.item);
                                  ^~~~
callbacks.cc:1142:38: error: 'string_is_less' cannot be used as a function
   return string_is_less(item, s1.item);
                                      ^
callbacks.cc: At global scope:
callbacks.cc:1147:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<void*> ia_units, ia_variables, ia_functions;
 ^~~~~~
 Vector
callbacks.cc:1148:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<string> recent_functions_pre;
 ^~~~~~
 Vector
gmake[2]: *** [Makefile:515: interface.o] Error 1
callbacks.cc:1149:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<string> recent_variables_pre;
 ^~~~~~
 Vector
callbacks.cc:1150:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<string> recent_units_pre;
 ^~~~~~
 Vector
callbacks.cc:1151:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> recent_function_items;
 ^~~~~~
 Vector
callbacks.cc:1152:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> recent_variable_items;
 ^~~~~~
 Vector
callbacks.cc:1153:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> recent_unit_items;
 ^~~~~~
 Vector
callbacks.cc:1154:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<MathFunction*> recent_functions;
 ^~~~~~
 Vector
callbacks.cc:1155:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<Variable*> recent_variables;
 ^~~~~~
 Vector
callbacks.cc:1156:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<Unit*> recent_units;
 ^~~~~~
 Vector
callbacks.cc:1158:1: error: 'string' does not name a type; did you mean 'GString'?
 string latest_button_unit_pre, latest_button_currency_pre;
 ^~~~~~
 GString
callbacks.cc:1208:22: error: variable or field 'set_status_text' declared void
 void set_status_text(string text, bool break_begin = false, bool had_errors = false, bool had_warnings = false) {
                      ^~~~~~
callbacks.cc:1208:22: error: 'string' was not declared in this scope
callbacks.cc:1208:22: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1208:35: error: expected primary-expression before 'bool'
 void set_status_text(string text, bool break_begin = false, bool had_errors = false, bool had_warnings = false) {
                                   ^~~~
callbacks.cc:1208:61: error: expected primary-expression before 'bool'
 void set_status_text(string text, bool break_begin = false, bool had_errors = false, bool had_warnings = false) {
                                                             ^~~~
callbacks.cc:1208:86: error: expected primary-expression before 'bool'
 void set_status_text(string text, bool break_begin = false, bool had_errors = false, bool had_warnings = false) {
                                                                                      ^~~~
callbacks.cc: In function 'void update_status_text()':
callbacks.cc:1235:2: error: 'string' was not declared in this scope
  string str = "<span size=\"small\">";
  ^~~~~~
callbacks.cc:1235:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1240:3: error: 'str' was not declared in this scope
   str += _("EXACT");
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1243:3: error: 'str' was not declared in this scope
   str += _("APPROX");
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1247:3: error: 'str' was not declared in this scope
   str += _("RPN");
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1255:4: error: 'str' was not declared in this scope
    str += _("BIN");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1260:4: error: 'str' was not declared in this scope
    str += _("OCT");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1265:4: error: 'str' was not declared in this scope
    str += _("DUO");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1270:4: error: 'str' was not declared in this scope
    str += _("HEX");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1275:4: error: 'str' was not declared in this scope
    str += _("ROMAN");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1280:4: error: 'str' was not declared in this scope
    str += "B26";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1285:4: error: 'str' was not declared in this scope
    str += CALCULATOR->customInputBase().print(CALCULATOR->messagePrintOptions());
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1290:4: error: 'str' was not declared in this scope
    str += "φ";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1295:4: error: 'str' was not declared in this scope
    str += "ψ";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1300:4: error: 'str' was not declared in this scope
    str += "Ï€";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1305:4: error: 'str' was not declared in this scope
    str += "e";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1310:4: error: 'str' was not declared in this scope
    str += "√2";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1315:4: error: 'str' was not declared in this scope
    str += "UNICODE";
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1320:4: error: 'str' was not declared in this scope
    str += i2s(evalops.parse_options.base);
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1327:4: error: 'str' was not declared in this scope
    str += _("DEG");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1332:4: error: 'str' was not declared in this scope
    str += _("RAD");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1337:4: error: 'str' was not declared in this scope
    str += _("GRA");
    ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1344:3: error: 'str' was not declared in this scope
   str += _("PREC");
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1348:3: error: 'str' was not declared in this scope
   str += "<s>";
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1354:3: error: 'str' was not declared in this scope
   str += "<s>";
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1360:3: error: 'str' was not declared in this scope
   str += "<s>";
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1366:3: error: 'str' was not declared in this scope
   str += "<s>";
   ^~~
callbacks.cc:1206:28: error: 'str' was not declared in this scope
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^
callbacks.cc:1206:28: note: in definition of macro 'STATUS_SPACE'
 #define STATUS_SPACE if(b) str += "  "; else b = true;
                            ^~~
callbacks.cc:1372:3: error: 'str' was not declared in this scope
   str += "<s>";
   ^~~
callbacks.cc:1377:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'bool check_exchange_rates(GtkWidget*, bool)':
callbacks.cc:1424:73: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   if(!b && set_result) setResult(NULL, false, false, false, "", 0, false);
                                                                         ^
In file included from callbacks.cc:28:0:
callbacks.h:133:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
      ^~~~~~~~~
callbacks.cc: In function 'void display_errors(int*, GtkWidget*, int*, int)':
callbacks.cc:1439:2: error: 'string' was not declared in this scope
  string str = "";
  ^~~~~~
callbacks.cc:1439:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1450:20: error: 'str' was not declared in this scope
     if(index == 1) str = "• " + str;
                    ^~~
callbacks.cc:1451:5: error: 'str' was not declared in this scope
     str += "\n• ";
     ^~~
callbacks.cc:1453:4: error: 'str' was not declared in this scope
    str += CALCULATOR->message()->message();
    ^~~
callbacks.cc:1459:6: error: 'inhistory' was not declared in this scope
      inhistory.insert(inhistory.begin() + *inhistory_index, CALCULATOR->message()->message());
      ^~~~~~~~~
callbacks.cc:1459:6: note: suggested alternative: 'show_history'
      inhistory.insert(inhistory.begin() + *inhistory_index, CALCULATOR->message()->message());
      ^~~~~~~~~
      show_history
callbacks.cc:1460:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.insert(inhistory_type.begin() + *inhistory_index, QALCULATE_HISTORY_ERROR);
      ^~~~~~~~~~~~~~
callbacks.cc:1460:6: note: suggested alternative: 'inhistory_added'
      inhistory_type.insert(inhistory_type.begin() + *inhistory_index, QALCULATE_HISTORY_ERROR);
      ^~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1461:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.insert(inhistory_protected.begin() + *inhistory_index, false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:1461:6: note: suggested alternative: 'inhistory_added'
      inhistory_protected.insert(inhistory_protected.begin() + *inhistory_index, false);
      ^~~~~~~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1462:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.insert(inhistory_value.begin() + *inhistory_index, nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
callbacks.cc:1462:6: note: suggested alternative: 'inhistory_added'
      inhistory_value.insert(inhistory_value.begin() + *inhistory_index, nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1463:13: error: expected ';' before 'history_message'
      string history_message = "- ";
             ^~~~~~~~~~~~~~~
callbacks.cc:1464:6: error: 'history_message' was not declared in this scope
      history_message += CALCULATOR->message()->message();
      ^~~~~~~~~~~~~~~
callbacks.cc:1464:6: note: suggested alternative: 'show_message'
      history_message += CALCULATOR->message()->message();
      ^~~~~~~~~~~~~~~
      show_message
callbacks.cc:1465:6: error: 'add_line_breaks' was not declared in this scope
      add_line_breaks(history_message, false, 2);
      ^~~~~~~~~~~~~~~
callbacks.cc:1466:13: error: expected ';' before 'history_str'
      string history_str = "<span foreground=\"";
             ^~~~~~~~~~~
callbacks.cc:1467:6: error: 'history_str' was not declared in this scope
      history_str += history_error_color;
      ^~~~~~~~~~~
callbacks.cc:1467:6: note: suggested alternative: 'history_iter'
      history_str += history_error_color;
      ^~~~~~~~~~~
      history_iter
callbacks.cc:1469:21: error: 'fix_history_string' was not declared in this scope
      history_str += fix_history_string(history_message);
                     ^~~~~~~~~~~~~~~~~~
callbacks.cc:1469:21: note: suggested alternative: 'g_intern_string'
      history_str += fix_history_string(history_message);
                     ^~~~~~~~~~~~~~~~~~
                     g_intern_string
callbacks.cc:1474:6: error: 'inhistory' was not declared in this scope
      inhistory.insert(inhistory.begin() + *inhistory_index, CALCULATOR->message()->message());
      ^~~~~~~~~
callbacks.cc:1474:6: note: suggested alternative: 'show_history'
      inhistory.insert(inhistory.begin() + *inhistory_index, CALCULATOR->message()->message());
      ^~~~~~~~~
      show_history
callbacks.cc:1475:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.insert(inhistory_type.begin() + *inhistory_index, QALCULATE_HISTORY_WARNING);
      ^~~~~~~~~~~~~~
callbacks.cc:1475:6: note: suggested alternative: 'inhistory_added'
      inhistory_type.insert(inhistory_type.begin() + *inhistory_index, QALCULATE_HISTORY_WARNING);
      ^~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1476:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.insert(inhistory_protected.begin() + *inhistory_index, false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:1476:6: note: suggested alternative: 'inhistory_added'
      inhistory_protected.insert(inhistory_protected.begin() + *inhistory_index, false);
      ^~~~~~~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1477:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.insert(inhistory_value.begin() + *inhistory_index, nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
callbacks.cc:1477:6: note: suggested alternative: 'inhistory_added'
      inhistory_value.insert(inhistory_value.begin() + *inhistory_index, nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
      inhistory_added
callbacks.cc:1478:13: error: expected ';' before 'history_message'
      string history_message = "- ";
             ^~~~~~~~~~~~~~~
callbacks.cc:1479:6: error: 'history_message' was not declared in this scope
      history_message += CALCULATOR->message()->message();
      ^~~~~~~~~~~~~~~
callbacks.cc:1479:6: note: suggested alternative: 'show_message'
      history_message += CALCULATOR->message()->message();
      ^~~~~~~~~~~~~~~
      show_message
callbacks.cc:1480:6: error: 'add_line_breaks' was not declared in this scope
      add_line_breaks(history_message, false, 2);
      ^~~~~~~~~~~~~~~
callbacks.cc:1481:13: error: expected ';' before 'history_str'
      string history_str = "<span foreground=\"";
             ^~~~~~~~~~~
callbacks.cc:1482:6: error: 'history_str' was not declared in this scope
      history_str += history_warning_color;
      ^~~~~~~~~~~
callbacks.cc:1482:6: note: suggested alternative: 'history_iter'
      history_str += history_warning_color;
      ^~~~~~~~~~~
      history_iter
callbacks.cc:1484:21: error: 'fix_history_string' was not declared in this scope
      history_str += fix_history_string(history_message);
                     ^~~~~~~~~~~~~~~~~~
callbacks.cc:1484:21: note: suggested alternative: 'g_intern_string'
      history_str += fix_history_string(history_message);
                     ^~~~~~~~~~~~~~~~~~
                     g_intern_string
callbacks.cc:1510:6: error: 'str' was not declared in this scope
  if(!str.empty()) {
      ^~~
callbacks.cc: In function 'gboolean on_check_version_idle(gpointer)':
callbacks.cc:1597:2: error: 'string' was not declared in this scope
  string new_version;
  ^~~~~~
callbacks.cc:1597:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1601:61: error: 'new_version' was not declared in this scope
  int ret = checkAvailableVersion("qalculate-gtk", VERSION, &new_version, 5);
                                                             ^~~~~~~~~~~
callbacks.cc:1601:61: note: suggested alternative: 'hb_version'
  int ret = checkAvailableVersion("qalculate-gtk", VERSION, &new_version, 5);
                                                             ^~~~~~~~~~~
                                                             hb_version
callbacks.cc:1603:31: error: 'last_found_version' was not declared in this scope
  if(ret > 0 && new_version != last_found_version) {
                               ^~~~~~~~~~~~~~~~~~
callbacks.cc:1603:31: note: suggested alternative: '_fdlib_version'
  if(ret > 0 && new_version != last_found_version) {
                               ^~~~~~~~~~~~~~~~~~
                               _fdlib_version
callbacks.cc: In function 'bool display_function_hint(MathFunction*, int)':
callbacks.cc:1629:2: error: 'string' was not declared in this scope
  string str, str2, str3;
  ^~~~~~
callbacks.cc:1629:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1637:3: error: 'set_status_text' was not declared in this scope
   set_status_text(gstr, false, false, true);
   ^~~~~~~~~~~~~~~
callbacks.cc:1637:3: note: suggested alternative: 'update_status_text'
   set_status_text(gstr, false, false, true);
   ^~~~~~~~~~~~~~~
   update_status_text
callbacks.cc:1641:2: error: 'str' was not declared in this scope
  str += ename->name;
  ^~~
callbacks.cc:1661:5: error: 'str2' was not declared in this scope
     str2 = arg->name();
     ^~~~
callbacks.cc:1661:5: note: suggested alternative: 'stat'
     str2 = arg->name();
     ^~~~
     stat
callbacks.cc:1663:5: error: 'str2' was not declared in this scope
     str2 = _("argument");
     ^~~~
callbacks.cc:1663:5: note: suggested alternative: 'stat'
     str2 = _("argument");
     ^~~~
     stat
callbacks.cc:1669:25: error: 'str3' was not declared in this scope
      if(i_reduced == 2) str3 = arg->print();
                         ^~~~
callbacks.cc:1669:25: note: suggested alternative: 'stat'
      if(i_reduced == 2) str3 = arg->print();
                         ^~~~
                         stat
callbacks.cc:1670:11: error: 'str3' was not declared in this scope
      else str3 = arg->printlong();
           ^~~~
callbacks.cc:1670:11: note: suggested alternative: 'stat'
      else str3 = arg->printlong();
           ^~~~
           stat
callbacks.cc:1673:25: error: 'str3' was not declared in this scope
      if(i_reduced == 2) str3 = arg_default.print();
                         ^~~~
callbacks.cc:1673:25: note: suggested alternative: 'stat'
      if(i_reduced == 2) str3 = arg_default.print();
                         ^~~~
                         stat
callbacks.cc:1674:11: error: 'str3' was not declared in this scope
      else str3 = arg_default.printlong();
           ^~~~
callbacks.cc:1674:11: note: suggested alternative: 'stat'
      else str3 = arg_default.printlong();
           ^~~~
           stat
callbacks.cc:1676:9: error: 'str3' was not declared in this scope
     if(!str3.empty()) {
         ^~~~
callbacks.cc:1676:9: note: suggested alternative: 'stat'
     if(!str3.empty()) {
         ^~~~
         stat
callbacks.cc:1677:6: error: 'str2' was not declared in this scope
      str2 += ": ";
      ^~~~
callbacks.cc:1677:6: note: suggested alternative: 'stat'
      str2 += ": ";
      ^~~~
      stat
callbacks.cc:1680:24: error: 'str2' was not declared in this scope
     gsub("&", "&amp;", str2);
                        ^~~~
callbacks.cc:1680:24: note: suggested alternative: 'stat'
     gsub("&", "&amp;", str2);
                        ^~~~
                        stat
callbacks.cc:1706:24: error: 'str2' was not declared in this scope
     gsub("&", "&amp;", str2);
                        ^~~~
callbacks.cc:1706:24: note: suggested alternative: 'stat'
     gsub("&", "&amp;", str2);
                        ^~~~
                        stat
callbacks.cc:1721:2: error: 'set_status_text' was not declared in this scope
  set_status_text(str);
  ^~~~~~~~~~~~~~~
callbacks.cc:1721:2: note: suggested alternative: 'update_status_text'
  set_status_text(str);
  ^~~~~~~~~~~~~~~
  update_status_text
callbacks.cc: At global scope:
callbacks.cc:1729:23: error: 'string' was not declared in this scope
 bool last_is_operator(string str, bool allow_exp = false) {
                       ^~~~~~
callbacks.cc:1729:23: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1729:35: error: expected primary-expression before 'bool'
 bool last_is_operator(string str, bool allow_exp = false) {
                                   ^~~~
callbacks.cc:1729:57: error: expression list treated as compound expression in initializer [-fpermissive]
 bool last_is_operator(string str, bool allow_exp = false) {
                                                         ^
callbacks.cc:1751:32: error: variable or field 'add_to_expression_history' declared void
 void add_to_expression_history(string str);
                                ^~~~~~
callbacks.cc:1751:32: error: 'string' was not declared in this scope
callbacks.cc:1751:32: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1753:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<CalculatorMessage> autocalc_messages;
 ^~~~~~
 Vector
callbacks.cc: In function 'gboolean do_autocalc_history_timeout(gpointer)':
callbacks.cc:1758:79: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   execute_expression(true, false, OPERATION_ADD, NULL, false, 0, "", "", false);
                                                                               ^
In file included from callbacks.cc:28:0:
callbacks.h:132:6: note:   initializing argument 7 of 'void execute_expression(bool, bool, MathOperation, MathFunction*, bool, size_t, int, int, bool)'
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
      ^~~~~~~~~~~~~~~~~~
callbacks.cc:1758:79: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   execute_expression(true, false, OPERATION_ADD, NULL, false, 0, "", "", false);
                                                                               ^
In file included from callbacks.cc:28:0:
callbacks.h:132:6: note:   initializing argument 8 of 'void execute_expression(bool, bool, MathOperation, MathFunction*, bool, size_t, int, int, bool)'
 void execute_expression(bool force = true, bool do_mathoperation = false, MathOperation op = OPERATION_ADD, MathFunction *f = NULL, bool do_stack = false, size_t stack_index = 0, string execute_str = string(), string str = string(), bool check_exrates = true);
      ^~~~~~~~~~~~~~~~~~
callbacks.cc:1761:27: error: 'autocalc_messages' was not declared in this scope
  CALCULATOR->addMessages(&autocalc_messages);
                           ^~~~~~~~~~~~~~~~~
callbacks.cc:1761:27: note: suggested alternative: 'show_message'
  CALCULATOR->addMessages(&autocalc_messages);
                           ^~~~~~~~~~~~~~~~~
                           show_message
callbacks.cc:1762:2: error: 'result_text' was not declared in this scope
  result_text = get_expression_text();
  ^~~~~~~~~~~
callbacks.cc:1762:2: note: suggested alternative: 'resultview'
  result_text = get_expression_text();
  ^~~~~~~~~~~
  resultview
callbacks.cc:1762:16: error: 'get_expression_text' was not declared in this scope
  result_text = get_expression_text();
                ^~~~~~~~~~~~~~~~~~~
callbacks.cc:1762:16: note: suggested alternative: 'set_expression_text'
  result_text = get_expression_text();
                ^~~~~~~~~~~~~~~~~~~
                set_expression_text
callbacks.cc:1763:2: error: 'add_to_expression_history' was not declared in this scope
  add_to_expression_history(result_text);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:1763:2: note: suggested alternative: 'update_expression_icons'
  add_to_expression_history(result_text);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  update_expression_icons
callbacks.cc:1765:41: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, true, true, "", 0);
                                         ^
In file included from callbacks.cc:28:0:
callbacks.h:133:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix = NULL, bool update_history = true, bool update_parse = false, bool force = false, string transformation = "", size_t stack_index = 0, bool register_moved = false);
      ^~~~~~~~~
callbacks.cc:1769:4: error: 'string' was not declared in this scope
    string s_cat = u->category();
    ^~~~~~
callbacks.cc:1769:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1770:7: error: 's_cat' was not declared in this scope
    if(s_cat.empty()) s_cat = _("Uncategorized");
       ^~~~~
callbacks.cc:1770:7: note: suggested alternative: 'stat'
    if(s_cat.empty()) s_cat = _("Uncategorized");
       ^~~~~
       stat
callbacks.cc:1771:7: error: 's_cat' was not declared in this scope
    if(s_cat != selected_unit_category) {
       ^~~~~
callbacks.cc:1771:7: note: suggested alternative: 'stat'
    if(s_cat != selected_unit_category) {
       ^~~~~
       stat
callbacks.cc:1771:16: error: 'selected_unit_category' was not declared in this scope
    if(s_cat != selected_unit_category) {
                ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:1771:16: note: suggested alternative: 'selected_unit'
    if(s_cat != selected_unit_category) {
                ^~~~~~~~~~~~~~~~~~~~~~
                selected_unit
callbacks.cc:1772:24: error: 'convert_category_map' was not declared in this scope
     GtkTreeIter iter = convert_category_map[s_cat];
                        ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:1772:24: note: suggested alternative: 'convert_to_unit'
     GtkTreeIter iter = convert_category_map[s_cat];
                        ^~~~~~~~~~~~~~~~~~~~
                        convert_to_unit
callbacks.cc: At global scope:
callbacks.cc:1790:44: error: 'string' has not been declared
 void do_auto_calc(bool recalculate = true, string str = string()) {
                                            ^~~~~~
callbacks.cc:1790:57: error: 'string' was not declared in this scope
 void do_auto_calc(bool recalculate = true, string str = string()) {
                                                         ^~~~~~
callbacks.cc:1790:57: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void do_auto_calc(bool, int)':
callbacks.cc:1801:22: error: request for member 'empty' in 'str', which is of non-class type 'int'
   bool origstr = str.empty();
                      ^~~~~
callbacks.cc:1802:21: error: 'get_expression_text' was not declared in this scope
   if(origstr) str = get_expression_text();
                     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:1802:21: note: suggested alternative: 'set_expression_text'
   if(origstr) str = get_expression_text();
                     ^~~~~~~~~~~~~~~~~~~
                     set_expression_text
callbacks.cc:1803:10: error: request for member 'empty' in 'str', which is of non-class type 'int'
   if(str.empty()) {clearresult(); return;}
          ^~~~~
callbacks.cc:1806:61: error: 'last_is_operator' cannot be used as a function
    if(last_is_operator(str, evalops.parse_options.base == 10) && (evalops.parse_options.base != BASE_ROMAN_NUMERALS || str[str.length() - 1] != '|' || str.find('|') == str.length() - 1)) return;
                                                             ^
callbacks.cc:1806:128: error: request for member 'length' in 'str', which is of non-class type 'int'
    if(last_is_operator(str, evalops.parse_options.base == 10) && (evalops.parse_options.base != BASE_ROMAN_NUMERALS || str[str.length() - 1] != '|' || str.find('|') == str.length() - 1)) return;
                                                                                                                                ^~~~~~
callbacks.cc:1806:156: error: request for member 'find' in 'str', which is of non-class type 'int'
    if(last_is_operator(str, evalops.parse_options.base == 10) && (evalops.parse_options.base != BASE_ROMAN_NUMERALS || str[str.length() - 1] != '|' || str.find('|') == str.length() - 1)) return;
                                                                                                                                                            ^~~~
callbacks.cc:1806:173: error: request for member 'length' in 'str', which is of non-class type 'int'
    if(last_is_operator(str, evalops.parse_options.base == 10) && (evalops.parse_options.base != BASE_ROMAN_NUMERALS || str[str.length() - 1] != '|' || str.find('|') == str.length() - 1)) return;
                                                                                                                                                                             ^~~~~~
callbacks.cc:1815:6: error: 'string' was not declared in this scope
      string c2 = gstr;
      ^~~~~~
callbacks.cc:1815:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1817:13: error: expected ';' before 'c1'
      string c1;
             ^~
callbacks.cc:1822:7: error: 'c1' was not declared in this scope
       c1 = gstr;
       ^~
callbacks.cc:1822:7: note: suggested alternative: 'y1'
       c1 = gstr;
       ^~
       y1
callbacks.cc:1825:10: error: 'c2' was not declared in this scope
      if((c2.length() == 1 && is_in("*/^|&<>=)]", c2[0]) && (c2[0] != '|' || evalops.parse_options.base != BASE_ROMAN_NUMERALS)) || (c2.length() > 1 && (c2 == "∧" || c2 == "∨" || c2 == "⊻" || c2 == expression_times_sign() || c2 == expression_divide_sign() || c2 == SIGN_NOT_EQUAL || c2 == SIGN_GREATER_OR_EQUAL || c2 == SIGN_LESS_OR_EQUAL))) {
          ^~
callbacks.cc:1826:10: error: 'c1' was not declared in this scope
       if(c1.empty() || (c1.length() == 1 && is_in(OPERATORS LEFT_PARENTHESIS, c1[0]) && c1[0] != '!' && (c1[0] != '|' || (evalops.parse_options.base != BASE_ROMAN_NUMERALS && c1 != "|")) && (c1[0] != '&' || c2 != "&") && (c1[0] != '/' || (c2 != "/" && c2 != expression_divide_sign())) && (c1[0] != '*' || (c2 != "*" && c2 != expression_times_sign())) && ((c1[0] != '>' && c1[0] != '<') || (c2 != "=" && c2 != c1)) && ((c2 != ">" && c2 == "<") || (c1[0] != '=' && c1 != c2))) || (c1.length() > 1 && (c1 == "∧" || c1 == "∨" || c1 == "⊻" || c1 == SIGN_NOT_EQUAL || c1 == SIGN_GREATER_OR_EQUAL || c1 == SIGN_LESS_OR_EQUAL || (c1 == expression_times_sign() && c2 != "*" && c2 != expression_times_sign()) || (c1 == expression_divide_sign() && c2 != "/" && c2 != expression_divide_sign()) || c1 == expression_add_sign() || c1 == expression_sub_sign()))) {
          ^~
callbacks.cc:1826:10: note: suggested alternative: 'y1'
       if(c1.empty() || (c1.length() == 1 && is_in(OPERATORS LEFT_PARENTHESIS, c1[0]) && c1[0] != '!' && (c1[0] != '|' || (evalops.parse_options.base != BASE_ROMAN_NUMERALS && c1 != "|")) && (c1[0] != '&' || c2 != "&") && (c1[0] != '/' || (c2 != "/" && c2 != expression_divide_sign())) && (c1[0] != '*' || (c2 != "*" && c2 != expression_times_sign())) && ((c1[0] != '>' && c1[0] != '<') || (c2 != "=" && c2 != c1)) && ((c2 != ">" && c2 == "<") || (c1[0] != '=' && c1 != c2))) || (c1.length() > 1 && (c1 == "∧" || c1 == "∨" || c1 == "⊻" || c1 == SIGN_NOT_EQUAL || c1 == SIGN_GREATER_OR_EQUAL || c1 == SIGN_LESS_OR_EQUAL || (c1 == expression_times_sign() && c2 != "*" && c2 != expression_times_sign()) || (c1 == expression_divide_sign() && c2 != "/" && c2 != expression_divide_sign()) || c1 == expression_add_sign() || c1 == expression_sub_sign()))) {
          ^~
          y1
callbacks.cc:1838:3: error: 'string' was not declared in this scope
   string from_str = str, to_str;
   ^~~~~~
callbacks.cc:1838:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:1839:50: error: 'from_str' was not declared in this scope
   if(origstr && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, true)) {
                                                  ^~~~~~~~
callbacks.cc:1839:50: note: suggested alternative: 'origstr'
   if(origstr && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, true)) {
                                                  ^~~~~~~~
                                                  origstr
callbacks.cc:1839:60: error: 'to_str' was not declared in this scope
   if(origstr && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, true)) {
                                                            ^~~~~~
callbacks.cc:1839:60: note: suggested alternative: 'str'
   if(origstr && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, true)) {
                                                            ^~~~~~
                                                            str
callbacks.cc:1842:11: error: expected ';' before 'to_str1'
    string to_str1, to_str2;
           ^~~~~~~
callbacks.cc:1844:17: error: 'string' is not a class, namespace, or enumeration
    if(ispace != string::npos) {
                 ^~~~~~
callbacks.cc:1845:5: error: 'to_str1' was not declared in this scope
     to_str1 = to_str.substr(0, ispace);
     ^~~~~~~
callbacks.cc:1847:5: error: 'to_str2' was not declared in this scope
     to_str2 = to_str.substr(ispace + 1);
     ^~~~~~~
callbacks.cc:2004:31: error: 'to_str1' was not declared in this scope
    } else if(equalsIgnoreCase(to_str1, "base") || equalsIgnoreCase(to_str1, _("base"))) {
                               ^~~~~~~
callbacks.cc:2005:25: error: 'to_str2' was not declared in this scope
     if(equalsIgnoreCase(to_str2, "golden") || equalsIgnoreCase(to_str2, "golden ratio") || to_str2 == "φ") to_base = BASE_GOLDEN_RATIO;
                         ^~~~~~~
callbacks.cc:2042:19: error: request for member 'find_first_of' in 'str', which is of non-class type 'int'
    size_t i = str.find_first_of(SPACES LEFT_PARENTHESIS);
                   ^~~~~~~~~~~~~
callbacks.cc:2043:12: error: 'string' is not a class, namespace, or enumeration
    if(i != string::npos) {
            ^~~~~~
callbacks.cc:2044:18: error: request for member 'substr' in 'str', which is of non-class type 'int'
     to_str = str.substr(0, i);
                  ^~~~~~
callbacks.cc:2046:16: error: request for member 'substr' in 'str', which is of non-class type 'int'
      str = str.substr(i + 1);
                ^~~~~~
callbacks.cc:2049:16: error: request for member 'substr' in 'str', which is of non-class type 'int'
      str = str.substr(i + 1);
                ^~~~~~
callbacks.cc:2055:11: error: expected ';' before 'ceu_str'
    string ceu_str = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(main_builder, "convert_entry_unit"))), evalops.parse_options);
           ^~~~~~~
callbacks.cc:2056:22: error: 'ceu_str' was not declared in this scope
    remove_blank_ends(ceu_str);
                      ^~~~~~~
callbacks.cc:2056:22: note: suggested alternative: 'eqstr'
    remove_blank_ends(ceu_str);
                      ^~~~~~~
                      eqstr
callbacks.cc:2080:96: error: no matching function for call to 'Calculator::unlocalizeExpression(int&, ParseOptions&)'
   if(!CALCULATOR->calculate(&mauto, CALCULATOR->unlocalizeExpression(str, evalops.parse_options), 100, evalops, parsed_mstruct, parsed_tostruct)) {
                                                                                                ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:17:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:709:14: note: candidate: std::__cxx11::string Calculator::unlocalizeExpression(std::__cxx11::string, const ParseOptions&) const
  std::string unlocalizeExpression(std::string str, const ParseOptions &po = default_parse_options) const;
              ^~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:709:14: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
callbacks.cc:2096:61: error: 'autocalc_messages' was not declared in this scope
   CALCULATOR->endTemporaryStopMessages(!mauto.isAborted(), &autocalc_messages);
                                                             ^~~~~~~~~~~~~~~~~
callbacks.cc:2096:61: note: suggested alternative: 'show_message'
   CALCULATOR->endTemporaryStopMessages(!mauto.isAborted(), &autocalc_messages);
                                                             ^~~~~~~~~~~~~~~~~
                                                             show_message
callbacks.cc:2178:3: error: 'date_map' was not declared in this scope
   date_map.clear();
   ^~~~~~~~
callbacks.cc:2178:3: note: suggested alternative: 'GdkKeymap'
   date_map.clear();
   ^~~~~~~~
   GdkKeymap
callbacks.cc:2179:3: error: 'number_map' was not declared in this scope
   number_map.clear();
   ^~~~~~~~~~
callbacks.cc:2179:3: note: suggested alternative: 'NumberType'
   number_map.clear();
   ^~~~~~~~~~
   NumberType
callbacks.cc:2180:3: error: 'number_base_map' was not declared in this scope
   number_base_map.clear();
   ^~~~~~~~~~~~~~~
callbacks.cc:2181:3: error: 'number_exp_map' was not declared in this scope
   number_exp_map.clear();
   ^~~~~~~~~~~~~~
callbacks.cc:2181:3: note: suggested alternative: 'mpfr_exp2m1'
   number_exp_map.clear();
   ^~~~~~~~~~~~~~
   mpfr_exp2m1
callbacks.cc:2182:3: error: 'number_exp_minus_map' was not declared in this scope
   number_exp_minus_map.clear();
   ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:2183:3: error: 'number_approx_map' was not declared in this scope
   number_approx_map.clear();
   ^~~~~~~~~~~~~~~~~
callbacks.cc:2210:4: error: 'result_text' was not declared in this scope
    result_text = displayed_mstruct->print();
    ^~~~~~~~~~~
callbacks.cc:2210:4: note: suggested alternative: 'resultview'
    result_text = displayed_mstruct->print();
    ^~~~~~~~~~~
    resultview
callbacks.cc:2211:27: error: 'replace_result_cis' was not declared in this scope
    if(complex_angle_form) replace_result_cis(result_text);
                           ^~~~~~~~~~~~~~~~~~
callbacks.cc:2211:27: note: suggested alternative: 'update_result_bases'
    if(complex_angle_form) replace_result_cis(result_text);
                           ^~~~~~~~~~~~~~~~~~
                           update_result_bases
callbacks.cc:2222:5: error: 'result_text_long' was not declared in this scope
     result_text_long = displayed_mstruct->print(printops_long);
     ^~~~~~~~~~~~~~~~
callbacks.cc:2222:5: note: suggested alternative: 'result_too_long'
     result_text_long = displayed_mstruct->print(printops_long);
     ^~~~~~~~~~~~~~~~
     result_too_long
callbacks.cc:2223:28: error: 'replace_result_cis' was not declared in this scope
     if(complex_angle_form) replace_result_cis(result_text_long);
                            ^~~~~~~~~~~~~~~~~~
callbacks.cc:2223:28: note: suggested alternative: 'update_result_bases'
     if(complex_angle_form) replace_result_cis(result_text_long);
                            ^~~~~~~~~~~~~~~~~~
                            update_result_bases
callbacks.cc:2226:5: error: 'result_text_long' was not declared in this scope
     result_text_long = "";
     ^~~~~~~~~~~~~~~~
callbacks.cc:2226:5: note: suggested alternative: 'result_too_long'
     result_text_long = "";
     ^~~~~~~~~~~~~~~~
     result_too_long
callbacks.cc:2229:5: error: 'string' was not declared in this scope
     string eqstr;
     ^~~~~~
callbacks.cc:2229:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2231:12: error: expected unqualified-id before '=' token
      eqstr = "=";
            ^
callbacks.cc:2234:13: error: expected unqualified-id before '=' token
       eqstr = SIGN_ALMOST_EQUAL;
             ^
callbacks.cc:2236:13: error: expected unqualified-id before '=' token
       eqstr = "= ";
             ^
callbacks.cc:2237:13: error: expected unqualified-id before '+=' token
       eqstr += _("approx.");
             ^~
callbacks.cc:2240:45: error: 'result_text_long' was not declared in this scope
     gtk_widget_set_tooltip_text(resultview, result_text_long.length() < 1000 ? (eqstr + result_text_long).c_str() : "");
                                             ^~~~~~~~~~~~~~~~
callbacks.cc:2240:45: note: suggested alternative: 'result_too_long'
     gtk_widget_set_tooltip_text(resultview, result_text_long.length() < 1000 ? (eqstr + result_text_long).c_str() : "");
                                             ^~~~~~~~~~~~~~~~
                                             result_too_long
callbacks.cc:2240:87: error: expected primary-expression before '+' token
     gtk_widget_set_tooltip_text(resultview, result_text_long.length() < 1000 ? (eqstr + result_text_long).c_str() : "");
                                                                                       ^
callbacks.cc:2244:4: error: 'result_bin' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
    ^~~~~~~~~~
callbacks.cc:2244:4: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
    ^~~~~~~~~~
    resultview
callbacks.cc:2244:21: error: 'result_oct' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                     ^~~~~~~~~~
callbacks.cc:2244:21: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                     ^~~~~~~~~~
                     resultview
callbacks.cc:2244:38: error: 'result_dec' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                      ^~~~~~~~~~
callbacks.cc:2244:38: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                      ^~~~~~~~~~
                                      resultview
callbacks.cc:2244:55: error: 'result_hex' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                                       ^~~~~~~~~~
callbacks.cc:2244:55: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                                       ^~~~~~~~~~
                                                       resultview
callbacks.cc:2266:14: error: 'string' has not been declared
      if(i != string::npos && result_oct.length() > i + 1 && result_oct[i] == '0' && is_in(NUMBERS, result_oct[i + 1])) result_oct.erase(i, 1);
              ^~~~~~
callbacks.cc: In function 'void display_parse_status()':
callbacks.cc:2318:2: error: 'string' was not declared in this scope
  string text = gtext, str_f;
  ^~~~~~
callbacks.cc:2318:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2320:5: error: 'text' was not declared in this scope
  if(text.empty()) {
     ^~~~
callbacks.cc:2320:5: note: suggested alternative: 'gtext'
  if(text.empty()) {
     ^~~~
     gtext
callbacks.cc:2321:3: error: 'set_status_text' was not declared in this scope
   set_status_text("", true, false, false);
   ^~~~~~~~~~~~~~~
callbacks.cc:2321:3: note: suggested alternative: 'update_status_text'
   set_status_text("", true, false, false);
   ^~~~~~~~~~~~~~~
   update_status_text
callbacks.cc:2322:3: error: 'parsed_expression' was not declared in this scope
   parsed_expression = "";
   ^~~~~~~~~~~~~~~~~
callbacks.cc:2322:3: note: suggested alternative: 'f_expression'
   parsed_expression = "";
   ^~~~~~~~~~~~~~~~~
   f_expression
callbacks.cc:2326:26: error: 'text' was not declared in this scope
  remove_duplicate_blanks(text);
                          ^~~~
callbacks.cc:2326:26: note: suggested alternative: 'gtext'
  remove_duplicate_blanks(text);
                          ^~~~
                          gtext
callbacks.cc:2328:10: error: 'string' is not a class, namespace, or enumeration
  if(i != string::npos) {
          ^~~~~~
callbacks.cc:2329:3: error: 'str_f' was not declared in this scope
   str_f = text.substr(0, i);
   ^~~~~
callbacks.cc:2329:3: note: suggested alternative: 'strtof'
   str_f = text.substr(0, i);
   ^~~~~
   strtof
callbacks.cc:2345:9: error: expected ';' before 'str_e'
  string str_e, str_u, str_w;
         ^~~~~
callbacks.cc:2353:4: error: 'str_e' was not declared in this scope
    str_e = CALCULATOR->unlocalizeExpression(gtext, evalops.parse_options);
    ^~~~~
callbacks.cc:2353:4: note: suggested alternative: 'strsep'
    str_e = CALCULATOR->unlocalizeExpression(gtext, evalops.parse_options);
    ^~~~~
    strsep
callbacks.cc:2354:53: error: 'str_u' was not declared in this scope
    bool b = CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                                     ^~~~~
callbacks.cc:2354:53: note: suggested alternative: 'strdup'
    bool b = CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                                     ^~~~~
                                                     strdup
callbacks.cc:2355:51: error: 'str_w' was not declared in this scope
    b = CALCULATOR->separateWhereExpression(str_e, str_w, evalops) || b;
                                                   ^~~~~
callbacks.cc:2361:4: error: 'str_e' was not declared in this scope
    str_e = CALCULATOR->unlocalizeExpression(text, evalops.parse_options);
    ^~~~~
callbacks.cc:2361:4: note: suggested alternative: 'strsep'
    str_e = CALCULATOR->unlocalizeExpression(text, evalops.parse_options);
    ^~~~~
    strsep
callbacks.cc:2362:53: error: 'str_u' was not declared in this scope
    bool b = CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                                     ^~~~~
callbacks.cc:2362:53: note: suggested alternative: 'strdup'
    bool b = CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                                     ^~~~~
                                                     strdup
callbacks.cc:2363:51: error: 'str_w' was not declared in this scope
    b = CALCULATOR->separateWhereExpression(str_e, str_w, evalops) || b;
                                                   ^~~~~
callbacks.cc:2385:4: error: 'str_e' was not declared in this scope
    str_e = CALCULATOR->unlocalizeExpression(text, evalops.parse_options);
    ^~~~~
callbacks.cc:2385:4: note: suggested alternative: 'strsep'
    str_e = CALCULATOR->unlocalizeExpression(text, evalops.parse_options);
    ^~~~~
    strsep
callbacks.cc:2386:44: error: 'str_u' was not declared in this scope
    CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                            ^~~~~
callbacks.cc:2386:44: note: suggested alternative: 'strdup'
    CALCULATOR->separateToExpression(str_e, str_u, evalops, false, true);
                                            ^~~~~
                                            strdup
callbacks.cc:2387:47: error: 'str_w' was not declared in this scope
    CALCULATOR->separateWhereExpression(str_e, str_w, evalops);
                                               ^~~~~
callbacks.cc:2427:6: error: 'str_e' was not declared in this scope
   if(str_e.empty()) {
      ^~~~~
callbacks.cc:2427:6: note: suggested alternative: 'strsep'
   if(str_e.empty()) {
      ^~~~~
      strsep
callbacks.cc:2428:4: error: 'parsed_expression' was not declared in this scope
    parsed_expression = "";
    ^~~~~~~~~~~~~~~~~
callbacks.cc:2428:4: note: suggested alternative: 'f_expression'
    parsed_expression = "";
    ^~~~~~~~~~~~~~~~~
    f_expression
callbacks.cc:2432:4: error: 'parsed_expression' was not declared in this scope
    parsed_expression = mparse.print(po);
    ^~~~~~~~~~~~~~~~~
callbacks.cc:2432:4: note: suggested alternative: 'f_expression'
    parsed_expression = mparse.print(po);
    ^~~~~~~~~~~~~~~~~
    f_expression
callbacks.cc:2435:7: error: 'str_w' was not declared in this scope
   if(!str_w.empty()) {
       ^~~~~
callbacks.cc:2441:4: error: 'parsed_expression' was not declared in this scope
    parsed_expression += CALCULATOR->localWhereString();
    ^~~~~~~~~~~~~~~~~
callbacks.cc:2441:4: note: suggested alternative: 'f_expression'
    parsed_expression += CALCULATOR->localWhereString();
    ^~~~~~~~~~~~~~~~~
    f_expression
callbacks.cc:2447:7: error: 'str_u' was not declared in this scope
   if(!str_u.empty()) {
       ^~~~~
callbacks.cc:2447:7: note: suggested alternative: 'strdup'
   if(!str_u.empty()) {
       ^~~~~
       strdup
callbacks.cc:2448:7: error: 'parsed_expression' was not declared in this scope
    if(parsed_expression.empty()) {
       ^~~~~~~~~~~~~~~~~
callbacks.cc:2448:7: note: suggested alternative: 'f_expression'
    if(parsed_expression.empty()) {
       ^~~~~~~~~~~~~~~~~
       f_expression
callbacks.cc:2455:11: error: expected ';' before 'to_str1'
    string to_str1, to_str2;
           ^~~~~~~
callbacks.cc:2457:17: error: 'string' is not a class, namespace, or enumeration
    if(ispace != string::npos) {
                 ^~~~~~
callbacks.cc:2458:5: error: 'to_str1' was not declared in this scope
     to_str1 = str_u.substr(0, ispace);
     ^~~~~~~
callbacks.cc:2460:5: error: 'to_str2' was not declared in this scope
     to_str2 = str_u.substr(ispace + 1);
     ^~~~~~~
callbacks.cc:2464:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("hexadecimal number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2464:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("hexadecimal number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2466:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("octal number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2466:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("octal number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2468:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("decimal number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2468:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("decimal number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2470:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("duodecimal number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2470:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("duodecimal number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2472:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("binary number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2472:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("binary number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2474:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("roman numerals");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2474:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("roman numerals");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2476:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("bijective base-26");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2476:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("bijective base-26");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2478:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("sexagesimal number");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2478:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("sexagesimal number");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2480:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("time format");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2480:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("time format");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2482:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("Unicode");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2482:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("Unicode");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2484:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("number bases");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2484:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("number bases");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2486:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("calendars");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2486:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("calendars");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2488:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("optimal unit");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2488:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("optimal unit");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2490:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("base units");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2490:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("base units");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2492:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("mixed units");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2492:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("mixed units");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2494:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("fraction");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2494:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("fraction");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2496:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("factors");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2496:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("factors");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2498:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("expanded partial fractions");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2498:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("expanded partial fractions");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2500:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex rectangular form");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2500:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex rectangular form");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2502:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex exponential form");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2502:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex exponential form");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2504:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex polar form");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2504:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex polar form");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2506:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex cis form");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2506:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex cis form");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2508:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex angle notation");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2508:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex angle notation");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2510:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("complex phasor notation");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2510:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("complex phasor notation");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2512:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += _("UTC time zone");
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2512:5: note: suggested alternative: 'f_expression'
     parsed_expression += _("UTC time zone");
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2515:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += "UTC";
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2515:5: note: suggested alternative: 'f_expression'
     parsed_expression += "UTC";
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2550:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += "UTC";
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2550:5: note: suggested alternative: 'f_expression'
     parsed_expression += "UTC";
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2552:31: error: 'to_str1' was not declared in this scope
    } else if(equalsIgnoreCase(to_str1, "base") || equalsIgnoreCase(to_str1, _("base"))) {
                               ^~~~~~~
callbacks.cc:2553:56: error: 'to_str2' was not declared in this scope
     gchar *gstr = g_strdup_printf(_("number base %s"), to_str2.c_str());
                                                        ^~~~~~~
callbacks.cc:2554:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += gstr;
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2554:5: note: suggested alternative: 'f_expression'
     parsed_expression += gstr;
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2572:5: error: 'parsed_expression' was not declared in this scope
     parsed_expression += mparse.print(po);
     ^~~~~~~~~~~~~~~~~
callbacks.cc:2572:5: note: suggested alternative: 'f_expression'
     parsed_expression += mparse.print(po);
     ^~~~~~~~~~~~~~~~~
     f_expression
callbacks.cc:2578:7: error: 'str_f' was not declared in this scope
   if(!str_f.empty()) {str_f += " "; parsed_expression.insert(0, str_f);}
       ^~~~~
callbacks.cc:2578:7: note: suggested alternative: 'strtof'
   if(!str_f.empty()) {str_f += " "; parsed_expression.insert(0, str_f);}
       ^~~~~
       strtof
callbacks.cc:2578:37: error: 'parsed_expression' was not declared in this scope
   if(!str_f.empty()) {str_f += " "; parsed_expression.insert(0, str_f);}
                                     ^~~~~~~~~~~~~~~~~
callbacks.cc:2578:37: note: suggested alternative: 'f_expression'
   if(!str_f.empty()) {str_f += " "; parsed_expression.insert(0, str_f);}
                                     ^~~~~~~~~~~~~~~~~
                                     f_expression
callbacks.cc:2579:22: error: 'parsed_expression' was not declared in this scope
   gsub("&", "&amp;", parsed_expression);
                      ^~~~~~~~~~~~~~~~~
callbacks.cc:2579:22: note: suggested alternative: 'f_expression'
   gsub("&", "&amp;", parsed_expression);
                      ^~~~~~~~~~~~~~~~~
                      f_expression
callbacks.cc:2582:15: error: 'set_status_text' was not declared in this scope
   if(!b_func) set_status_text(parsed_expression.c_str(), true, had_errors, had_warnings);
               ^~~~~~~~~~~~~~~
callbacks.cc:2582:15: note: suggested alternative: 'update_status_text'
   if(!b_func) set_status_text(parsed_expression.c_str(), true, had_errors, had_warnings);
               ^~~~~~~~~~~~~~~
               update_status_text
callbacks.cc:2585:19: error: 'parsed_expression' was not declared in this scope
   set_status_text(parsed_expression.c_str(), true, parsed_had_errors, parsed_had_warnings);
                   ^~~~~~~~~~~~~~~~~
callbacks.cc:2585:19: note: suggested alternative: 'f_expression'
   set_status_text(parsed_expression.c_str(), true, parsed_had_errors, parsed_had_warnings);
                   ^~~~~~~~~~~~~~~~~
                   f_expression
callbacks.cc:2585:3: error: 'set_status_text' was not declared in this scope
   set_status_text(parsed_expression.c_str(), true, parsed_had_errors, parsed_had_warnings);
   ^~~~~~~~~~~~~~~
callbacks.cc:2585:3: note: suggested alternative: 'update_status_text'
   set_status_text(parsed_expression.c_str(), true, parsed_had_errors, parsed_had_warnings);
   ^~~~~~~~~~~~~~~
   update_status_text
callbacks.cc: In function 'void generate_units_tree_struct()':
callbacks.cc:2724:2: error: 'string' was not declared in this scope
  string str, cat, cat_sub;
  ^~~~~~
callbacks.cc:2724:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2726:12: error: 'struct tree_struct' has no member named 'items'
  unit_cats.items.clear();
            ^~~~~
callbacks.cc:2727:12: error: 'struct tree_struct' has no member named 'objects'
  unit_cats.objects.clear();
            ^~~~~~~
callbacks.cc:2729:2: error: 'ia_units' was not declared in this scope
  ia_units.clear();
  ^~~~~~~~
callbacks.cc:2729:2: note: suggested alternative: 'tUnits'
  ia_units.clear();
  ^~~~~~~~
  tUnits
callbacks.cc:2730:2: error: 'list' was not declared in this scope
  list<tree_struct>::iterator it;
  ^~~~
callbacks.cc:2730:2: note: suggested alternatives:
In file included from /usr/include/g++/list:63:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:20,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
     class list : protected _List_base<_Tp, _Alloc>
           ^~~~
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
callbacks.cc:2730:18: error: expected primary-expression before '>' token
  list<tree_struct>::iterator it;
                  ^
callbacks.cc:2730:21: error: '::iterator' has not been declared
  list<tree_struct>::iterator it;
                     ^~~~~~~~
callbacks.cc:2730:21: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:2736:64: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->units[i]->title(), u->title())) {
                                                                ^
callbacks.cc:2746:5: error: 'cat' was not declared in this scope
     cat = CALCULATOR->units[i]->category();
     ^~~
callbacks.cc:2746:5: note: suggested alternative: 'cat_i'
     cat = CALCULATOR->units[i]->category();
     ^~~
     cat_i
callbacks.cc:2750:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2751:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
callbacks.cc:2751:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2753:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
callbacks.cc:2753:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2756:10: error: 'it' was not declared in this scope
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
callbacks.cc:2756:10: note: suggested alternative: 'i'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
          i
callbacks.cc:2756:21: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                     ^~~~~
callbacks.cc:2756:48: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                                                ^~~~~
callbacks.cc:2757:10: error: 'cat_sub' was not declared in this scope
       if(cat_sub == it->item) {
          ^~~~~~~
callbacks.cc:2757:10: note: suggested alternative: 'cat_i'
       if(cat_sub == it->item) {
          ^~~~~~~
          cat_i
callbacks.cc:2765:13: error: 'struct tree_struct' has no member named 'items'
       item->items.push_back(cat);
             ^~~~~
callbacks.cc:2766:7: error: 'it' was not declared in this scope
       it = item->items.end();
       ^~
callbacks.cc:2766:7: note: suggested alternative: 'i'
       it = item->items.end();
       ^~
       i
callbacks.cc:2766:18: error: 'struct tree_struct' has no member named 'items'
       it = item->items.end();
                  ^~~~~
callbacks.cc:2770:13: error: 'struct tree_struct' has no member named 'item'
       item->item = cat_sub;
             ^~~~
callbacks.cc:2770:20: error: 'cat_sub' was not declared in this scope
       item->item = cat_sub;
                    ^~~~~~~
callbacks.cc:2770:20: note: suggested alternative: 'cat_i'
       item->item = cat_sub;
                    ^~~~~~~
                    cat_i
callbacks.cc:2772:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2780:34: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i3 = 0; i3 < item->objects.size(); i3++) {
                                  ^~~~~~~
callbacks.cc:2781:23: error: 'struct tree_struct' has no member named 'objects'
     u = (Unit*) item->objects[i3];
                       ^~~~~~~
callbacks.cc:2782:64: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->units[i]->title(), u->title())) {
                                                                ^
callbacks.cc:2784:12: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->units[i]);
            ^~~~~~~
callbacks.cc:2784:33: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->units[i]);
                                 ^~~~~~~
callbacks.cc:2788:17: error: 'struct tree_struct' has no member named 'objects'
    if(!b) item->objects.push_back((void*) CALCULATOR->units[i]);
                 ^~~~~~~
callbacks.cc: In function 'void generate_variables_tree_struct()':
callbacks.cc:2799:2: error: 'string' was not declared in this scope
  string str, cat, cat_sub;
  ^~~~~~
callbacks.cc:2799:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2801:16: error: 'struct tree_struct' has no member named 'items'
  variable_cats.items.clear();
                ^~~~~
callbacks.cc:2802:16: error: 'struct tree_struct' has no member named 'objects'
  variable_cats.objects.clear();
                ^~~~~~~
callbacks.cc:2804:2: error: 'ia_variables' was not declared in this scope
  ia_variables.clear();
  ^~~~~~~~~~~~
callbacks.cc:2804:2: note: suggested alternative: 'tVariables'
  ia_variables.clear();
  ^~~~~~~~~~~~
  tVariables
callbacks.cc:2805:2: error: 'list' was not declared in this scope
  list<tree_struct>::iterator it;
  ^~~~
callbacks.cc:2805:2: note: suggested alternatives:
In file included from /usr/include/g++/list:63:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:20,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
     class list : protected _List_base<_Tp, _Alloc>
           ^~~~
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
callbacks.cc:2805:18: error: expected primary-expression before '>' token
  list<tree_struct>::iterator it;
                  ^
callbacks.cc:2805:21: error: '::iterator' has not been declared
  list<tree_struct>::iterator it;
                     ^~~~~~~~
callbacks.cc:2805:21: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:2812:68: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->variables[i]->title(), v->title())) {
                                                                    ^
callbacks.cc:2822:5: error: 'cat' was not declared in this scope
     cat = CALCULATOR->variables[i]->category();
     ^~~
callbacks.cc:2822:5: note: suggested alternative: 'cat_i'
     cat = CALCULATOR->variables[i]->category();
     ^~~
     cat_i
callbacks.cc:2826:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2827:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
callbacks.cc:2827:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2829:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
callbacks.cc:2829:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2832:10: error: 'it' was not declared in this scope
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
callbacks.cc:2832:10: note: suggested alternative: 'i'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
          i
callbacks.cc:2832:21: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                     ^~~~~
callbacks.cc:2832:48: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                                                ^~~~~
callbacks.cc:2833:10: error: 'cat_sub' was not declared in this scope
       if(cat_sub == it->item) {
          ^~~~~~~
callbacks.cc:2833:10: note: suggested alternative: 'cat_i'
       if(cat_sub == it->item) {
          ^~~~~~~
          cat_i
callbacks.cc:2841:13: error: 'struct tree_struct' has no member named 'items'
       item->items.push_back(cat);
             ^~~~~
callbacks.cc:2842:7: error: 'it' was not declared in this scope
       it = item->items.end();
       ^~
callbacks.cc:2842:7: note: suggested alternative: 'i'
       it = item->items.end();
       ^~
       i
callbacks.cc:2842:18: error: 'struct tree_struct' has no member named 'items'
       it = item->items.end();
                  ^~~~~
callbacks.cc:2846:13: error: 'struct tree_struct' has no member named 'item'
       item->item = cat_sub;
             ^~~~
callbacks.cc:2846:20: error: 'cat_sub' was not declared in this scope
       item->item = cat_sub;
                    ^~~~~~~
callbacks.cc:2846:20: note: suggested alternative: 'cat_i'
       item->item = cat_sub;
                    ^~~~~~~
                    cat_i
callbacks.cc:2848:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2856:34: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i3 = 0; i3 < item->objects.size(); i3++) {
                                  ^~~~~~~
callbacks.cc:2857:27: error: 'struct tree_struct' has no member named 'objects'
     v = (Variable*) item->objects[i3];
                           ^~~~~~~
callbacks.cc:2858:68: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->variables[i]->title(), v->title())) {
                                                                    ^
callbacks.cc:2860:12: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->variables[i]);
            ^~~~~~~
callbacks.cc:2860:33: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->variables[i]);
                                 ^~~~~~~
callbacks.cc:2864:17: error: 'struct tree_struct' has no member named 'objects'
    if(!b) item->objects.push_back((void*) CALCULATOR->variables[i]);
                 ^~~~~~~
callbacks.cc: In function 'void generate_functions_tree_struct()':
callbacks.cc:2875:2: error: 'string' was not declared in this scope
  string str, cat, cat_sub;
  ^~~~~~
callbacks.cc:2875:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2877:16: error: 'struct tree_struct' has no member named 'items'
  function_cats.items.clear();
                ^~~~~
callbacks.cc:2878:16: error: 'struct tree_struct' has no member named 'objects'
  function_cats.objects.clear();
                ^~~~~~~
callbacks.cc:2880:2: error: 'ia_functions' was not declared in this scope
  ia_functions.clear();
  ^~~~~~~~~~~~
callbacks.cc:2880:2: note: suggested alternative: 'tFunctions'
  ia_functions.clear();
  ^~~~~~~~~~~~
  tFunctions
callbacks.cc:2881:2: error: 'list' was not declared in this scope
  list<tree_struct>::iterator it;
  ^~~~
callbacks.cc:2881:2: note: suggested alternatives:
In file included from /usr/include/g++/list:63:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:20,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
     class list : protected _List_base<_Tp, _Alloc>
           ^~~~
/usr/include/g++/bits/stl_list.h:503:11: note:   'std::__cxx11::list'
callbacks.cc:2881:18: error: expected primary-expression before '>' token
  list<tree_struct>::iterator it;
                  ^
callbacks.cc:2881:21: error: '::iterator' has not been declared
  list<tree_struct>::iterator it;
                     ^~~~~~~~
callbacks.cc:2881:21: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:2889:68: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->functions[i]->title(), f->title())) {
                                                                    ^
callbacks.cc:2899:5: error: 'cat' was not declared in this scope
     cat = CALCULATOR->functions[i]->category();
     ^~~
callbacks.cc:2899:5: note: suggested alternative: 'cat_i'
     cat = CALCULATOR->functions[i]->category();
     ^~~
     cat_i
callbacks.cc:2903:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2904:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
callbacks.cc:2904:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat.length() - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2906:7: error: 'cat_sub' was not declared in this scope
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
callbacks.cc:2906:7: note: suggested alternative: 'cat_i'
       cat_sub = cat.substr(cat_i_prev, cat_i - cat_i_prev);
       ^~~~~~~
       cat_i
callbacks.cc:2909:10: error: 'it' was not declared in this scope
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
callbacks.cc:2909:10: note: suggested alternative: 'i'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
          ^~
          i
callbacks.cc:2909:21: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                     ^~~~~
callbacks.cc:2909:48: error: 'struct tree_struct' has no member named 'items'
      for(it = item->items.begin(); it != item->items.end(); ++it) {
                                                ^~~~~
callbacks.cc:2910:10: error: 'cat_sub' was not declared in this scope
       if(cat_sub == it->item) {
          ^~~~~~~
callbacks.cc:2910:10: note: suggested alternative: 'cat_i'
       if(cat_sub == it->item) {
          ^~~~~~~
          cat_i
callbacks.cc:2918:13: error: 'struct tree_struct' has no member named 'items'
       item->items.push_back(cat);
             ^~~~~
callbacks.cc:2919:7: error: 'it' was not declared in this scope
       it = item->items.end();
       ^~
callbacks.cc:2919:7: note: suggested alternative: 'i'
       it = item->items.end();
       ^~
       i
callbacks.cc:2919:18: error: 'struct tree_struct' has no member named 'items'
       it = item->items.end();
                  ^~~~~
callbacks.cc:2923:13: error: 'struct tree_struct' has no member named 'item'
       item->item = cat_sub;
             ^~~~
callbacks.cc:2923:20: error: 'cat_sub' was not declared in this scope
       item->item = cat_sub;
                    ^~~~~~~
callbacks.cc:2923:20: note: suggested alternative: 'cat_i'
       item->item = cat_sub;
                    ^~~~~~~
                    cat_i
callbacks.cc:2925:18: error: 'string' is not a class, namespace, or enumeration
      if(cat_i == string::npos) {
                  ^~~~~~
callbacks.cc:2933:34: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i3 = 0; i3 < item->objects.size(); i3++) {
                                  ^~~~~~~
callbacks.cc:2934:31: error: 'struct tree_struct' has no member named 'objects'
     f = (MathFunction*) item->objects[i3];
                               ^~~~~~~
callbacks.cc:2935:68: error: 'string_is_less' cannot be used as a function
     if(string_is_less(CALCULATOR->functions[i]->title(), f->title())) {
                                                                    ^
callbacks.cc:2937:12: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->functions[i]);
            ^~~~~~~
callbacks.cc:2937:33: error: 'struct tree_struct' has no member named 'objects'
      item->objects.insert(item->objects.begin() + i3, (void*) CALCULATOR->functions[i]);
                                 ^~~~~~~
callbacks.cc:2941:17: error: 'struct tree_struct' has no member named 'objects'
    if(!b) item->objects.push_back((void*) CALCULATOR->functions[i]);
                 ^~~~~~~
callbacks.cc: In function 'void update_functions_tree()':
callbacks.cc:2962:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:2962:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:2964:16: error: 'struct tree_struct' has no member named 'it'
  function_cats.it = function_cats.items.begin();
                ^~
callbacks.cc:2964:35: error: 'struct tree_struct' has no member named 'items'
  function_cats.it = function_cats.items.begin();
                                   ^~~~~
callbacks.cc:2965:19: error: 'struct tree_struct' has no member named 'it'
  if(function_cats.it != function_cats.items.end()) {
                   ^~
callbacks.cc:2965:39: error: 'struct tree_struct' has no member named 'items'
  if(function_cats.it != function_cats.items.end()) {
                                       ^~~~~
callbacks.cc:2966:26: error: 'struct tree_struct' has no member named 'it'
   item = &*function_cats.it;
                          ^~
callbacks.cc:2967:19: error: 'struct tree_struct' has no member named 'it'
   ++function_cats.it;
                   ^~
callbacks.cc:2968:9: error: 'struct tree_struct' has no member named 'it'
   item->it = item->items.begin();
         ^~
callbacks.cc:2968:20: error: 'struct tree_struct' has no member named 'items'
   item->it = item->items.begin();
                    ^~~~~
callbacks.cc:2972:2: error: 'str' was not declared in this scope
  str = "";
  ^~~
callbacks.cc:2972:2: note: suggested alternative: 'iter'
  str = "";
  ^~~
  iter
callbacks.cc:2977:16: error: 'struct tree_struct' has no member named 'item'
   str += item->item;
                ^~~~
callbacks.cc:2978:65: error: 'struct tree_struct' has no member named 'item'
   gtk_tree_store_set(tFunctionCategories_store, &iter, 0, item->item.c_str(), 1, str.c_str(), -1);
                                                                 ^~~~
callbacks.cc:2979:13: error: 'selected_function_category' was not declared in this scope
   if(str == selected_function_category) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:2979:13: note: suggested alternative: 'selected_function'
   if(str == selected_function_category) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
             selected_function
callbacks.cc:2983:23: error: 'struct tree_struct' has no member named 'it'
   while(item && item->it == item->items.end()) {
                       ^~
callbacks.cc:2983:35: error: 'struct tree_struct' has no member named 'items'
   while(item && item->it == item->items.end()) {
                                   ^~~~~
callbacks.cc:2985:16: error: 'string' is not a class, namespace, or enumeration
    if(str_i == string::npos) {
                ^~~~~~
callbacks.cc:2995:20: error: 'struct tree_struct' has no member named 'it'
    item2 = &*item->it;
                    ^~
callbacks.cc:2996:13: error: 'struct tree_struct' has no member named 'it'
    if(item->it == item->items.begin()) iter2 = iter;
             ^~
callbacks.cc:2996:25: error: 'struct tree_struct' has no member named 'items'
    if(item->it == item->items.begin()) iter2 = iter;
                         ^~~~~
callbacks.cc:2997:12: error: 'struct tree_struct' has no member named 'it'
    ++item->it;
            ^~
callbacks.cc:2999:10: error: 'struct tree_struct' has no member named 'it'
    item->it = item->items.begin();
          ^~
callbacks.cc:2999:21: error: 'struct tree_struct' has no member named 'items'
    item->it = item->items.begin();
                     ^~~~~
callbacks.cc:3002:20: error: 'struct tree_struct' has no member named 'objects'
  if(!function_cats.objects.empty()) {
                    ^~~~~~~
callbacks.cc:3007:6: error: 'selected_function_category' was not declared in this scope
   if(selected_function_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3007:6: note: suggested alternative: 'selected_function'
   if(selected_function_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      selected_function
callbacks.cc:3011:6: error: 'ia_functions' was not declared in this scope
  if(!ia_functions.empty()) {
      ^~~~~~~~~~~~
callbacks.cc:3011:6: note: suggested alternative: 'tFunctions'
  if(!ia_functions.empty()) {
      ^~~~~~~~~~~~
      tFunctions
callbacks.cc:3016:6: error: 'selected_function_category' was not declared in this scope
   if(selected_function_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3016:6: note: suggested alternative: 'selected_function'
   if(selected_function_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      selected_function
callbacks.cc:3022:3: error: 'selected_function_category' was not declared in this scope
   selected_function_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3022:3: note: suggested alternative: 'selected_function'
   selected_function_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_function
callbacks.cc: In function 'void on_tFunctionCategories_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:3060:3: error: 'selected_function_category' was not declared in this scope
   selected_function_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3060:3: note: suggested alternative: 'selected_function'
   selected_function_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_function
callbacks.cc:3069:4: error: 'string' was not declared in this scope
    string str = selected_function_category.substr(1, selected_function_category.length() - 1);
    ^~~~~~
callbacks.cc:3069:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3071:139: error: 'str' was not declared in this scope
     if(CALCULATOR->functions[i]->isActive() && CALCULATOR->functions[i]->category().substr(0, selected_function_category.length() - 1) == str) {
                                                                                                                                           ^~~
callbacks.cc:3071:139: note: suggested alternative: 'gstr'
     if(CALCULATOR->functions[i]->isActive() && CALCULATOR->functions[i]->category().substr(0, selected_function_category.length() - 1) == str) {
                                                                                                                                           ^~~
                                                                                                                                           gstr
callbacks.cc:3089:3: error: 'selected_function_category' was not declared in this scope
   selected_function_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3089:3: note: suggested alternative: 'selected_function'
   selected_function_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_function
callbacks.cc: In function 'void on_tFunctions_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:3112:5: error: 'string' was not declared in this scope
     string str, str2;
     ^~~~~~
callbacks.cc:3112:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3114:5: error: 'str' was not declared in this scope
     str += ename->name;
     ^~~
callbacks.cc:3114:5: note: suggested alternative: 'iter'
     str += ename->name;
     ^~~
     iter
callbacks.cc:3134:8: error: 'str2' was not declared in this scope
        str2 = arg->name();
        ^~~~
callbacks.cc:3134:8: note: suggested alternative: 'stat'
        str2 = arg->name();
        ^~~~
        stat
callbacks.cc:3136:8: error: 'str2' was not declared in this scope
        str2 = _("argument");
        ^~~~
callbacks.cc:3136:8: note: suggested alternative: 'stat'
        str2 = _("argument");
        ^~~~
        stat
callbacks.cc:3140:14: error: 'str2' was not declared in this scope
       str += str2;
              ^~~~
callbacks.cc:3140:14: note: suggested alternative: 'stat'
       str += str2;
              ^~~~
              stat
callbacks.cc:3202:8: error: 'str2' was not declared in this scope
        str2 = arg->printlong();
        ^~~~
callbacks.cc:3202:8: note: suggested alternative: 'stat'
        str2 = arg->printlong();
        ^~~~
        stat
callbacks.cc:3204:8: error: 'str2' was not declared in this scope
        str2 = default_arg.printlong();
        ^~~~
callbacks.cc:3204:8: note: suggested alternative: 'stat'
        str2 = default_arg.printlong();
        ^~~~
        stat
callbacks.cc:3207:8: error: 'str2' was not declared in this scope
        str2 += " (";
        ^~~~
callbacks.cc:3207:8: note: suggested alternative: 'stat'
        str2 += " (";
        ^~~~
        stat
callbacks.cc:3218:7: error: 'str2' was not declared in this scope
       str2 += "\n";
       ^~~~
callbacks.cc:3218:7: note: suggested alternative: 'stat'
       str2 += "\n";
       ^~~~
       stat
callbacks.cc: In function 'void update_variables_tree()':
callbacks.cc:3308:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:3308:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3310:16: error: 'struct tree_struct' has no member named 'it'
  variable_cats.it = variable_cats.items.begin();
                ^~
callbacks.cc:3310:35: error: 'struct tree_struct' has no member named 'items'
  variable_cats.it = variable_cats.items.begin();
                                   ^~~~~
callbacks.cc:3311:19: error: 'struct tree_struct' has no member named 'it'
  if(variable_cats.it != variable_cats.items.end()) {
                   ^~
callbacks.cc:3311:39: error: 'struct tree_struct' has no member named 'items'
  if(variable_cats.it != variable_cats.items.end()) {
                                       ^~~~~
callbacks.cc:3312:26: error: 'struct tree_struct' has no member named 'it'
   item = &*variable_cats.it;
                          ^~
callbacks.cc:3313:19: error: 'struct tree_struct' has no member named 'it'
   ++variable_cats.it;
                   ^~
callbacks.cc:3314:9: error: 'struct tree_struct' has no member named 'it'
   item->it = item->items.begin();
         ^~
callbacks.cc:3314:20: error: 'struct tree_struct' has no member named 'items'
   item->it = item->items.begin();
                    ^~~~~
callbacks.cc:3318:2: error: 'str' was not declared in this scope
  str = "";
  ^~~
callbacks.cc:3318:2: note: suggested alternative: 'iter'
  str = "";
  ^~~
  iter
callbacks.cc:3323:16: error: 'struct tree_struct' has no member named 'item'
   str += item->item;
                ^~~~
callbacks.cc:3324:65: error: 'struct tree_struct' has no member named 'item'
   gtk_tree_store_set(tVariableCategories_store, &iter, 0, item->item.c_str(), 1, str.c_str(), -1);
                                                                 ^~~~
callbacks.cc:3325:13: error: 'selected_variable_category' was not declared in this scope
   if(str == selected_variable_category) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3325:13: note: suggested alternative: 'selected_variable'
   if(str == selected_variable_category) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~
             selected_variable
callbacks.cc:3330:23: error: 'struct tree_struct' has no member named 'it'
   while(item && item->it == item->items.end()) {
                       ^~
callbacks.cc:3330:35: error: 'struct tree_struct' has no member named 'items'
   while(item && item->it == item->items.end()) {
                                   ^~~~~
callbacks.cc:3332:16: error: 'string' is not a class, namespace, or enumeration
    if(str_i == string::npos) {
                ^~~~~~
callbacks.cc:3342:20: error: 'struct tree_struct' has no member named 'it'
    item2 = &*item->it;
                    ^~
callbacks.cc:3343:13: error: 'struct tree_struct' has no member named 'it'
    if(item->it == item->items.begin()) iter2 = iter;
             ^~
callbacks.cc:3343:25: error: 'struct tree_struct' has no member named 'items'
    if(item->it == item->items.begin()) iter2 = iter;
                         ^~~~~
callbacks.cc:3344:12: error: 'struct tree_struct' has no member named 'it'
    ++item->it;
            ^~
callbacks.cc:3346:10: error: 'struct tree_struct' has no member named 'it'
    item->it = item->items.begin();
          ^~
callbacks.cc:3346:21: error: 'struct tree_struct' has no member named 'items'
    item->it = item->items.begin();
                     ^~~~~
callbacks.cc:3350:20: error: 'struct tree_struct' has no member named 'objects'
  if(!variable_cats.objects.empty()) {
                    ^~~~~~~
callbacks.cc:3355:6: error: 'selected_variable_category' was not declared in this scope
   if(selected_variable_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3355:6: note: suggested alternative: 'selected_variable'
   if(selected_variable_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      selected_variable
callbacks.cc:3359:6: error: 'ia_variables' was not declared in this scope
  if(!ia_variables.empty()) {
      ^~~~~~~~~~~~
callbacks.cc:3359:6: note: suggested alternative: 'tVariables'
  if(!ia_variables.empty()) {
      ^~~~~~~~~~~~
      tVariables
callbacks.cc:3364:6: error: 'selected_variable_category' was not declared in this scope
   if(selected_variable_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3364:6: note: suggested alternative: 'selected_variable'
   if(selected_variable_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      selected_variable
callbacks.cc:3370:3: error: 'selected_variable_category' was not declared in this scope
   selected_variable_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3370:3: note: suggested alternative: 'selected_variable'
   selected_variable_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_variable
callbacks.cc: In function 'void setVariableTreeItem(GtkTreeIter&, Variable*)':
callbacks.cc:3379:2: error: 'string' was not declared in this scope
  string value = "";
  ^~~~~~
callbacks.cc:3379:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3381:3: error: 'value' was not declared in this scope
   value = _("a previous result");
   ^~~~~
callbacks.cc:3381:3: note: suggested alternative: 'GValue'
   value = _("a previous result");
   ^~~~~
   GValue
callbacks.cc:3384:4: error: 'value' was not declared in this scope
    value = CALCULATOR->localizeExpression(((KnownVariable*) v)->expression());
    ^~~~~
callbacks.cc:3384:4: note: suggested alternative: 'GValue'
    value = CALCULATOR->localizeExpression(((KnownVariable*) v)->expression());
    ^~~~~
    GValue
callbacks.cc:3403:5: error: 'value' was not declared in this scope
     value = _("matrix");
     ^~~~~
callbacks.cc:3403:5: note: suggested alternative: 'GValue'
     value = _("matrix");
     ^~~~~
     GValue
callbacks.cc:3405:5: error: 'value' was not declared in this scope
     value = _("vector");
     ^~~~~
callbacks.cc:3405:5: note: suggested alternative: 'GValue'
     value = _("vector");
     ^~~~~
     GValue
callbacks.cc:3409:5: error: 'value' was not declared in this scope
     value = CALCULATOR->print(((KnownVariable*) v)->get(), 30, po);
     ^~~~~
callbacks.cc:3409:5: note: suggested alternative: 'GValue'
     value = CALCULATOR->print(((KnownVariable*) v)->get(), 30, po);
     ^~~~~
     GValue
callbacks.cc:3415:37: error: 'value' was not declared in this scope
     case ASSUMPTION_SIGN_POSITIVE: {value = _("positive"); break;}
                                     ^~~~~
callbacks.cc:3415:37: note: suggested alternative: 'GValue'
     case ASSUMPTION_SIGN_POSITIVE: {value = _("positive"); break;}
                                     ^~~~~
                                     GValue
callbacks.cc:3416:40: error: 'value' was not declared in this scope
     case ASSUMPTION_SIGN_NONPOSITIVE: {value = _("non-positive"); break;}
                                        ^~~~~
callbacks.cc:3416:40: note: suggested alternative: 'GValue'
     case ASSUMPTION_SIGN_NONPOSITIVE: {value = _("non-positive"); break;}
                                        ^~~~~
                                        GValue
callbacks.cc:3417:37: error: 'value' was not declared in this scope
     case ASSUMPTION_SIGN_NEGATIVE: {value = _("negative"); break;}
                                     ^~~~~
callbacks.cc:3417:37: note: suggested alternative: 'GValue'
     case ASSUMPTION_SIGN_NEGATIVE: {value = _("negative"); break;}
                                     ^~~~~
                                     GValue
callbacks.cc:3418:40: error: 'value' was not declared in this scope
     case ASSUMPTION_SIGN_NONNEGATIVE: {value = _("non-negative"); break;}
                                        ^~~~~
callbacks.cc:3418:40: note: suggested alternative: 'GValue'
     case ASSUMPTION_SIGN_NONNEGATIVE: {value = _("non-negative"); break;}
                                        ^~~~~
                                        GValue
callbacks.cc:3419:36: error: 'value' was not declared in this scope
     case ASSUMPTION_SIGN_NONZERO: {value = _("non-zero"); break;}
                                    ^~~~~
callbacks.cc:3419:36: note: suggested alternative: 'GValue'
     case ASSUMPTION_SIGN_NONZERO: {value = _("non-zero"); break;}
                                    ^~~~~
                                    GValue
callbacks.cc:3422:8: error: 'value' was not declared in this scope
    if(!value.empty() && ((UnknownVariable*) v)->assumptions()->type() != ASSUMPTION_TYPE_NONE) value += " ";
        ^~~~~
callbacks.cc:3422:8: note: suggested alternative: 'GValue'
    if(!value.empty() && ((UnknownVariable*) v)->assumptions()->type() != ASSUMPTION_TYPE_NONE) value += " ";
        ^~~~~
        GValue
callbacks.cc:3424:36: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_INTEGER: {value += _("integer"); break;}
                                    ^~~~~
callbacks.cc:3424:36: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_INTEGER: {value += _("integer"); break;}
                                    ^~~~~
                                    GValue
callbacks.cc:3425:37: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_RATIONAL: {value += _("rational"); break;}
                                     ^~~~~
callbacks.cc:3425:37: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_RATIONAL: {value += _("rational"); break;}
                                     ^~~~~
                                     GValue
callbacks.cc:3426:33: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_REAL: {value += _("real"); break;}
                                 ^~~~~
callbacks.cc:3426:33: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_REAL: {value += _("real"); break;}
                                 ^~~~~
                                 GValue
callbacks.cc:3427:36: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_COMPLEX: {value += _("complex"); break;}
                                    ^~~~~
callbacks.cc:3427:36: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_COMPLEX: {value += _("complex"); break;}
                                    ^~~~~
                                    GValue
callbacks.cc:3428:35: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_NUMBER: {value += _("number"); break;}
                                   ^~~~~
callbacks.cc:3428:35: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_NUMBER: {value += _("number"); break;}
                                   ^~~~~
                                   GValue
callbacks.cc:3429:38: error: 'value' was not declared in this scope
     case ASSUMPTION_TYPE_NONMATRIX: {value += _("(not matrix)"); break;}
                                      ^~~~~
callbacks.cc:3429:38: note: suggested alternative: 'GValue'
     case ASSUMPTION_TYPE_NONMATRIX: {value += _("(not matrix)"); break;}
                                      ^~~~~
                                      GValue
callbacks.cc:3432:7: error: 'value' was not declared in this scope
    if(value.empty()) value = _("unknown");
       ^~~~~
callbacks.cc:3432:7: note: suggested alternative: 'GValue'
    if(value.empty()) value = _("unknown");
       ^~~~~
       GValue
callbacks.cc:3434:4: error: 'value' was not declared in this scope
    value = _("default assumptions");
    ^~~~~
callbacks.cc:3434:4: note: suggested alternative: 'GValue'
    value = _("default assumptions");
    ^~~~~
    GValue
callbacks.cc:3437:77: error: 'value' was not declared in this scope
  gtk_list_store_set(tVariables_store, &iter2, 0, v->title(true).c_str(), 1, value.c_str(), 2, (gpointer) v, 3, TRUE, -1);
                                                                             ^~~~~
callbacks.cc:3437:77: note: suggested alternative: 'GValue'
  gtk_list_store_set(tVariables_store, &iter2, 0, v->title(true).c_str(), 1, value.c_str(), 2, (gpointer) v, 3, TRUE, -1);
                                                                             ^~~~~
                                                                             GValue
callbacks.cc: In function 'void on_tVariableCategories_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:3467:3: error: 'selected_variable_category' was not declared in this scope
   selected_variable_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3467:3: note: suggested alternative: 'selected_variable'
   selected_variable_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_variable
callbacks.cc:3477:4: error: 'string' was not declared in this scope
    string str = selected_variable_category.substr(1, selected_variable_category.length() - 1);
    ^~~~~~
callbacks.cc:3477:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3479:139: error: 'str' was not declared in this scope
     if(CALCULATOR->variables[i]->isActive() && CALCULATOR->variables[i]->category().substr(0, selected_variable_category.length() - 1) == str) {
                                                                                                                                           ^~~
callbacks.cc:3479:139: note: suggested alternative: 'gstr'
     if(CALCULATOR->variables[i]->isActive() && CALCULATOR->variables[i]->category().substr(0, selected_variable_category.length() - 1) == str) {
                                                                                                                                           ^~~
                                                                                                                                           gstr
callbacks.cc:3499:3: error: 'selected_variable_category' was not declared in this scope
   selected_variable_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3499:3: note: suggested alternative: 'selected_variable'
   selected_variable_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   selected_variable
callbacks.cc: In function 'void update_units_tree()':
callbacks.cc:3560:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:3560:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3562:12: error: 'struct tree_struct' has no member named 'it'
  unit_cats.it = unit_cats.items.begin();
            ^~
callbacks.cc:3562:27: error: 'struct tree_struct' has no member named 'items'
  unit_cats.it = unit_cats.items.begin();
                           ^~~~~
callbacks.cc:3563:15: error: 'struct tree_struct' has no member named 'it'
  if(unit_cats.it != unit_cats.items.end()) {
               ^~
callbacks.cc:3563:31: error: 'struct tree_struct' has no member named 'items'
  if(unit_cats.it != unit_cats.items.end()) {
                               ^~~~~
callbacks.cc:3564:22: error: 'struct tree_struct' has no member named 'it'
   item = &*unit_cats.it;
                      ^~
callbacks.cc:3565:15: error: 'struct tree_struct' has no member named 'it'
   ++unit_cats.it;
               ^~
callbacks.cc:3566:9: error: 'struct tree_struct' has no member named 'it'
   item->it = item->items.begin();
         ^~
callbacks.cc:3566:20: error: 'struct tree_struct' has no member named 'items'
   item->it = item->items.begin();
                    ^~~~~
callbacks.cc:3570:2: error: 'str' was not declared in this scope
  str = "";
  ^~~
callbacks.cc:3570:2: note: suggested alternative: 'iter'
  str = "";
  ^~~
  iter
callbacks.cc:3575:16: error: 'struct tree_struct' has no member named 'item'
   str += item->item;
                ^~~~
callbacks.cc:3576:61: error: 'struct tree_struct' has no member named 'item'
   gtk_tree_store_set(tUnitCategories_store, &iter, 0, item->item.c_str(), 1, str.c_str(), -1);
                                                             ^~~~
callbacks.cc:3577:13: error: 'selected_unit_category' was not declared in this scope
   if(str == selected_unit_category) {
             ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3577:13: note: suggested alternative: 'selected_unit'
   if(str == selected_unit_category) {
             ^~~~~~~~~~~~~~~~~~~~~~
             selected_unit
callbacks.cc:3581:23: error: 'struct tree_struct' has no member named 'it'
   while(item && item->it == item->items.end()) {
                       ^~
callbacks.cc:3581:35: error: 'struct tree_struct' has no member named 'items'
   while(item && item->it == item->items.end()) {
                                   ^~~~~
callbacks.cc:3583:16: error: 'string' is not a class, namespace, or enumeration
    if(str_i == string::npos) {
                ^~~~~~
callbacks.cc:3593:20: error: 'struct tree_struct' has no member named 'it'
    item2 = &*item->it;
                    ^~
callbacks.cc:3594:13: error: 'struct tree_struct' has no member named 'it'
    if(item->it == item->items.begin()) iter2 = iter;
             ^~
callbacks.cc:3594:25: error: 'struct tree_struct' has no member named 'items'
    if(item->it == item->items.begin()) iter2 = iter;
                         ^~~~~
callbacks.cc:3595:12: error: 'struct tree_struct' has no member named 'it'
    ++item->it;
            ^~
callbacks.cc:3597:10: error: 'struct tree_struct' has no member named 'it'
    item->it = item->items.begin();
          ^~
callbacks.cc:3597:21: error: 'struct tree_struct' has no member named 'items'
    item->it = item->items.begin();
                     ^~~~~
callbacks.cc:3600:16: error: 'struct tree_struct' has no member named 'objects'
  if(!unit_cats.objects.empty()) {
                ^~~~~~~
callbacks.cc:3604:6: error: 'selected_unit_category' was not declared in this scope
   if(selected_unit_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3604:6: note: suggested alternative: 'selected_unit'
   if(selected_unit_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~
      selected_unit
callbacks.cc:3609:6: error: 'ia_units' was not declared in this scope
  if(!ia_units.empty()) {
      ^~~~~~~~
callbacks.cc:3609:6: note: suggested alternative: 'tUnits'
  if(!ia_units.empty()) {
      ^~~~~~~~
      tUnits
callbacks.cc:3612:6: error: 'selected_unit_category' was not declared in this scope
   if(selected_unit_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3612:6: note: suggested alternative: 'selected_unit'
   if(selected_unit_category == _("Inactive")) {
      ^~~~~~~~~~~~~~~~~~~~~~
      selected_unit
callbacks.cc:3619:3: error: 'selected_unit_category' was not declared in this scope
   selected_unit_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3619:3: note: suggested alternative: 'selected_unit'
   selected_unit_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~
   selected_unit
callbacks.cc: In function 'void setUnitTreeItem(GtkTreeIter&, Unit*)':
callbacks.cc:3628:2: error: 'string' was not declared in this scope
  string snames, sbase;
  ^~~~~~
callbacks.cc:3628:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3632:13: error: 'snames' was not declared in this scope
   if(i > 1) snames += " / ";
             ^~~~~~
callbacks.cc:3632:13: note: suggested alternative: 'tNames'
   if(i > 1) snames += " / ";
             ^~~~~~
             tNames
callbacks.cc:3633:3: error: 'snames' was not declared in this scope
   snames += u->getName(i).name;
   ^~~~~~
callbacks.cc:3633:3: note: suggested alternative: 'tNames'
   snames += u->getName(i).name;
   ^~~~~~
   tNames
callbacks.cc:3638:4: error: 'snames' was not declared in this scope
    snames = "";
    ^~~~~~
callbacks.cc:3638:4: note: suggested alternative: 'tNames'
    snames = "";
    ^~~~~~
    tNames
callbacks.cc:3639:4: error: 'sbase' was not declared in this scope
    sbase = ((CompositeUnit*) u)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) tUnits);
    ^~~~~
callbacks.cc:3639:4: note: suggested alternative: 'to_base'
    sbase = ((CompositeUnit*) u)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) tUnits);
    ^~~~~
    to_base
callbacks.cc:3644:4: error: 'sbase' was not declared in this scope
    sbase = au->firstBaseUnit()->preferredDisplayName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) tUnits).name;
    ^~~~~
callbacks.cc:3644:4: note: suggested alternative: 'to_base'
    sbase = au->firstBaseUnit()->preferredDisplayName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) tUnits).name;
    ^~~~~
    to_base
callbacks.cc:3652:4: error: 'sbase' was not declared in this scope
    sbase = "";
    ^~~~~
callbacks.cc:3652:4: note: suggested alternative: 'to_base'
    sbase = "";
    ^~~~~
    to_base
callbacks.cc:3657:107: error: 'snames' was not declared in this scope
  gtk_list_store_set(tUnits_store, &iter2, UNITS_TITLE_COLUMN, u->title(true).c_str(), UNITS_NAMES_COLUMN, snames.c_str(), UNITS_BASE_COLUMN, sbase.c_str(), UNITS_POINTER_COLUMN, (gpointer) u, UNITS_VISIBLE_COLUMN, TRUE, UNITS_VISIBLE_COLUMN_CONVERT, TRUE, -1);
                                                                                                           ^~~~~~
callbacks.cc:3657:107: note: suggested alternative: 'tNames'
  gtk_list_store_set(tUnits_store, &iter2, UNITS_TITLE_COLUMN, u->title(true).c_str(), UNITS_NAMES_COLUMN, snames.c_str(), UNITS_BASE_COLUMN, sbase.c_str(), UNITS_POINTER_COLUMN, (gpointer) u, UNITS_VISIBLE_COLUMN, TRUE, UNITS_VISIBLE_COLUMN_CONVERT, TRUE, -1);
                                                                                                           ^~~~~~
                                                                                                           tNames
callbacks.cc:3657:142: error: 'sbase' was not declared in this scope
  gtk_list_store_set(tUnits_store, &iter2, UNITS_TITLE_COLUMN, u->title(true).c_str(), UNITS_NAMES_COLUMN, snames.c_str(), UNITS_BASE_COLUMN, sbase.c_str(), UNITS_POINTER_COLUMN, (gpointer) u, UNITS_VISIBLE_COLUMN, TRUE, UNITS_VISIBLE_COLUMN_CONVERT, TRUE, -1);
                                                                                                                                              ^~~~~
callbacks.cc:3657:142: note: suggested alternative: 'to_base'
  gtk_list_store_set(tUnits_store, &iter2, UNITS_TITLE_COLUMN, u->title(true).c_str(), UNITS_NAMES_COLUMN, snames.c_str(), UNITS_BASE_COLUMN, sbase.c_str(), UNITS_POINTER_COLUMN, (gpointer) u, UNITS_VISIBLE_COLUMN, TRUE, UNITS_VISIBLE_COLUMN_CONVERT, TRUE, -1);
                                                                                                                                              ^~~~~
                                                                                                                                              to_base
callbacks.cc:3659:3: error: 'unordered_map' was not declared in this scope
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
   ^~~~~~~~~~~~~
callbacks.cc:3659:3: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:3659:34: error: expected primary-expression before '*' token
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                  ^
callbacks.cc:3659:35: error: expected primary-expression before '>' token
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                   ^
callbacks.cc:3659:38: error: '::const_iterator' has not been declared
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                      ^~~~~~~~~~~~~~
callbacks.cc:3659:38: note: suggested alternative: 'last_is_operator'
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                      ^~~~~~~~~~~~~~
                                      last_is_operator
callbacks.cc:3660:6: error: 'it_flag' was not declared in this scope
   if(it_flag != flag_images.end()) {
      ^~~~~~~
callbacks.cc:3660:6: note: suggested alternative: 'to_float'
   if(it_flag != flag_images.end()) {
      ^~~~~~~
      to_float
callbacks.cc:3660:17: error: 'flag_images' was not declared in this scope
   if(it_flag != flag_images.end()) {
                 ^~~~~~~~~~~
callbacks.cc: In function 'void on_tUnitCategories_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:3700:3: error: 'selected_unit_category' was not declared in this scope
   selected_unit_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3700:3: note: suggested alternative: 'selected_unit'
   selected_unit_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~
   selected_unit
callbacks.cc:3709:4: error: 'string' was not declared in this scope
    string str = selected_unit_category.substr(1, selected_unit_category.length() - 1);
    ^~~~~~
callbacks.cc:3709:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3711:127: error: 'str' was not declared in this scope
     if(CALCULATOR->units[i]->isActive() && CALCULATOR->units[i]->category().substr(0, selected_unit_category.length() - 1) == str) {
                                                                                                                               ^~~
callbacks.cc:3711:127: note: suggested alternative: 'gstr'
     if(CALCULATOR->units[i]->isActive() && CALCULATOR->units[i]->category().substr(0, selected_unit_category.length() - 1) == str) {
                                                                                                                               ^~~
                                                                                                                               gstr
callbacks.cc:3735:3: error: 'selected_unit_category' was not declared in this scope
   selected_unit_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3735:3: note: suggested alternative: 'selected_unit'
   selected_unit_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~
   selected_unit
callbacks.cc: In function 'void update_unit_selector_tree()':
callbacks.cc:3797:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:3797:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3799:12: error: 'struct tree_struct' has no member named 'it'
  unit_cats.it = unit_cats.items.begin();
            ^~
callbacks.cc:3799:27: error: 'struct tree_struct' has no member named 'items'
  unit_cats.it = unit_cats.items.begin();
                           ^~~~~
callbacks.cc:3800:15: error: 'struct tree_struct' has no member named 'it'
  if(unit_cats.it != unit_cats.items.end()) {
               ^~
callbacks.cc:3800:31: error: 'struct tree_struct' has no member named 'items'
  if(unit_cats.it != unit_cats.items.end()) {
                               ^~~~~
callbacks.cc:3801:22: error: 'struct tree_struct' has no member named 'it'
   item = &*unit_cats.it;
                      ^~
callbacks.cc:3802:15: error: 'struct tree_struct' has no member named 'it'
   ++unit_cats.it;
               ^~
callbacks.cc:3803:9: error: 'struct tree_struct' has no member named 'it'
   item->it = item->items.begin();
         ^~
callbacks.cc:3803:20: error: 'struct tree_struct' has no member named 'items'
   item->it = item->items.begin();
                    ^~~~~
callbacks.cc:3807:2: error: 'str' was not declared in this scope
  str = "";
  ^~~
callbacks.cc:3807:2: note: suggested alternative: 'iter'
  str = "";
  ^~~
  iter
callbacks.cc:3809:2: error: 'convert_category_map' was not declared in this scope
  convert_category_map.clear();
  ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:3809:2: note: suggested alternative: 'convert_to_unit'
  convert_category_map.clear();
  ^~~~~~~~~~~~~~~~~~~~
  convert_to_unit
callbacks.cc:3813:16: error: 'struct tree_struct' has no member named 'item'
   str += item->item;
                ^~~~
callbacks.cc:3814:69: error: 'struct tree_struct' has no member named 'item'
   gtk_tree_store_set(tUnitSelectorCategories_store, &iter, 0, item->item.c_str(), 1, str.c_str(), -1);
                                                                     ^~~~
callbacks.cc:3815:13: error: 'selected_unit_category' was not declared in this scope
   if(str == selected_unit_category) {
             ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3815:13: note: suggested alternative: 'selected_unit'
   if(str == selected_unit_category) {
             ^~~~~~~~~~~~~~~~~~~~~~
             selected_unit
callbacks.cc:3820:23: error: 'struct tree_struct' has no member named 'it'
   while(item && item->it == item->items.end()) {
                       ^~
callbacks.cc:3820:35: error: 'struct tree_struct' has no member named 'items'
   while(item && item->it == item->items.end()) {
                                   ^~~~~
callbacks.cc:3822:16: error: 'string' is not a class, namespace, or enumeration
    if(str_i == string::npos) {
                ^~~~~~
callbacks.cc:3832:20: error: 'struct tree_struct' has no member named 'it'
    item2 = &*item->it;
                    ^~
callbacks.cc:3833:13: error: 'struct tree_struct' has no member named 'it'
    if(item->it == item->items.begin()) iter2 = iter;
             ^~
callbacks.cc:3833:25: error: 'struct tree_struct' has no member named 'items'
    if(item->it == item->items.begin()) iter2 = iter;
                         ^~~~~
callbacks.cc:3834:12: error: 'struct tree_struct' has no member named 'it'
    ++item->it;
            ^~
callbacks.cc:3836:10: error: 'struct tree_struct' has no member named 'it'
    item->it = item->items.begin();
          ^~
callbacks.cc:3836:21: error: 'struct tree_struct' has no member named 'items'
    item->it = item->items.begin();
                     ^~~~~
callbacks.cc:3839:16: error: 'struct tree_struct' has no member named 'objects'
  if(!unit_cats.objects.empty()) {
                ^~~~~~~
callbacks.cc:3844:6: error: 'selected_unit_category' was not declared in this scope
   if(selected_unit_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3844:6: note: suggested alternative: 'selected_unit'
   if(selected_unit_category == _("Uncategorized")) {
      ^~~~~~~~~~~~~~~~~~~~~~
      selected_unit
callbacks.cc:3851:3: error: 'selected_unit_category' was not declared in this scope
   selected_unit_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:3851:3: note: suggested alternative: 'selected_unit'
   selected_unit_category = _("All");
   ^~~~~~~~~~~~~~~~~~~~~~
   selected_unit
callbacks.cc: In function 'void on_functions_entry_search_changed(GtkEntry*, gpointer)':
callbacks.cc:3863:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:3863:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3864:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:3864:20: note: suggested alternative: 'iter'
  remove_blank_ends(str);
                    ^~~
                    iter
callbacks.cc:3870:11: error: expected ';' before 'title'
    string title = u->title(true);
           ^~~~~
callbacks.cc:3871:22: error: 'title' was not declared in this scope
    remove_blank_ends(title);
                      ^~~~~
callbacks.cc:3871:22: note: suggested alternative: 'time'
    remove_blank_ends(title);
                      ^~~~~
                      time
callbacks.cc:3878:13: error: 'string' is not a class, namespace, or enumeration
     if(i == string::npos) break;
             ^~~~~~
callbacks.cc: In function 'void on_variables_entry_search_changed(GtkEntry*, gpointer)':
callbacks.cc:3918:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:3918:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3919:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:3919:20: note: suggested alternative: 'iter'
  remove_blank_ends(str);
                    ^~~
                    iter
callbacks.cc:3925:11: error: expected ';' before 'title'
    string title = u->title(true);
           ^~~~~
callbacks.cc:3926:22: error: 'title' was not declared in this scope
    remove_blank_ends(title);
                      ^~~~~
callbacks.cc:3926:22: note: suggested alternative: 'time'
    remove_blank_ends(title);
                      ^~~~~
                      time
callbacks.cc:3933:13: error: 'string' is not a class, namespace, or enumeration
     if(i == string::npos) break;
             ^~~~~~
callbacks.cc: In function 'void on_units_entry_search_changed(GtkEntry*, gpointer)':
callbacks.cc:3974:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:3974:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:3975:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:3975:20: note: suggested alternative: 'iter'
  remove_blank_ends(str);
                    ^~~
                    iter
callbacks.cc: In function 'void on_units_convert_search_changed(GtkEntry*, gpointer)':
callbacks.cc:4006:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:4006:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4007:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:4007:20: note: suggested alternative: 'iter'
  remove_blank_ends(str);
                    ^~~
                    iter
callbacks.cc: In function 'void on_convert_entry_search_changed(GtkEntry*, gpointer)':
callbacks.cc:4035:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:4035:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4036:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:4036:20: note: suggested alternative: 'iter'
  remove_blank_ends(str);
                    ^~~
                    iter
callbacks.cc: In function 'void setUnitSelectorTreeItem(GtkTreeIter&, Unit*)':
callbacks.cc:4069:2: error: 'string' was not declared in this scope
  string snames, sbase;
  ^~~~~~
callbacks.cc:4069:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4071:3: error: 'unordered_map' was not declared in this scope
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
   ^~~~~~~~~~~~~
callbacks.cc:4071:3: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:4071:34: error: expected primary-expression before '*' token
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                  ^
callbacks.cc:4071:35: error: expected primary-expression before '>' token
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                   ^
callbacks.cc:4071:38: error: '::const_iterator' has not been declared
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                      ^~~~~~~~~~~~~~
callbacks.cc:4071:38: note: suggested alternative: 'last_is_operator'
   unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(u->referenceName());
                                      ^~~~~~~~~~~~~~
                                      last_is_operator
callbacks.cc:4072:98: error: 'it_flag' was not declared in this scope
   gtk_list_store_set(tUnitSelector_store, &iter2, 0, u->title(true).c_str(), 1, (gpointer) u, 2, it_flag == flag_images.end() ? NULL : it_flag->second, 3, TRUE, -1);
                                                                                                  ^~~~~~~
callbacks.cc:4072:98: note: suggested alternative: 'to_float'
   gtk_list_store_set(tUnitSelector_store, &iter2, 0, u->title(true).c_str(), 1, (gpointer) u, 2, it_flag == flag_images.end() ? NULL : it_flag->second, 3, TRUE, -1);
                                                                                                  ^~~~~~~
                                                                                                  to_float
callbacks.cc:4072:109: error: 'flag_images' was not declared in this scope
   gtk_list_store_set(tUnitSelector_store, &iter2, 0, u->title(true).c_str(), 1, (gpointer) u, 2, it_flag == flag_images.end() ? NULL : it_flag->second, 3, TRUE, -1);
                                                                                                             ^~~~~~~~~~~
callbacks.cc: In function 'void on_tUnitSelectorCategories_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:4100:3: error: 'selected_unit_selector_category' was not declared in this scope
   selected_unit_selector_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:4100:3: note: suggested alternative: 'block_unit_selector_convert'
   selected_unit_selector_category = gstr;
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   block_unit_selector_convert
callbacks.cc:4108:4: error: 'string' was not declared in this scope
    string str = selected_unit_selector_category.substr(1, selected_unit_selector_category.length() - 1);
    ^~~~~~
callbacks.cc:4108:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4110:213: error: 'str' was not declared in this scope
     if(CALCULATOR->units[i]->isActive() && (!CALCULATOR->units[i]->isHidden() || CALCULATOR->units[i]->isCurrency()) && CALCULATOR->units[i]->category().substr(0, selected_unit_selector_category.length() - 1) == str) {
                                                                                                                                                                                                                     ^~~
callbacks.cc:4110:213: note: suggested alternative: 'gstr'
     if(CALCULATOR->units[i]->isActive() && (!CALCULATOR->units[i]->isHidden() || CALCULATOR->units[i]->isCurrency()) && CALCULATOR->units[i]->category().substr(0, selected_unit_selector_category.length() - 1) == str) {
                                                                                                                                                                                                                     ^~~
                                                                                                                                                                                                                     gstr
callbacks.cc:4160:3: error: 'selected_unit_selector_category' was not declared in this scope
   selected_unit_selector_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:4160:3: note: suggested alternative: 'block_unit_selector_convert'
   selected_unit_selector_category = "";
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   block_unit_selector_convert
callbacks.cc: In function 'void on_tDatasets_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:4264:3: error: 'string' was not declared in this scope
   string str, str2;
   ^~~~~~
callbacks.cc:4264:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4266:4: error: 'str' was not declared in this scope
    str = ds->description();
    ^~~
callbacks.cc:4266:4: note: suggested alternative: 'iter'
    str = ds->description();
    ^~~
    iter
callbacks.cc:4272:3: error: 'str' was not declared in this scope
   str = _("Properties");
   ^~~
callbacks.cc:4272:3: note: suggested alternative: 'iter'
   str = _("Properties");
   ^~~
   iter
callbacks.cc:4333:6: error: 'str2' was not declared in this scope
      str2 = arg->name();
      ^~~~
callbacks.cc:4333:6: note: suggested alternative: 'iter2'
      str2 = arg->name();
      ^~~~
      iter2
callbacks.cc:4335:6: error: 'str2' was not declared in this scope
      str2 = _("argument");
      ^~~~
callbacks.cc:4335:6: note: suggested alternative: 'iter2'
      str2 = _("argument");
      ^~~~
      iter2
callbacks.cc:4339:12: error: 'str2' was not declared in this scope
     str += str2;
            ^~~~
callbacks.cc:4339:12: note: suggested alternative: 'iter2'
     str += str2;
            ^~~~
            iter2
callbacks.cc: In function 'void on_dataset_button_function_clicked(GtkButton*, gpointer)':
callbacks.cc:4390:3: error: 'string' was not declared in this scope
   string str = ds->preferredDisplayName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) w).name;
   ^~~~~~
callbacks.cc:4390:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4391:3: error: 'str' was not declared in this scope
   str += "(";
   ^~~
callbacks.cc: In function 'void on_tDataObjects_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:4420:3: error: 'string' was not declared in this scope
   string sval;
   ^~~~~~
callbacks.cc:4420:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4426:10: error: expected ';' before 'str'
   string str;
          ^~~
callbacks.cc:4429:5: error: 'sval' was not declared in this scope
     sval = o->getPropertyDisplayString(dp);
     ^~~~
callbacks.cc:4429:5: note: suggested alternative: 'stat'
     sval = o->getPropertyDisplayString(dp);
     ^~~~
     stat
callbacks.cc:4432:6: error: 'str' was not declared in this scope
      str = "<span weight=\"bold\">"; str += dp->title(); str += ":"; str += "</span>";
      ^~~
callbacks.cc: In function 'void update_function_arguments_list(MathFunction*)':
callbacks.cc:4637:3: error: 'string' was not declared in this scope
   string str, str2;
   ^~~~~~
callbacks.cc:4637:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:4643:5: error: 'str' was not declared in this scope
     str = arg->printlong();
     ^~~
callbacks.cc:4643:5: note: suggested alternative: 'iter'
     str = arg->printlong();
     ^~~
     iter
callbacks.cc:4644:5: error: 'str2' was not declared in this scope
     str2 = arg->name();
     ^~~~
callbacks.cc:4644:5: note: suggested alternative: 'stat'
     str2 = arg->name();
     ^~~~
     stat
callbacks.cc:4646:5: error: 'str' was not declared in this scope
     str = defarg.printlong();
     ^~~
callbacks.cc:4646:5: note: suggested alternative: 'iter'
     str = defarg.printlong();
     ^~~
     iter
callbacks.cc:4647:5: error: 'str2' was not declared in this scope
     str2 = "";
     ^~~~
callbacks.cc:4647:5: note: suggested alternative: 'stat'
     str2 = "";
     ^~~~
     stat
callbacks.cc:4649:59: error: 'str2' was not declared in this scope
    gtk_list_store_set(tFunctionArguments_store, &iter, 0, str2.c_str(), 1, str.c_str(), 2, (gpointer) arg, -1);
                                                           ^~~~
callbacks.cc:4649:59: note: suggested alternative: 'stat'
    gtk_list_store_set(tFunctionArguments_store, &iter, 0, str2.c_str(), 1, str.c_str(), 2, (gpointer) arg, -1);
                                                           ^~~~
                                                           stat
callbacks.cc:4649:76: error: 'str' was not declared in this scope
    gtk_list_store_set(tFunctionArguments_store, &iter, 0, str2.c_str(), 1, str.c_str(), 2, (gpointer) arg, -1);
                                                                            ^~~
callbacks.cc:4649:76: note: suggested alternative: 'iter'
    gtk_list_store_set(tFunctionArguments_store, &iter, 0, str2.c_str(), 1, str.c_str(), 2, (gpointer) arg, -1);
                                                                            ^~~
                                                                            iter
callbacks.cc: In function 'void create_umenu()':
callbacks.cc:4695:12: error: 'struct tree_struct' has no member named 'rit'
  unit_cats.rit = unit_cats.items.rbegin();
            ^~~
callbacks.cc:4695:28: error: 'struct tree_struct' has no member named 'items'
  unit_cats.rit = unit_cats.items.rbegin();
                            ^~~~~
callbacks.cc:4696:15: error: 'struct tree_struct' has no member named 'rit'
  if(unit_cats.rit != unit_cats.items.rend()) {
               ^~~
callbacks.cc:4696:32: error: 'struct tree_struct' has no member named 'items'
  if(unit_cats.rit != unit_cats.items.rend()) {
                                ^~~~~
callbacks.cc:4697:23: error: 'struct tree_struct' has no member named 'rit'
   titem = &*unit_cats.rit;
                       ^~~
callbacks.cc:4698:15: error: 'struct tree_struct' has no member named 'rit'
   ++unit_cats.rit;
               ^~~
callbacks.cc:4699:10: error: 'struct tree_struct' has no member named 'rit'
   titem->rit = titem->items.rbegin();
          ^~~
callbacks.cc:4699:23: error: 'struct tree_struct' has no member named 'items'
   titem->rit = titem->items.rbegin();
                       ^~~~~
callbacks.cc:4703:2: error: 'stack' was not declared in this scope
  stack<GtkWidget*> menus;
  ^~~~~
callbacks.cc:4703:2: note: suggested alternative:
In file included from /usr/include/g++/stack:61:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:19,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_stack.h:99:11: note:   'std::stack'
     class stack
           ^~~~~
callbacks.cc:4703:17: error: expected primary-expression before '*' token
  stack<GtkWidget*> menus;
                 ^
callbacks.cc:4703:18: error: expected primary-expression before '>' token
  stack<GtkWidget*> menus;
                  ^
callbacks.cc:4703:20: error: 'menus' was not declared in this scope
  stack<GtkWidget*> menus;
                    ^~~~~
callbacks.cc:4703:20: note: suggested alternative: 'enum'
  stack<GtkWidget*> menus;
                    ^~~~~
                    enum
callbacks.cc:4707:25: error: 'struct tree_struct' has no member named 'items'
   bool b_empty = titem->items.size() == 0;
                         ^~~~~
callbacks.cc:4709:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4710:24: error: 'struct tree_struct' has no member named 'objects'
     u = (Unit*) titem->objects[i];
                        ^~~~~~~
In file included from callbacks.cc:29:0:
callbacks.cc:4718:32: error: 'struct tree_struct' has no member named 'item'
    SUBMENU_ITEM_PREPEND(titem->item.c_str(), sub3)
                                ^
interface.h:34:72: note: in definition of macro 'SUBMENU_ITEM_PREPEND'
 #define SUBMENU_ITEM_PREPEND(x,y)  item = gtk_menu_item_new_with_label(x); gtk_widget_show (item); gtk_menu_shell_prepend(GTK_MENU_SHELL(y), item); sub = gtk_menu_new(); gtk_widget_show (sub); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), sub);
                                                                        ^
callbacks.cc:4722:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4723:24: error: 'struct tree_struct' has no member named 'objects'
     u = (Unit*) titem->objects[i];
                        ^~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:4726:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)}
                         ^
callbacks.cc:4732:34: error: 'struct tree_struct' has no member named 'objects'
     for(size_t i = 0; i < titem->objects.size(); i++) {
                                  ^~~~~~~
callbacks.cc:4733:25: error: 'struct tree_struct' has no member named 'objects'
      u = (Unit*) titem->objects[i];
                         ^~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:4735:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), insert_unit, u)
       ^
callbacks.cc:4742:25: error: 'struct tree_struct' has no member named 'rit'
   while(titem && titem->rit == titem->items.rend()) {
                         ^~~
callbacks.cc:4742:39: error: 'struct tree_struct' has no member named 'items'
   while(titem && titem->rit == titem->items.rend()) {
                                       ^~~~~
callbacks.cc:4748:22: error: 'struct tree_struct' has no member named 'rit'
    titem2 = &*titem->rit;
                      ^~~
callbacks.cc:4749:13: error: 'struct tree_struct' has no member named 'rit'
    ++titem->rit;
             ^~~
callbacks.cc:4751:11: error: 'struct tree_struct' has no member named 'rit'
    titem->rit = titem->items.rbegin();
           ^~~
callbacks.cc:4751:24: error: 'struct tree_struct' has no member named 'items'
    titem->rit = titem->items.rbegin();
                        ^~~~~
callbacks.cc:4755:34: error: 'struct tree_struct' has no member named 'objects'
  for(size_t i = 0; i < unit_cats.objects.size(); i++) {
                                  ^~~~~~~
callbacks.cc:4756:25: error: 'struct tree_struct' has no member named 'objects'
   u = (Unit*) unit_cats.objects[i];
                         ^~~~~~~
callbacks.cc: In function 'void create_umenu2()':
callbacks.cc:4782:12: error: 'struct tree_struct' has no member named 'rit'
  unit_cats.rit = unit_cats.items.rbegin();
            ^~~
callbacks.cc:4782:28: error: 'struct tree_struct' has no member named 'items'
  unit_cats.rit = unit_cats.items.rbegin();
                            ^~~~~
callbacks.cc:4783:15: error: 'struct tree_struct' has no member named 'rit'
  if(unit_cats.rit != unit_cats.items.rend()) {
               ^~~
callbacks.cc:4783:32: error: 'struct tree_struct' has no member named 'items'
  if(unit_cats.rit != unit_cats.items.rend()) {
                                ^~~~~
callbacks.cc:4784:23: error: 'struct tree_struct' has no member named 'rit'
   titem = &*unit_cats.rit;
                       ^~~
callbacks.cc:4785:15: error: 'struct tree_struct' has no member named 'rit'
   ++unit_cats.rit;
               ^~~
callbacks.cc:4786:10: error: 'struct tree_struct' has no member named 'rit'
   titem->rit = titem->items.rbegin();
          ^~~
callbacks.cc:4786:23: error: 'struct tree_struct' has no member named 'items'
   titem->rit = titem->items.rbegin();
                       ^~~~~
callbacks.cc:4790:2: error: 'stack' was not declared in this scope
  stack<GtkWidget*> menus;
  ^~~~~
callbacks.cc:4790:2: note: suggested alternative:
In file included from /usr/include/g++/stack:61:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:19,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_stack.h:99:11: note:   'std::stack'
     class stack
           ^~~~~
callbacks.cc:4790:17: error: expected primary-expression before '*' token
  stack<GtkWidget*> menus;
                 ^
callbacks.cc:4790:18: error: expected primary-expression before '>' token
  stack<GtkWidget*> menus;
                  ^
callbacks.cc:4790:20: error: 'menus' was not declared in this scope
  stack<GtkWidget*> menus;
                    ^~~~~
callbacks.cc:4790:20: note: suggested alternative: 'enum'
  stack<GtkWidget*> menus;
                    ^~~~~
                    enum
callbacks.cc:4794:25: error: 'struct tree_struct' has no member named 'items'
   bool b_empty = titem->items.size() == 0;
                         ^~~~~
callbacks.cc:4796:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4797:24: error: 'struct tree_struct' has no member named 'objects'
     u = (Unit*) titem->objects[i];
                        ^~~~~~~
In file included from callbacks.cc:29:0:
callbacks.cc:4805:32: error: 'struct tree_struct' has no member named 'item'
    SUBMENU_ITEM_PREPEND(titem->item.c_str(), sub3)
                                ^
interface.h:34:72: note: in definition of macro 'SUBMENU_ITEM_PREPEND'
 #define SUBMENU_ITEM_PREPEND(x,y)  item = gtk_menu_item_new_with_label(x); gtk_widget_show (item); gtk_menu_shell_prepend(GTK_MENU_SHELL(y), item); sub = gtk_menu_new(); gtk_widget_show (sub); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), sub);
                                                                        ^
callbacks.cc:4809:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4810:24: error: 'struct tree_struct' has no member named 'objects'
     u = (Unit*) titem->objects[i];
                        ^~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:4813:25: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      if(is_currencies) {MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)}
                         ^
callbacks.cc:4819:34: error: 'struct tree_struct' has no member named 'objects'
     for(size_t i = 0; i < titem->objects.size(); i++) {
                                  ^~~~~~~
callbacks.cc:4820:25: error: 'struct tree_struct' has no member named 'objects'
      u = (Unit*) titem->objects[i];
                         ^~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:4822:7: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
       MENU_ITEM_WITH_POINTER_AND_FLAG(u->title(true).c_str(), convert_to_unit, u)
       ^
callbacks.cc:4829:25: error: 'struct tree_struct' has no member named 'rit'
   while(titem && titem->rit == titem->items.rend()) {
                         ^~~
callbacks.cc:4829:39: error: 'struct tree_struct' has no member named 'items'
   while(titem && titem->rit == titem->items.rend()) {
                                       ^~~~~
callbacks.cc:4835:22: error: 'struct tree_struct' has no member named 'rit'
    titem2 = &*titem->rit;
                      ^~~
callbacks.cc:4836:13: error: 'struct tree_struct' has no member named 'rit'
    ++titem->rit;
             ^~~
callbacks.cc:4838:11: error: 'struct tree_struct' has no member named 'rit'
    titem->rit = titem->items.rbegin();
           ^~~
callbacks.cc:4838:24: error: 'struct tree_struct' has no member named 'items'
    titem->rit = titem->items.rbegin();
                        ^~~~~
callbacks.cc:4842:34: error: 'struct tree_struct' has no member named 'objects'
  for(size_t i = 0; i < unit_cats.objects.size(); i++) {
                                  ^~~~~~~
callbacks.cc:4843:25: error: 'struct tree_struct' has no member named 'objects'
   u = (Unit*) unit_cats.objects[i];
                         ^~~~~~~
callbacks.cc: In function 'void create_vmenu()':
callbacks.cc:4879:16: error: 'struct tree_struct' has no member named 'rit'
  variable_cats.rit = variable_cats.items.rbegin();
                ^~~
callbacks.cc:4879:36: error: 'struct tree_struct' has no member named 'items'
  variable_cats.rit = variable_cats.items.rbegin();
                                    ^~~~~
callbacks.cc:4880:19: error: 'struct tree_struct' has no member named 'rit'
  if(variable_cats.rit != variable_cats.items.rend()) {
                   ^~~
callbacks.cc:4880:40: error: 'struct tree_struct' has no member named 'items'
  if(variable_cats.rit != variable_cats.items.rend()) {
                                        ^~~~~
callbacks.cc:4881:27: error: 'struct tree_struct' has no member named 'rit'
   titem = &*variable_cats.rit;
                           ^~~
callbacks.cc:4882:19: error: 'struct tree_struct' has no member named 'rit'
   ++variable_cats.rit;
                   ^~~
callbacks.cc:4883:10: error: 'struct tree_struct' has no member named 'rit'
   titem->rit = titem->items.rbegin();
          ^~~
callbacks.cc:4883:23: error: 'struct tree_struct' has no member named 'items'
   titem->rit = titem->items.rbegin();
                       ^~~~~
callbacks.cc:4888:2: error: 'stack' was not declared in this scope
  stack<GtkWidget*> menus;
  ^~~~~
callbacks.cc:4888:2: note: suggested alternative:
In file included from /usr/include/g++/stack:61:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:19,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_stack.h:99:11: note:   'std::stack'
     class stack
           ^~~~~
callbacks.cc:4888:17: error: expected primary-expression before '*' token
  stack<GtkWidget*> menus;
                 ^
callbacks.cc:4888:18: error: expected primary-expression before '>' token
  stack<GtkWidget*> menus;
                  ^
callbacks.cc:4888:20: error: 'menus' was not declared in this scope
  stack<GtkWidget*> menus;
                    ^~~~~
callbacks.cc:4888:20: note: suggested alternative: 'enum'
  stack<GtkWidget*> menus;
                    ^~~~~
                    enum
callbacks.cc:4892:25: error: 'struct tree_struct' has no member named 'items'
   bool b_empty = titem->items.size() == 0;
                         ^~~~~
callbacks.cc:4894:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4895:28: error: 'struct tree_struct' has no member named 'objects'
     v = (Variable*) titem->objects[i];
                            ^~~~~~~
In file included from callbacks.cc:29:0:
callbacks.cc:4903:32: error: 'struct tree_struct' has no member named 'item'
    SUBMENU_ITEM_PREPEND(titem->item.c_str(), sub3)
                                ^
interface.h:34:72: note: in definition of macro 'SUBMENU_ITEM_PREPEND'
 #define SUBMENU_ITEM_PREPEND(x,y)  item = gtk_menu_item_new_with_label(x); gtk_widget_show (item); gtk_menu_shell_prepend(GTK_MENU_SHELL(y), item); sub = gtk_menu_new(); gtk_widget_show (sub); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), sub);
                                                                        ^
callbacks.cc:4906:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:4907:28: error: 'struct tree_struct' has no member named 'objects'
     v = (Variable*) titem->objects[i];
                            ^~~~~~~
callbacks.cc:4915:25: error: 'struct tree_struct' has no member named 'rit'
   while(titem && titem->rit == titem->items.rend()) {
                         ^~~
callbacks.cc:4915:39: error: 'struct tree_struct' has no member named 'items'
   while(titem && titem->rit == titem->items.rend()) {
                                       ^~~~~
callbacks.cc:4921:22: error: 'struct tree_struct' has no member named 'rit'
    titem2 = &*titem->rit;
                      ^~~
callbacks.cc:4922:13: error: 'struct tree_struct' has no member named 'rit'
    ++titem->rit;
             ^~~
callbacks.cc:4924:11: error: 'struct tree_struct' has no member named 'rit'
    titem->rit = titem->items.rbegin();
           ^~~
callbacks.cc:4924:24: error: 'struct tree_struct' has no member named 'items'
    titem->rit = titem->items.rbegin();
                        ^~~~~
callbacks.cc:4929:38: error: 'struct tree_struct' has no member named 'objects'
  for(size_t i = 0; i < variable_cats.objects.size(); i++) {
                                      ^~~~~~~
callbacks.cc:4930:33: error: 'struct tree_struct' has no member named 'objects'
   v = (Variable*) variable_cats.objects[i];
                                 ^~~~~~~
callbacks.cc: In function 'void create_fmenu()':
callbacks.cc:5037:16: error: 'struct tree_struct' has no member named 'rit'
  function_cats.rit = function_cats.items.rbegin();
                ^~~
callbacks.cc:5037:36: error: 'struct tree_struct' has no member named 'items'
  function_cats.rit = function_cats.items.rbegin();
                                    ^~~~~
callbacks.cc:5038:19: error: 'struct tree_struct' has no member named 'rit'
  if(function_cats.rit != function_cats.items.rend()) {
                   ^~~
callbacks.cc:5038:40: error: 'struct tree_struct' has no member named 'items'
  if(function_cats.rit != function_cats.items.rend()) {
                                        ^~~~~
callbacks.cc:5039:27: error: 'struct tree_struct' has no member named 'rit'
   titem = &*function_cats.rit;
                           ^~~
callbacks.cc:5040:19: error: 'struct tree_struct' has no member named 'rit'
   ++function_cats.rit;
                   ^~~
callbacks.cc:5041:10: error: 'struct tree_struct' has no member named 'rit'
   titem->rit = titem->items.rbegin();
          ^~~
callbacks.cc:5041:23: error: 'struct tree_struct' has no member named 'items'
   titem->rit = titem->items.rbegin();
                       ^~~~~
callbacks.cc:5045:2: error: 'stack' was not declared in this scope
  stack<GtkWidget*> menus;
  ^~~~~
callbacks.cc:5045:2: note: suggested alternative:
In file included from /usr/include/g++/stack:61:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:19,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_stack.h:99:11: note:   'std::stack'
     class stack
           ^~~~~
callbacks.cc:5045:17: error: expected primary-expression before '*' token
  stack<GtkWidget*> menus;
                 ^
callbacks.cc:5045:18: error: expected primary-expression before '>' token
  stack<GtkWidget*> menus;
                  ^
callbacks.cc:5045:20: error: 'menus' was not declared in this scope
  stack<GtkWidget*> menus;
                    ^~~~~
callbacks.cc:5045:20: note: suggested alternative: 'enum'
  stack<GtkWidget*> menus;
                    ^~~~~
                    enum
callbacks.cc:5049:25: error: 'struct tree_struct' has no member named 'items'
   bool b_empty = titem->items.size() == 0;
                         ^~~~~
callbacks.cc:5051:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:5052:32: error: 'struct tree_struct' has no member named 'objects'
     f = (MathFunction*) titem->objects[i];
                                ^~~~~~~
In file included from callbacks.cc:29:0:
callbacks.cc:5060:32: error: 'struct tree_struct' has no member named 'item'
    SUBMENU_ITEM_PREPEND(titem->item.c_str(), sub3)
                                ^
interface.h:34:72: note: in definition of macro 'SUBMENU_ITEM_PREPEND'
 #define SUBMENU_ITEM_PREPEND(x,y)  item = gtk_menu_item_new_with_label(x); gtk_widget_show (item); gtk_menu_shell_prepend(GTK_MENU_SHELL(y), item); sub = gtk_menu_new(); gtk_widget_show (sub); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), sub);
                                                                        ^
callbacks.cc:5061:33: error: 'struct tree_struct' has no member named 'objects'
    for(size_t i = 0; i < titem->objects.size(); i++) {
                                 ^~~~~~~
callbacks.cc:5062:32: error: 'struct tree_struct' has no member named 'objects'
     f = (MathFunction*) titem->objects[i];
                                ^~~~~~~
callbacks.cc:5072:25: error: 'struct tree_struct' has no member named 'rit'
   while(titem && titem->rit == titem->items.rend()) {
                         ^~~
callbacks.cc:5072:39: error: 'struct tree_struct' has no member named 'items'
   while(titem && titem->rit == titem->items.rend()) {
                                       ^~~~~
callbacks.cc:5078:22: error: 'struct tree_struct' has no member named 'rit'
    titem2 = &*titem->rit;
                      ^~~
callbacks.cc:5079:13: error: 'struct tree_struct' has no member named 'rit'
    ++titem->rit;
             ^~~
callbacks.cc:5081:11: error: 'struct tree_struct' has no member named 'rit'
    titem->rit = titem->items.rbegin();
           ^~~
callbacks.cc:5081:24: error: 'struct tree_struct' has no member named 'items'
    titem->rit = titem->items.rbegin();
                        ^~~~~
callbacks.cc:5085:38: error: 'struct tree_struct' has no member named 'objects'
  for(size_t i = 0; i < function_cats.objects.size(); i++) {
                                      ^~~~~~~
callbacks.cc:5086:37: error: 'struct tree_struct' has no member named 'objects'
   f = (MathFunction*) function_cats.objects[i];
                                     ^~~~~~~
callbacks.cc: At global scope:
callbacks.cc:5093:1: error: 'string' does not name a type; did you mean 'GString'?
 string sub_suffix(const ExpressionName *ename) {
 ^~~~~~
 GString
callbacks.cc: In function 'void update_completion()':
callbacks.cc:5125:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:5125:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:5132:5: error: 'str' was not declared in this scope
     str = sub_suffix(ename_r);
     ^~~
callbacks.cc:5132:5: note: suggested alternative: 'iter'
     str = sub_suffix(ename_r);
     ^~~
     iter
callbacks.cc:5132:29: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
     str = sub_suffix(ename_r);
                             ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5134:5: error: 'str' was not declared in this scope
     str = ename_r->name;
     ^~~
callbacks.cc:5134:5: note: suggested alternative: 'iter'
     str = ename_r->name;
     ^~~
     iter
callbacks.cc:5136:4: error: 'str' was not declared in this scope
    str += "()";
    ^~~
callbacks.cc:5136:4: note: suggested alternative: 'iter'
    str += "()";
    ^~~
    iter
callbacks.cc:5142:30: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
       str += sub_suffix(ename);
                              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5163:8: error: 'str' was not declared in this scope
        str = sub_suffix(ename_r);
        ^~~
callbacks.cc:5163:8: note: suggested alternative: 'iter'
        str = sub_suffix(ename_r);
        ^~~
        iter
callbacks.cc:5163:32: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
        str = sub_suffix(ename_r);
                                ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5165:8: error: 'str' was not declared in this scope
        str = ename_r->name;
        ^~~
callbacks.cc:5165:8: note: suggested alternative: 'iter'
        str = ename_r->name;
        ^~~
        iter
callbacks.cc:5169:6: error: 'str' was not declared in this scope
      str += " <i>";
      ^~~
callbacks.cc:5169:6: note: suggested alternative: 'iter'
      str += " <i>";
      ^~~
      iter
callbacks.cc:5171:30: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
       str += sub_suffix(ename);
                              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5179:5: error: 'str' was not declared in this scope
     str = sub_suffix(ename_r);
     ^~~
callbacks.cc:5179:5: note: suggested alternative: 'iter'
     str = sub_suffix(ename_r);
     ^~~
     iter
callbacks.cc:5179:29: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
     str = sub_suffix(ename_r);
                             ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5185:12: error: 'str' was not declared in this scope
      pos = str.find("_to_");
            ^~~
callbacks.cc:5185:12: note: suggested alternative: 'iter'
      pos = str.find("_to_");
            ^~~
            iter
callbacks.cc:5188:16: error: 'string' is not a class, namespace, or enumeration
      if(pos != string::npos) {
                ^~~~~~
callbacks.cc:5189:7: error: 'str' was not declared in this scope
       str = ename_r->name;
       ^~~
callbacks.cc:5189:7: note: suggested alternative: 'iter'
       str = ename_r->name;
       ^~~
       iter
callbacks.cc:5194:19: error: 'string' is not a class, namespace, or enumeration
      while(pos != string::npos) {
                   ^~~~~~
callbacks.cc:5195:23: error: 'str' was not declared in this scope
       if((pos == 1 && str[0] == 'm') || (pos > 1 && str[pos - 1] == 'm' && str[pos - 2] == '>')) {
                       ^~~
callbacks.cc:5195:23: note: suggested alternative: 'iter'
       if((pos == 1 && str[0] == 'm') || (pos > 1 && str[pos - 1] == 'm' && str[pos - 2] == '>')) {
                       ^~~
                       iter
callbacks.cc:5200:13: error: 'str' was not declared in this scope
       pos = str.find("_to_", pos);
             ^~~
callbacks.cc:5200:13: note: suggested alternative: 'iter'
       pos = str.find("_to_", pos);
             ^~~
             iter
callbacks.cc:5205:58: error: 'str' was not declared in this scope
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, CALCULATOR->variables[i]->title().c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                          ^~~
callbacks.cc:5205:58: note: suggested alternative: 'iter'
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, CALCULATOR->variables[i]->title().c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                          ^~~
                                                          iter
callbacks.cc:5209:12: error: expected ';' before 'title'
     string title;
            ^~~~~
callbacks.cc:5211:6: error: 'title' was not declared in this scope
      title = _("a previous result");
      ^~~~~
callbacks.cc:5211:6: note: suggested alternative: 'time'
      title = _("a previous result");
      ^~~~~
      time
callbacks.cc:5214:7: error: 'title' was not declared in this scope
       title = CALCULATOR->localizeExpression(((KnownVariable*) v)->expression());
       ^~~~~
callbacks.cc:5214:7: note: suggested alternative: 'time'
       title = CALCULATOR->localizeExpression(((KnownVariable*) v)->expression());
       ^~~~~
       time
callbacks.cc:5218:8: error: 'title' was not declared in this scope
        title = _("matrix");
        ^~~~~
callbacks.cc:5218:8: note: suggested alternative: 'time'
        title = _("matrix");
        ^~~~~
        time
callbacks.cc:5220:8: error: 'title' was not declared in this scope
        title = _("vector");
        ^~~~~
callbacks.cc:5220:8: note: suggested alternative: 'time'
        title = _("vector");
        ^~~~~
        time
callbacks.cc:5224:8: error: 'title' was not declared in this scope
        title = CALCULATOR->print(((KnownVariable*) v)->get(), 30, po);
        ^~~~~
callbacks.cc:5224:8: note: suggested alternative: 'time'
        title = CALCULATOR->print(((KnownVariable*) v)->get(), 30, po);
        ^~~~~
        time
callbacks.cc:5230:40: error: 'title' was not declared in this scope
        case ASSUMPTION_SIGN_POSITIVE: {title = _("positive"); break;}
                                        ^~~~~
callbacks.cc:5230:40: note: suggested alternative: 'time'
        case ASSUMPTION_SIGN_POSITIVE: {title = _("positive"); break;}
                                        ^~~~~
                                        time
callbacks.cc:5231:43: error: 'title' was not declared in this scope
        case ASSUMPTION_SIGN_NONPOSITIVE: {title = _("non-positive"); break;}
                                           ^~~~~
callbacks.cc:5231:43: note: suggested alternative: 'time'
        case ASSUMPTION_SIGN_NONPOSITIVE: {title = _("non-positive"); break;}
                                           ^~~~~
                                           time
callbacks.cc:5232:40: error: 'title' was not declared in this scope
        case ASSUMPTION_SIGN_NEGATIVE: {title = _("negative"); break;}
                                        ^~~~~
callbacks.cc:5232:40: note: suggested alternative: 'time'
        case ASSUMPTION_SIGN_NEGATIVE: {title = _("negative"); break;}
                                        ^~~~~
                                        time
callbacks.cc:5233:43: error: 'title' was not declared in this scope
        case ASSUMPTION_SIGN_NONNEGATIVE: {title = _("non-negative"); break;}
                                           ^~~~~
callbacks.cc:5233:43: note: suggested alternative: 'time'
        case ASSUMPTION_SIGN_NONNEGATIVE: {title = _("non-negative"); break;}
                                           ^~~~~
                                           time
callbacks.cc:5234:39: error: 'title' was not declared in this scope
        case ASSUMPTION_SIGN_NONZERO: {title = _("non-zero"); break;}
                                       ^~~~~
callbacks.cc:5234:39: note: suggested alternative: 'time'
        case ASSUMPTION_SIGN_NONZERO: {title = _("non-zero"); break;}
                                       ^~~~~
                                       time
callbacks.cc:5237:11: error: 'title' was not declared in this scope
       if(!title.empty() && ((UnknownVariable*) v)->assumptions()->type() != ASSUMPTION_TYPE_NONE) title += " ";
           ^~~~~
callbacks.cc:5237:11: note: suggested alternative: 'time'
       if(!title.empty() && ((UnknownVariable*) v)->assumptions()->type() != ASSUMPTION_TYPE_NONE) title += " ";
           ^~~~~
           time
callbacks.cc:5239:39: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_INTEGER: {title += _("integer"); break;}
                                       ^~~~~
callbacks.cc:5239:39: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_INTEGER: {title += _("integer"); break;}
                                       ^~~~~
                                       time
callbacks.cc:5240:40: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_RATIONAL: {title += _("rational"); break;}
                                        ^~~~~
callbacks.cc:5240:40: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_RATIONAL: {title += _("rational"); break;}
                                        ^~~~~
                                        time
callbacks.cc:5241:36: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_REAL: {title += _("real"); break;}
                                    ^~~~~
callbacks.cc:5241:36: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_REAL: {title += _("real"); break;}
                                    ^~~~~
                                    time
callbacks.cc:5242:39: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_COMPLEX: {title += _("complex"); break;}
                                       ^~~~~
callbacks.cc:5242:39: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_COMPLEX: {title += _("complex"); break;}
                                       ^~~~~
                                       time
callbacks.cc:5243:38: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_NUMBER: {title += _("number"); break;}
                                      ^~~~~
callbacks.cc:5243:38: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_NUMBER: {title += _("number"); break;}
                                      ^~~~~
                                      time
callbacks.cc:5244:41: error: 'title' was not declared in this scope
        case ASSUMPTION_TYPE_NONMATRIX: {title += _("(not matrix)"); break;}
                                         ^~~~~
callbacks.cc:5244:41: note: suggested alternative: 'time'
        case ASSUMPTION_TYPE_NONMATRIX: {title += _("(not matrix)"); break;}
                                         ^~~~~
                                         time
callbacks.cc:5247:10: error: 'title' was not declared in this scope
       if(title.empty()) title = _("unknown");
          ^~~~~
callbacks.cc:5247:10: note: suggested alternative: 'time'
       if(title.empty()) title = _("unknown");
          ^~~~~
          time
callbacks.cc:5249:7: error: 'title' was not declared in this scope
       title = _("default assumptions");
       ^~~~~
callbacks.cc:5249:7: note: suggested alternative: 'time'
       title = _("default assumptions");
       ^~~~~
       time
callbacks.cc:5252:58: error: 'str' was not declared in this scope
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                          ^~~
callbacks.cc:5252:58: note: suggested alternative: 'iter'
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                          ^~~
                                                          iter
callbacks.cc:5252:74: error: 'title' was not declared in this scope
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                          ^~~~~
callbacks.cc:5252:74: note: suggested alternative: 'time'
     if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                          ^~~~~
                                                                          time
callbacks.cc:5253:83: error: 'title' was not declared in this scope
     else gtk_list_store_set(completion_store, &iter, 0, ename_r->name.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                   ^~~~~
callbacks.cc:5253:83: note: suggested alternative: 'time'
     else gtk_list_store_set(completion_store, &iter, 0, ename_r->name.c_str(), 1, title.c_str(), 2, CALCULATOR->variables[i], 3, FALSE, 4, 0, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                   ^~~~~
                                                                                   time
callbacks.cc:5269:8: error: 'str' was not declared in this scope
        str = sub_suffix(ename_r);
        ^~~
callbacks.cc:5269:8: note: suggested alternative: 'iter'
        str = sub_suffix(ename_r);
        ^~~
        iter
callbacks.cc:5269:32: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
        str = sub_suffix(ename_r);
                                ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5271:8: error: 'str' was not declared in this scope
        str = ename_r->name;
        ^~~
callbacks.cc:5271:8: note: suggested alternative: 'iter'
        str = ename_r->name;
        ^~~
        iter
callbacks.cc:5275:6: error: 'str' was not declared in this scope
      str += " <i>";
      ^~~
callbacks.cc:5275:6: note: suggested alternative: 'iter'
      str += " <i>";
      ^~~
      iter
callbacks.cc:5277:30: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
       str += sub_suffix(ename);
                              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5285:5: error: 'str' was not declared in this scope
     str = sub_suffix(ename_r);
     ^~~
callbacks.cc:5285:5: note: suggested alternative: 'iter'
     str = sub_suffix(ename_r);
     ^~~
     iter
callbacks.cc:5285:29: error: invalid initialization of reference of type 'const string& {aka const std::__cxx11::basic_string<char>&}' from expression of type 'const ExpressionName*'
     str = sub_suffix(ename_r);
                             ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:16:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/util.h:89:13: note: in passing argument 1 of 'std::__cxx11::string sub_suffix(const string&, const string&, const string&)'
 std::string sub_suffix(const std::string &name, const std::string &tag_begin, const std::string &tag_end);
             ^~~~~~~~~~
callbacks.cc:5288:4: error: 'unordered_map' was not declared in this scope
    unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.end();
    ^~~~~~~~~~~~~
callbacks.cc:5288:4: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:5288:35: error: expected primary-expression before '*' token
    unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.end();
                                   ^
callbacks.cc:5288:36: error: expected primary-expression before '>' token
    unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.end();
                                    ^
callbacks.cc:5288:39: error: '::const_iterator' has not been declared
    unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.end();
                                       ^~~~~~~~~~~~~~
callbacks.cc:5288:39: note: suggested alternative: 'last_is_operator'
    unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.end();
                                       ^~~~~~~~~~~~~~
                                       last_is_operator
callbacks.cc:5289:24: error: 'it_flag' was not declared in this scope
    if(u->isCurrency()) it_flag = flag_images.find(u->referenceName());
                        ^~~~~~~
callbacks.cc:5289:24: note: suggested alternative: 'to_float'
    if(u->isCurrency()) it_flag = flag_images.find(u->referenceName());
                        ^~~~~~~
                        to_float
callbacks.cc:5289:34: error: 'flag_images' was not declared in this scope
    if(u->isCurrency()) it_flag = flag_images.find(u->referenceName());
                                  ^~~~~~~~~~~
callbacks.cc:5290:57: error: 'str' was not declared in this scope
    if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                         ^~~
callbacks.cc:5290:57: note: suggested alternative: 'iter'
    if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                         ^~~
                                                         iter
callbacks.cc:5290:118: error: 'it_flag' was not declared in this scope
    if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                      ^~~~~~~
callbacks.cc:5290:118: note: suggested alternative: 'to_float'
    if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                      ^~~~~~~
                                                                                                                      to_float
callbacks.cc:5290:129: error: 'flag_images' was not declared in this scope
    if(b) gtk_list_store_set(completion_store, &iter, 0, str.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                                 ^~~~~~~~~~~
callbacks.cc:5291:127: error: 'it_flag' was not declared in this scope
    else gtk_list_store_set(completion_store, &iter, 0, ename_r->name.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                               ^~~~~~~
callbacks.cc:5291:127: note: suggested alternative: 'to_float'
    else gtk_list_store_set(completion_store, &iter, 0, ename_r->name.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                               ^~~~~~~
                                                                                                                               to_float
callbacks.cc:5291:138: error: 'flag_images' was not declared in this scope
    else gtk_list_store_set(completion_store, &iter, 0, ename_r->name.c_str(), 1, u->title().c_str(), 2, u, 3, FALSE, 4, 0, 5, it_flag == flag_images.end() ? NULL : it_flag->second, 6, PANGO_WEIGHT_NORMAL, 7, 0, 8, NULL, -1);
                                                                                                                                          ^~~~~~~~~~~
callbacks.cc:5300:3: error: 'str' was not declared in this scope
   str = "";
   ^~~
callbacks.cc:5300:3: note: suggested alternative: 'iter'
   str = "";
   ^~~
   iter
callbacks.cc:5302:10: error: 'string' does not name a type; did you mean 'GString'?
    const string *pstr;
          ^~~~~~
          GString
callbacks.cc:5303:20: error: 'pstr' was not declared in this scope
    if(name_i == 1) pstr = &p->longName(false);
                    ^~~~
callbacks.cc:5303:20: note: suggested alternative: 'eqstr'
    if(name_i == 1) pstr = &p->longName(false);
                    ^~~~
                    eqstr
callbacks.cc:5304:25: error: 'pstr' was not declared in this scope
    else if(name_i == 2) pstr = &p->unicodeName(false);
                         ^~~~
callbacks.cc:5304:25: note: suggested alternative: 'eqstr'
    else if(name_i == 2) pstr = &p->unicodeName(false);
                         ^~~~
                         eqstr
callbacks.cc:5305:9: error: 'pstr' was not declared in this scope
    else pstr = &p->shortName(false);
         ^~~~
callbacks.cc:5305:9: note: suggested alternative: 'eqstr'
    else pstr = &p->shortName(false);
         ^~~~
         eqstr
callbacks.cc:5306:8: error: 'pstr' was not declared in this scope
    if(!pstr->empty()) {
        ^~~~
callbacks.cc:5306:8: note: suggested alternative: 'eqstr'
    if(!pstr->empty()) {
        ^~~~
        eqstr
callbacks.cc:5335:9: error: expected ';' before 'str2'
  string str2;
         ^~~~
callbacks.cc:5337:42: error: 'str' was not declared in this scope
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                          ^
callbacks.cc:5337:42: note: in definition of macro 'COMPLETION_CONVERT_STRING2'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                          ^~~
callbacks.cc:5337:42: note: suggested alternative: 'iter'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                          ^
callbacks.cc:5337:42: note: in definition of macro 'COMPLETION_CONVERT_STRING2'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                          ^~~
callbacks.cc:5337:109: error: 'str2' was not declared in this scope
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                                                                                             ^
callbacks.cc:5337:109: note: in definition of macro 'COMPLETION_CONVERT_STRING2'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                                                                                             ^~~~
callbacks.cc:5337:109: note: suggested alternative: 'stat'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                                                                                             ^
callbacks.cc:5337:109: note: in definition of macro 'COMPLETION_CONVERT_STRING2'
 #define COMPLETION_CONVERT_STRING2(x, y) str = _(x); if(str != x) {str += " <i>"; str += x; str += "</i>";} str2 = _(y);  str += " <i>"; str += str2; str += "</i>"; if(str2 != y) {str += " <i>"; str += y; str += "</i>";}
                                                                                                             ^~~~
callbacks.cc: At global scope:
callbacks.cc:5405:1: error: 'string' does not name a type; did you mean 'GString'?
 string get_value_string(const MathStructure &mstruct_, bool rlabel = false, Prefix *prefix = NULL) {
 ^~~~~~
 GString
callbacks.cc: In function 'cairo_surface_t* draw_structure(MathStructure&, PrintOptions, bool, InternalPrintStruct, gint*, int, GdkRGBA*)':
callbacks.cc:5483:3: error: 'vector' was not declared in this scope
   vector<cairo_surface_t*> surface_terms;
   ^~~~~~
callbacks.cc:5483:3: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:5483:25: error: expected primary-expression before '*' token
   vector<cairo_surface_t*> surface_terms;
                         ^
callbacks.cc:5483:26: error: expected primary-expression before '>' token
   vector<cairo_surface_t*> surface_terms;
                          ^
callbacks.cc:5483:28: error: 'surface_terms' was not declared in this scope
   vector<cairo_surface_t*> surface_terms;
                            ^~~~~~~~~~~~~
callbacks.cc:5483:28: note: suggested alternative: 'surface_result'
   vector<cairo_surface_t*> surface_terms;
                            ^~~~~~~~~~~~~
                            surface_result
callbacks.cc:5485:14: error: expected primary-expression before '>' token
   vector<gint> hpt;
              ^
callbacks.cc:5485:16: error: 'hpt' was not declared in this scope
   vector<gint> hpt;
                ^~~
callbacks.cc:5486:14: error: expected primary-expression before '>' token
   vector<gint> wpt;
              ^
callbacks.cc:5486:16: error: 'wpt' was not declared in this scope
   vector<gint> wpt;
                ^~~
callbacks.cc:5487:14: error: expected primary-expression before '>' token
   vector<gint> cpt;
              ^
callbacks.cc:5487:16: error: 'cpt' was not declared in this scope
   vector<gint> cpt;
                ^~~
callbacks.cc:5571:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:5571:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:5572:12: error: expected ';' before 'exp'
     string exp = "";
            ^~~
callbacks.cc:5574:18: error: cannot convert 'double (*)(double)' to 'std::__cxx11::string* {aka std::__cxx11::basic_string<char>*}' in assignment
     ips_n.exp = &exp;
                  ^~~
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5576:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:5576:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5577:5: error: 'unordered_map' was not declared in this scope
     unordered_map<void*, string>::iterator it = number_map.find((void*) &m.number());
     ^~~~~~~~~~~~~
callbacks.cc:5577:5: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:5577:19: error: expected primary-expression before 'void'
     unordered_map<void*, string>::iterator it = number_map.find((void*) &m.number());
                   ^~~~
callbacks.cc:5578:12: error: expected ';' before 'value_str'
     string value_str;
            ^~~~~~~~~
callbacks.cc:5579:8: error: 'it' was not declared in this scope
     if(it != number_map.end()) {
        ^~
callbacks.cc:5579:8: note: suggested alternative: 'int'
     if(it != number_map.end()) {
        ^~
        int
callbacks.cc:5579:14: error: 'number_map' was not declared in this scope
     if(it != number_map.end()) {
              ^~~~~~~~~~
callbacks.cc:5579:14: note: suggested alternative: 'NumberType'
     if(it != number_map.end()) {
              ^~~~~~~~~~
              NumberType
callbacks.cc:5580:6: error: 'value_str' was not declared in this scope
      value_str += it->second;
      ^~~~~~~~~
callbacks.cc:5581:9: error: 'number_approx_map' was not declared in this scope
      if(number_approx_map.find((void*) &m.number()) != number_approx_map.end()) {
         ^~~~~~~~~~~~~~~~~
callbacks.cc:5584:9: error: 'number_exp_map' was not declared in this scope
      if(number_exp_map.find((void*) &m.number()) != number_exp_map.end()) {
         ^~~~~~~~~~~~~~
callbacks.cc:5584:9: note: suggested alternative: 'mpfr_exp2m1'
      if(number_exp_map.find((void*) &m.number()) != number_exp_map.end()) {
         ^~~~~~~~~~~~~~
         mpfr_exp2m1
callbacks.cc:5586:19: error: 'number_exp_minus_map' was not declared in this scope
       exp_minus = number_exp_minus_map[(void*) &m.number()];
                   ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:5589:6: error: 'value_str' was not declared in this scope
      value_str = m.number().print(po, ips_n);
      ^~~~~~~~~
callbacks.cc:5593:10: error: 'str' was not declared in this scope
       if(str.length() > 1 && value_str[0] == '0' && is_in(NUMBERS, value_str[1])) value_str.erase(0, 1);
          ^~~
callbacks.cc:5596:6: error: 'number_exp_map' was not declared in this scope
      number_exp_map[(void*) &m.number()] = exp;
      ^~~~~~~~~~~~~~
callbacks.cc:5596:6: note: suggested alternative: 'mpfr_exp2m1'
      number_exp_map[(void*) &m.number()] = exp;
      ^~~~~~~~~~~~~~
      mpfr_exp2m1
callbacks.cc:5597:6: error: 'number_exp_minus_map' was not declared in this scope
      number_exp_minus_map[(void*) &m.number()] = exp_minus;
      ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:5599:7: error: 'number_approx_map' was not declared in this scope
       number_approx_map[(void*) &m.number()] = *po.is_approximate;
       ^~~~~~~~~~~~~~~~~
callbacks.cc:5601:7: error: 'number_approx_map' was not declared in this scope
       number_approx_map[(void*) &m.number()] = FALSE;
       ^~~~~~~~~~~~~~~~~
callbacks.cc:5603:6: error: 'number_base_map' was not declared in this scope
      number_base_map[(void*) &m.number()] = "";
      ^~~~~~~~~~~~~~~
callbacks.cc:5605:96: error: request for member 'empty' in 'exp', which is of non-class type 'double(double)'
     if((!use_e_notation || (po.base != BASE_DECIMAL && po.base >= 2 && po.base <= 36)) && !exp.empty()) {
                                                                                                ^~~~~
callbacks.cc:5606:9: error: 'value_str' was not declared in this scope
      if(value_str == "1") {
         ^~~~~~~~~
callbacks.cc:5609:7: error: 'number_map' was not declared in this scope
       number_map[(void*) &mnr[0].number()] = (po.base != BASE_DECIMAL && po.base >= 2 && po.base <= 36) ? i2s(po.base) : "10";
       ^~~~~~~~~~
callbacks.cc:5609:7: note: suggested alternative: 'NumberType'
       number_map[(void*) &mnr[0].number()] = (po.base != BASE_DECIMAL && po.base >= 2 && po.base <= 36) ? i2s(po.base) : "10";
       ^~~~~~~~~~
       NumberType
callbacks.cc:5624:7: error: 'number_map' was not declared in this scope
       number_map[(void*) &mnr[0].number()] = value_str;
       ^~~~~~~~~~
callbacks.cc:5624:7: note: suggested alternative: 'NumberType'
       number_map[(void*) &mnr[0].number()] = value_str;
       ^~~~~~~~~~
       NumberType
callbacks.cc:5625:7: error: 'number_approx_map' was not declared in this scope
       number_approx_map[(void*) &mnr[0].number()] = number_approx_map[(void*) &m.number()];
       ^~~~~~~~~~~~~~~~~
callbacks.cc:5643:12: error: request for member 'empty' in 'exp', which is of non-class type 'double(double)'
     if(exp.empty() && (po.base == BASE_SEXAGESIMAL || po.base == BASE_TIME)) {
            ^~~~~
callbacks.cc:5644:13: error: expected ';' before 'estr'
      string estr;
             ^~~~
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: error: 'estr' was not declared in this scope
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5645:31: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) {TTP(estr, "e");}
                               ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:5645:27: note: in expansion of macro 'TTP'
      if(po.lower_case_e) {TTP(estr, "e");}
                           ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: error: 'estr' was not declared in this scope
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5646:22: note: suggested alternative: 'eqstr'
      else {TTP_SMALL(estr, "E");}
                      ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5646:12: note: in expansion of macro 'TTP_SMALL'
      else {TTP_SMALL(estr, "E");}
            ^
callbacks.cc:5647:36: error: 'estr' was not declared in this scope
      if(po.lower_case_e) gsub("e", estr, value_str);
                                    ^~~~
callbacks.cc:5647:36: note: suggested alternative: 'eqstr'
      if(po.lower_case_e) gsub("e", estr, value_str);
                                    ^~~~
                                    eqstr
callbacks.cc:5647:42: error: 'value_str' was not declared in this scope
      if(po.lower_case_e) gsub("e", estr, value_str);
                                          ^~~~~~~~~
callbacks.cc:5648:21: error: 'estr' was not declared in this scope
      else gsub("E", estr, value_str);
                     ^~~~
callbacks.cc:5648:21: note: suggested alternative: 'eqstr'
      else gsub("E", estr, value_str);
                     ^~~~
                     eqstr
callbacks.cc:5648:27: error: 'value_str' was not declared in this scope
      else gsub("E", estr, value_str);
                           ^~~~~~~~~
callbacks.cc:5650:5: error: 'str' was not declared in this scope
     str += value_str;
     ^~~
callbacks.cc:5650:12: error: 'value_str' was not declared in this scope
     str += value_str;
            ^~~~~~~~~
callbacks.cc:5652:13: error: request for member 'empty' in 'exp', which is of non-class type 'double(double)'
     if(!exp.empty()) {
             ^~~~~
callbacks.cc:5660:170: error: 'string' is not a class, namespace, or enumeration
     bool twos = (((po.base == 2 && po.twos_complement) || (po.base == 16 && po.hexadecimal_twos_complement)) && m.number().isNegative() && value_str.find(SIGN_MINUS) == string::npos && value_str.find("-") == string::npos);
                                                                                                                                                                          ^~~~~~
callbacks.cc:5660:209: error: 'string' is not a class, namespace, or enumeration
     bool twos = (((po.base == 2 && po.twos_complement) || (po.base == 16 && po.hexadecimal_twos_complement)) && m.number().isNegative() && value_str.find(SIGN_MINUS) == string::npos && value_str.find("-") == string::npos);
                                                                                                                                                                                                                 ^~~~~~
callbacks.cc:5664:13: error: expected ';' before 'str_base'
      string str_base;
             ^~~~~~~~
callbacks.cc:5665:9: error: 'it' was not declared in this scope
      if(it != number_map.end()) {
         ^~
callbacks.cc:5665:9: note: suggested alternative: 'int'
      if(it != number_map.end()) {
         ^~
         int
callbacks.cc:5665:15: error: 'number_map' was not declared in this scope
      if(it != number_map.end()) {
               ^~~~~~~~~~
callbacks.cc:5665:15: note: suggested alternative: 'NumberType'
      if(it != number_map.end()) {
               ^~~~~~~~~~
               NumberType
callbacks.cc:5666:7: error: 'str_base' was not declared in this scope
       str_base = number_base_map[(void*) &m.number()];
       ^~~~~~~~
callbacks.cc:5666:7: note: suggested alternative: 'to_base'
       str_base = number_base_map[(void*) &m.number()];
       ^~~~~~~~
       to_base
callbacks.cc:5666:18: error: 'number_base_map' was not declared in this scope
       str_base = number_base_map[(void*) &m.number()];
                  ^~~~~~~~~~~~~~~
callbacks.cc:5669:33: error: 'str_base' was not declared in this scope
        case BASE_GOLDEN_RATIO: {str_base = "<i>φ</i>"; break;}
                                 ^~~~~~~~
callbacks.cc:5669:33: note: suggested alternative: 'to_base'
        case BASE_GOLDEN_RATIO: {str_base = "<i>φ</i>"; break;}
                                 ^~~~~~~~
                                 to_base
callbacks.cc:5670:39: error: 'str_base' was not declared in this scope
        case BASE_SUPER_GOLDEN_RATIO: {str_base = "<i>ψ</i>"; break;}
                                       ^~~~~~~~
callbacks.cc:5670:39: note: suggested alternative: 'to_base'
        case BASE_SUPER_GOLDEN_RATIO: {str_base = "<i>ψ</i>"; break;}
                                       ^~~~~~~~
                                       to_base
callbacks.cc:5671:23: error: 'str_base' was not declared in this scope
        case BASE_PI: {str_base = "<i>Ï€</i>"; break;}
                       ^~~~~~~~
callbacks.cc:5671:23: note: suggested alternative: 'to_base'
        case BASE_PI: {str_base = "<i>Ï€</i>"; break;}
                       ^~~~~~~~
                       to_base
callbacks.cc:5672:22: error: 'str_base' was not declared in this scope
        case BASE_E: {str_base = "<i>e</i>"; break;}
                      ^~~~~~~~
callbacks.cc:5672:22: note: suggested alternative: 'to_base'
        case BASE_E: {str_base = "<i>e</i>"; break;}
                      ^~~~~~~~
                      to_base
callbacks.cc:5673:26: error: 'str_base' was not declared in this scope
        case BASE_SQRT2: {str_base = "√2"; break;}
                          ^~~~~~~~
callbacks.cc:5673:26: note: suggested alternative: 'to_base'
        case BASE_SQRT2: {str_base = "√2"; break;}
                          ^~~~~~~~
                          to_base
callbacks.cc:5674:28: error: 'str_base' was not declared in this scope
        case BASE_UNICODE: {str_base = "Unicode"; break;}
                            ^~~~~~~~
callbacks.cc:5674:28: note: suggested alternative: 'to_base'
        case BASE_UNICODE: {str_base = "Unicode"; break;}
                            ^~~~~~~~
                            to_base
callbacks.cc:5675:33: error: 'str_base' was not declared in this scope
        case BASE_BIJECTIVE_26: {str_base = "b26"; break;}
                                 ^~~~~~~~
callbacks.cc:5675:33: note: suggested alternative: 'to_base'
        case BASE_BIJECTIVE_26: {str_base = "b26"; break;}
                                 ^~~~~~~~
                                 to_base
callbacks.cc:5676:27: error: 'str_base' was not declared in this scope
        case BASE_CUSTOM: {str_base = CALCULATOR->customOutputBase().print(CALCULATOR->messagePrintOptions()); break;}
                           ^~~~~~~~
callbacks.cc:5676:27: note: suggested alternative: 'to_base'
        case BASE_CUSTOM: {str_base = CALCULATOR->customOutputBase().print(CALCULATOR->messagePrintOptions()); break;}
                           ^~~~~~~~
                           to_base
callbacks.cc:5677:18: error: 'str_base' was not declared in this scope
        default: {str_base = i2s(po.base);}
                  ^~~~~~~~
callbacks.cc:5677:18: note: suggested alternative: 'to_base'
        default: {str_base = i2s(po.base);}
                  ^~~~~~~~
                  to_base
callbacks.cc:5679:16: error: 'str_base' was not declared in this scope
       if(twos) str_base += '-';
                ^~~~~~~~
callbacks.cc:5679:16: note: suggested alternative: 'to_base'
       if(twos) str_base += '-';
                ^~~~~~~~
                to_base
callbacks.cc:5680:7: error: 'number_base_map' was not declared in this scope
       number_base_map[(void*) &m.number()] = str_base;
       ^~~~~~~~~~~~~~~
callbacks.cc:5680:46: error: 'str_base' was not declared in this scope
       number_base_map[(void*) &m.number()] = str_base;
                                              ^~~~~~~~
callbacks.cc:5680:46: note: suggested alternative: 'to_base'
       number_base_map[(void*) &m.number()] = str_base;
                                              ^~~~~~~~
                                              to_base
callbacks.cc:5682:13: error: 'str_base' was not declared in this scope
      str += str_base;
             ^~~~~~~~
callbacks.cc:5682:13: note: suggested alternative: 'to_base'
      str += str_base;
             ^~~~~~~~
             to_base
callbacks.cc:5706:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:5706:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:5707:5: error: 'str' was not declared in this scope
     str = "<i>";
     ^~~
callbacks.cc:5730:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:5730:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5731:10: error: 'str' was not declared in this scope
     TTBP(str)
          ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:5731:5: note: in expansion of macro 'TTBP'
     TTBP(str)
     ^
callbacks.cc:5732:5: error: 'unordered_map' was not declared in this scope
     unordered_map<void*, string>::iterator it = date_map.find((void*) m.datetime());
     ^~~~~~~~~~~~~
callbacks.cc:5732:5: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:5732:19: error: expected primary-expression before 'void'
     unordered_map<void*, string>::iterator it = date_map.find((void*) m.datetime());
                   ^~~~
callbacks.cc:5733:8: error: 'it' was not declared in this scope
     if(it != date_map.end()) {
        ^~
callbacks.cc:5733:8: note: suggested alternative: 'int'
     if(it != date_map.end()) {
        ^~
        int
callbacks.cc:5733:14: error: 'date_map' was not declared in this scope
     if(it != date_map.end()) {
              ^~~~~~~~
callbacks.cc:5733:14: note: suggested alternative: 'GdkKeymap'
     if(it != date_map.end()) {
              ^~~~~~~~
              GdkKeymap
callbacks.cc:5734:6: error: 'str' was not declared in this scope
      str += it->second;
      ^~~
callbacks.cc:5736:13: error: expected ';' before 'value_str'
      string value_str = m.datetime()->print(po);
             ^~~~~~~~~
callbacks.cc:5737:39: error: 'value_str' was not declared in this scope
      date_map[(void*) m.datetime()] = value_str;
                                       ^~~~~~~~~
callbacks.cc:5738:6: error: 'str' was not declared in this scope
      str += value_str;
      ^~~
callbacks.cc:5740:9: error: 'str' was not declared in this scope
     TTE(str)
         ^
callbacks.cc:354:20: note: in definition of macro 'TTE'
 #define TTE(str)   str += "</span>";
                    ^~~
callbacks.cc:5760:5: error: 'vector' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
     ^~~~~~
callbacks.cc:5760:5: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:5760:27: error: expected primary-expression before '*' token
     vector<cairo_surface_t*> surface_terms;
                           ^
callbacks.cc:5760:28: error: expected primary-expression before '>' token
     vector<cairo_surface_t*> surface_terms;
                            ^
callbacks.cc:5760:30: error: 'surface_terms' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
callbacks.cc:5760:30: note: suggested alternative: 'surface_result'
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
                              surface_result
callbacks.cc:5761:16: error: expected primary-expression before '>' token
     vector<gint> hpt;
                ^
callbacks.cc:5761:18: error: 'hpt' was not declared in this scope
     vector<gint> hpt;
                  ^~~
callbacks.cc:5762:16: error: expected primary-expression before '>' token
     vector<gint> wpt;
                ^
callbacks.cc:5762:18: error: 'wpt' was not declared in this scope
     vector<gint> wpt;
                  ^~~
callbacks.cc:5763:16: error: expected primary-expression before '>' token
     vector<gint> cpt;
                ^
callbacks.cc:5763:18: error: 'cpt' was not declared in this scope
     vector<gint> cpt;
                  ^~~
callbacks.cc:5954:5: error: 'vector' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
     ^~~~~~
callbacks.cc:5954:5: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:5954:27: error: expected primary-expression before '*' token
     vector<cairo_surface_t*> surface_terms;
                           ^
callbacks.cc:5954:28: error: expected primary-expression before '>' token
     vector<cairo_surface_t*> surface_terms;
                            ^
callbacks.cc:5954:30: error: 'surface_terms' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
callbacks.cc:5954:30: note: suggested alternative: 'surface_result'
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
                              surface_result
callbacks.cc:5955:16: error: expected primary-expression before '>' token
     vector<gint> hpt;
                ^
callbacks.cc:5955:18: error: 'hpt' was not declared in this scope
     vector<gint> hpt;
                  ^~~
callbacks.cc:5956:16: error: expected primary-expression before '>' token
     vector<gint> wpt;
                ^
callbacks.cc:5956:18: error: 'wpt' was not declared in this scope
     vector<gint> wpt;
                  ^~~
callbacks.cc:5957:16: error: expected primary-expression before '>' token
     vector<gint> cpt;
                ^
callbacks.cc:5957:18: error: 'cpt' was not declared in this scope
     vector<gint> cpt;
                  ^~~
callbacks.cc:5964:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:5964:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5966:10: error: 'str' was not declared in this scope
      TTP(str, "cis");
          ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:5966:6: note: in expansion of macro 'TTP'
      TTP(str, "cis");
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5968:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIDOT);
                ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5968:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5970:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MIDDLEDOT);
                ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5970:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MIDDLEDOT);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5972:16: error: 'str' was not declared in this scope
      TTP_SMALL(str, SIGN_MULTIPLICATION);
                ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5972:6: note: in expansion of macro 'TTP_SMALL'
      TTP_SMALL(str, SIGN_MULTIPLICATION);
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5974:10: error: 'str' was not declared in this scope
      TTP(str, "*");
          ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:5974:6: note: in expansion of macro 'TTP'
      TTP(str, "*");
      ^
callbacks.cc:5976:41: error: 'str' was not declared in this scope
     pango_layout_set_markup(layout_mul, str.c_str(), -1);
                                         ^~~
callbacks.cc:5979:12: error: expected primary-expression before 'int'
     vector<int> nm;
            ^~~
callbacks.cc:5999:8: error: 'nm' was not declared in this scope
        nm.push_back(MULTIPLICATION_SIGN_OPERATOR);
        ^~
callbacks.cc:5999:8: note: suggested alternative: 'm'
        nm.push_back(MULTIPLICATION_SIGN_OPERATOR);
        ^~
        m
callbacks.cc:6001:8: error: 'nm' was not declared in this scope
        nm.push_back(m[i].neededMultiplicationSign(po, ips_n, m, i + 1, ips_n.wrap || (m[i].isPower() && m[i][0].needsParenthesis(po, ips_n, m[i], 1, ips.division_depth > 0 || ips.power_depth > 0, ips.power_depth > 0)), par_prev, ips.division_depth > 0 || ips.power_depth > 0, ips.power_depth > 0));
        ^~
callbacks.cc:6001:8: note: suggested alternative: 'm'
        nm.push_back(m[i].neededMultiplicationSign(po, ips_n, m, i + 1, ips_n.wrap || (m[i].isPower() && m[i][0].needsParenthesis(po, ips_n, m[i], 1, ips.division_depth > 0 || ips.power_depth > 0, ips.power_depth > 0)), par_prev, ips.division_depth > 0 || ips.power_depth > 0, ips.power_depth > 0));
        ^~
        m
callbacks.cc:6003:14: error: 'nm' was not declared in this scope
       switch(nm[i]) {
              ^~
callbacks.cc:6003:14: note: suggested alternative: 'm'
       switch(nm[i]) {
              ^~
              m
callbacks.cc:6033:7: error: 'nm' was not declared in this scope
       nm.push_back(-1);
       ^~
callbacks.cc:6033:7: note: suggested alternative: 'm'
       nm.push_back(-1);
       ^~
       m
callbacks.cc:6051:16: error: 'nm' was not declared in this scope
      } else if(nm[1] == MULTIPLICATION_SIGN_NONE) {
                ^~
callbacks.cc:6051:16: note: suggested alternative: 'm'
      } else if(nm[1] == MULTIPLICATION_SIGN_NONE) {
                ^~
                m
callbacks.cc:6054:13: error: expected ';' before 'imagefile'
      string imagefile = "/qalculate-gtk/flags/"; imagefile += m[i_unit].unit()->referenceName(); imagefile += ".png";
             ^~~~~~~~~
callbacks.cc:6054:50: error: 'imagefile' was not declared in this scope
      string imagefile = "/qalculate-gtk/flags/"; imagefile += m[i_unit].unit()->referenceName(); imagefile += ".png";
                                                  ^~~~~~~~~
callbacks.cc:6054:50: note: suggested alternative: 'move_file'
      string imagefile = "/qalculate-gtk/flags/"; imagefile += m[i_unit].unit()->referenceName(); imagefile += ".png";
                                                  ^~~~~~~~~
                                                  move_file
callbacks.cc:6076:15: error: 'nm' was not declared in this scope
        switch(nm[i]) {
               ^~
callbacks.cc:6076:15: note: suggested alternative: 'm'
        switch(nm[i]) {
               ^~
               m
callbacks.cc:6326:6: error: 'vector' was not declared in this scope
      vector<cairo_surface_t*> surface_terms;
      ^~~~~~
callbacks.cc:6326:6: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:6326:28: error: expected primary-expression before '*' token
      vector<cairo_surface_t*> surface_terms;
                            ^
callbacks.cc:6326:29: error: expected primary-expression before '>' token
      vector<cairo_surface_t*> surface_terms;
                             ^
callbacks.cc:6326:31: error: 'surface_terms' was not declared in this scope
      vector<cairo_surface_t*> surface_terms;
                               ^~~~~~~~~~~~~
callbacks.cc:6326:31: note: suggested alternative: 'surface_result'
      vector<cairo_surface_t*> surface_terms;
                               ^~~~~~~~~~~~~
                               surface_result
callbacks.cc:6327:17: error: expected primary-expression before '>' token
      vector<gint> hpt;
                 ^
callbacks.cc:6327:19: error: 'hpt' was not declared in this scope
      vector<gint> hpt;
                   ^~~
callbacks.cc:6328:17: error: expected primary-expression before '>' token
      vector<gint> wpt;
                 ^
callbacks.cc:6328:19: error: 'wpt' was not declared in this scope
      vector<gint> wpt;
                   ^~~
callbacks.cc:6329:17: error: expected primary-expression before '>' token
      vector<gint> cpt;
                 ^
callbacks.cc:6329:19: error: 'cpt' was not declared in this scope
      vector<gint> cpt;
                   ^~~
callbacks.cc:6392:6: error: 'string' was not declared in this scope
      string str;
      ^~~~~~
callbacks.cc:6392:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6393:11: error: 'str' was not declared in this scope
      TTBP(str);
           ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:6393:6: note: in expansion of macro 'TTBP'
      TTBP(str);
      ^
callbacks.cc:6396:8: error: 'str' was not declared in this scope
        str += "&gt;";
        ^~~
callbacks.cc:6400:8: error: 'str' was not declared in this scope
        str += "&lt;";
        ^~~
callbacks.cc:6405:9: error: 'str' was not declared in this scope
         str += SIGN_GREATER_OR_EQUAL;
         ^~~
callbacks.cc:6407:9: error: 'str' was not declared in this scope
         str += "&gt;=";
         ^~~
callbacks.cc:6413:9: error: 'str' was not declared in this scope
         str += SIGN_LESS_OR_EQUAL;
         ^~~
callbacks.cc:6415:9: error: 'str' was not declared in this scope
         str += "&lt;=";
         ^~~
callbacks.cc:6421:10: error: 'str' was not declared in this scope
      TTE(str);
          ^
callbacks.cc:354:20: note: in definition of macro 'TTE'
 #define TTE(str)   str += "</span>";
                    ^~~
callbacks.cc:6516:5: error: 'vector' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
     ^~~~~~
callbacks.cc:6516:5: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:6516:27: error: expected primary-expression before '*' token
     vector<cairo_surface_t*> surface_terms;
                           ^
callbacks.cc:6516:28: error: expected primary-expression before '>' token
     vector<cairo_surface_t*> surface_terms;
                            ^
callbacks.cc:6516:30: error: 'surface_terms' was not declared in this scope
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
callbacks.cc:6516:30: note: suggested alternative: 'surface_result'
     vector<cairo_surface_t*> surface_terms;
                              ^~~~~~~~~~~~~
                              surface_result
callbacks.cc:6517:16: error: expected primary-expression before '>' token
     vector<gint> hpt;
                ^
callbacks.cc:6517:18: error: 'hpt' was not declared in this scope
     vector<gint> hpt;
                  ^~~
callbacks.cc:6518:16: error: expected primary-expression before '>' token
     vector<gint> wpt;
                ^
callbacks.cc:6518:18: error: 'wpt' was not declared in this scope
     vector<gint> wpt;
                  ^~~
callbacks.cc:6519:16: error: expected primary-expression before '>' token
     vector<gint> cpt;
                ^
callbacks.cc:6519:18: error: 'cpt' was not declared in this scope
     vector<gint> cpt;
                  ^~~
callbacks.cc:6548:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:6548:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6549:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:6549:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6554:9: error: 'str' was not declared in this scope
         str += SIGN_ALMOST_EQUAL;
         ^~~
callbacks.cc:6556:9: error: 'str' was not declared in this scope
         str += "=";
         ^~~
callbacks.cc:6562:9: error: 'str' was not declared in this scope
         str += SIGN_NOT_EQUAL;
         ^~~
callbacks.cc:6564:9: error: 'str' was not declared in this scope
         str += "!=";
         ^~~
callbacks.cc:6569:8: error: 'str' was not declared in this scope
        str += "&gt;";
        ^~~
callbacks.cc:6573:8: error: 'str' was not declared in this scope
        str += "&lt;";
        ^~~
callbacks.cc:6578:9: error: 'str' was not declared in this scope
         str += SIGN_GREATER_OR_EQUAL;
         ^~~
callbacks.cc:6580:9: error: 'str' was not declared in this scope
         str += "&gt;=";
         ^~~
callbacks.cc:6586:9: error: 'str' was not declared in this scope
         str += SIGN_LESS_OR_EQUAL;
         ^~~
callbacks.cc:6588:9: error: 'str' was not declared in this scope
         str += "&lt;=";
         ^~~
callbacks.cc:6594:41: error: 'str' was not declared in this scope
      if(po.spell_out_logical_operators) str += _("and");
                                         ^~~
callbacks.cc:6595:11: error: 'str' was not declared in this scope
      else str += "&amp;&amp;";
           ^~~
callbacks.cc:6597:41: error: 'str' was not declared in this scope
      if(po.spell_out_logical_operators) str += _("or");
                                         ^~~
callbacks.cc:6598:11: error: 'str' was not declared in this scope
      else str += "||";
           ^~~
callbacks.cc:6600:6: error: 'str' was not declared in this scope
      str += "xor";
      ^~~
callbacks.cc:6602:6: error: 'str' was not declared in this scope
      str += "&amp;";
      ^~~
callbacks.cc:6604:6: error: 'str' was not declared in this scope
      str += "|";
      ^~~
callbacks.cc:6606:6: error: 'str' was not declared in this scope
      str += "xor";
      ^~~
callbacks.cc:6609:9: error: 'str' was not declared in this scope
     TTE(str);
         ^
callbacks.cc:354:20: note: in definition of macro 'TTE'
 #define TTE(str)   str += "</span>";
                    ^~~
callbacks.cc:6717:7: error: 'string' was not declared in this scope
       string str;
       ^~~~~~
callbacks.cc:6717:7: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6718:12: error: 'str' was not declared in this scope
       TTBP(str)
            ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:6718:7: note: in expansion of macro 'TTBP'
       TTBP(str)
       ^
callbacks.cc:6719:7: error: 'str' was not declared in this scope
       str += "[ ]";
       ^~~
callbacks.cc:6739:6: error: 'vector' was not declared in this scope
      vector<gint> col_w;
      ^~~~~~
callbacks.cc:6739:6: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:6739:17: error: expected primary-expression before '>' token
      vector<gint> col_w;
                 ^
callbacks.cc:6739:19: error: 'col_w' was not declared in this scope
      vector<gint> col_w;
                   ^~~~~
callbacks.cc:6739:19: note: suggested alternative: 'color'
      vector<gint> col_w;
                   ^~~~~
                   color
callbacks.cc:6740:17: error: expected primary-expression before '>' token
      vector<gint> row_h;
                 ^
callbacks.cc:6740:19: error: 'row_h' was not declared in this scope
      vector<gint> row_h;
                   ^~~~~
callbacks.cc:6741:17: error: expected primary-expression before '>' token
      vector<gint> row_uh;
                 ^
callbacks.cc:6741:19: error: 'row_uh' was not declared in this scope
      vector<gint> row_uh;
                   ^~~~~~
callbacks.cc:6742:17: error: expected primary-expression before '>' token
      vector<gint> row_dh;
                 ^
callbacks.cc:6742:19: error: 'row_dh' was not declared in this scope
      vector<gint> row_dh;
                   ^~~~~~
callbacks.cc:6742:19: note: suggested alternative: 'roundl'
      vector<gint> row_dh;
                   ^~~~~~
                   roundl
callbacks.cc:6743:24: error: expected primary-expression before '>' token
      vector<vector<gint> > element_w;
                        ^
callbacks.cc:6743:26: error: expected primary-expression before '>' token
      vector<vector<gint> > element_w;
                          ^
callbacks.cc:6743:28: error: 'element_w' was not declared in this scope
      vector<vector<gint> > element_w;
                            ^~~~~~~~~
callbacks.cc:6743:28: note: suggested alternative: 'Element'
      vector<vector<gint> > element_w;
                            ^~~~~~~~~
                            Element
callbacks.cc:6744:24: error: expected primary-expression before '>' token
      vector<vector<gint> > element_h;
                        ^
callbacks.cc:6744:26: error: expected primary-expression before '>' token
      vector<vector<gint> > element_h;
                          ^
callbacks.cc:6744:28: error: 'element_h' was not declared in this scope
      vector<vector<gint> > element_h;
                            ^~~~~~~~~
callbacks.cc:6744:28: note: suggested alternative: 'Element'
      vector<vector<gint> > element_h;
                            ^~~~~~~~~
                            Element
callbacks.cc:6745:24: error: expected primary-expression before '>' token
      vector<vector<gint> > element_c;
                        ^
callbacks.cc:6745:26: error: expected primary-expression before '>' token
      vector<vector<gint> > element_c;
                          ^
callbacks.cc:6745:28: error: 'element_c' was not declared in this scope
      vector<vector<gint> > element_c;
                            ^~~~~~~~~
callbacks.cc:6745:28: note: suggested alternative: 'Element'
      vector<vector<gint> > element_c;
                            ^~~~~~~~~
                            Element
callbacks.cc:6746:35: error: expected primary-expression before '*' token
      vector<vector<cairo_surface_t*> > surface_elements;
                                   ^
callbacks.cc:6746:36: error: expected primary-expression before '>' token
      vector<vector<cairo_surface_t*> > surface_elements;
                                    ^
callbacks.cc:6746:38: error: expected primary-expression before '>' token
      vector<vector<cairo_surface_t*> > surface_elements;
                                      ^
callbacks.cc:6746:40: error: 'surface_elements' was not declared in this scope
      vector<vector<cairo_surface_t*> > surface_elements;
                                        ^~~~~~~~~~~~~~~~
callbacks.cc:6746:40: note: suggested alternative: 'surface_result'
      vector<vector<cairo_surface_t*> > surface_elements;
                                        ^~~~~~~~~~~~~~~~
                                        surface_result
callbacks.cc:6752:6: error: 'string' was not declared in this scope
      string str;
      ^~~~~~
callbacks.cc:6752:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6754:10: error: 'str' was not declared in this scope
      TTP(str, po.comma())
          ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:6754:6: note: in expansion of macro 'TTP'
      TTP(str, po.comma())
      ^
callbacks.cc:6755:44: error: 'str' was not declared in this scope
      pango_layout_set_markup(layout_comma, str.c_str(), -1);
                                            ^~~
callbacks.cc:6865:5: error: 'vector' was not declared in this scope
     vector<cairo_surface_t*> surface_args;
     ^~~~~~
callbacks.cc:6865:5: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:6865:27: error: expected primary-expression before '*' token
     vector<cairo_surface_t*> surface_args;
                           ^
callbacks.cc:6865:28: error: expected primary-expression before '>' token
     vector<cairo_surface_t*> surface_args;
                            ^
callbacks.cc:6865:30: error: 'surface_args' was not declared in this scope
     vector<cairo_surface_t*> surface_args;
                              ^~~~~~~~~~~~
callbacks.cc:6865:30: note: suggested alternative: 'surface'
     vector<cairo_surface_t*> surface_args;
                              ^~~~~~~~~~~~
                              surface
callbacks.cc:6866:16: error: expected primary-expression before '>' token
     vector<gint> hpa;
                ^
callbacks.cc:6866:18: error: 'hpa' was not declared in this scope
     vector<gint> hpa;
                  ^~~
callbacks.cc:6867:16: error: expected primary-expression before '>' token
     vector<gint> cpa;
                ^
callbacks.cc:6867:18: error: 'cpa' was not declared in this scope
     vector<gint> cpa;
                  ^~~
callbacks.cc:6868:16: error: expected primary-expression before '>' token
     vector<gint> wpa;
                ^
callbacks.cc:6868:18: error: 'wpa' was not declared in this scope
     vector<gint> wpa;
                  ^~~
callbacks.cc:6872:5: error: 'string' was not declared in this scope
     string str, func_str;
     ^~~~~~
callbacks.cc:6872:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6873:9: error: 'str' was not declared in this scope
     TTP(str, CALCULATOR->getComma())
         ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:6873:5: note: in expansion of macro 'TTP'
     TTP(str, CALCULATOR->getComma())
     ^
callbacks.cc:6874:43: error: 'str' was not declared in this scope
     pango_layout_set_markup(layout_comma, str.c_str(), -1);
                                           ^~~
callbacks.cc:6956:5: error: 'string' was not declared in this scope
     string str, str2;
     ^~~~~~
callbacks.cc:6956:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6957:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:6957:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:6962:6: error: 'str' was not declared in this scope
      str += m.prefix()->name(po.abbreviate_names && ename->abbreviation && (ename->suffix || ename->name.find("_") == string::npos), po.use_unicode_signs, po.can_display_unicode_string_function, po.can_display_unicode_string_arg);
      ^~~
callbacks.cc:6962:119: error: 'string' is not a class, namespace, or enumeration
      str += m.prefix()->name(po.abbreviate_names && ename->abbreviation && (ename->suffix || ename->name.find("_") == string::npos), po.use_unicode_signs, po.can_display_unicode_string_function, po.can_display_unicode_string_arg);
                                                                                                                       ^~~~~~
callbacks.cc:6966:20: error: 'string' is not a class, namespace, or enumeration
      bool b = i == string::npos || i == ename->name.length() - 1 || i == 0;
                    ^~~~~~
callbacks.cc:6974:7: error: 'str' was not declared in this scope
       str += ename->name.substr(0, ename->name.length() - i2);
       ^~~
callbacks.cc:6976:7: error: 'str' was not declared in this scope
       str += ename->name.substr(0, i);
       ^~~
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:47: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                               ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:106: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                          ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:145: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                 ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6979:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:6979:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:6980:7: error: 'str' was not declared in this scope
       str += "<sub>";
       ^~~
callbacks.cc:6988:6: error: 'str' was not declared in this scope
      str += ename->name;
      ^~~
callbacks.cc:6990:20: error: 'str' was not declared in this scope
     gsub("_", " ", str);
                    ^~~
callbacks.cc:7009:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:7009:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7012:6: error: 'str' was not declared in this scope
      str = "<i>";
      ^~~
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:40: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                        ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:101: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                     ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:161: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                 ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7014:10: error: 'str' was not declared in this scope
     TTBP(str);
          ^
callbacks.cc:349:200: note: in definition of macro 'TTB'
 #define TTB(str)   if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";}
                                                                                                                                                                                                        ^~~
callbacks.cc:7014:5: note: in expansion of macro 'TTBP'
     TTBP(str);
     ^
callbacks.cc:7019:20: error: 'string' is not a class, namespace, or enumeration
      bool b = i == string::npos || i == ename->name.length() - 1 || i == 0;
                    ^~~~~~
callbacks.cc:7027:7: error: 'str' was not declared in this scope
       str += ename->name.substr(0, ename->name.length() - i2);
       ^~~
callbacks.cc:7029:7: error: 'str' was not declared in this scope
       str += ename->name.substr(0, i);
       ^~~
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:47: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                               ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:106: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                          ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:351:145: note: in definition of macro 'TTB_XSMALL'
 #define TTB_XSMALL(str)   if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                 ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:46: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                              ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:104: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                        ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:163: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                   ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7032:18: error: 'str' was not declared in this scope
       TTBP_SMALL(str);
                  ^
callbacks.cc:350:202: note: in definition of macro 'TTB_SMALL'
 #define TTB_SMALL(str)   if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";}
                                                                                                                                                                                                          ^~~
callbacks.cc:7032:7: note: in expansion of macro 'TTBP_SMALL'
       TTBP_SMALL(str);
       ^
callbacks.cc:7033:7: error: 'str' was not declared in this scope
       str += "<sub>";
       ^~~
callbacks.cc:7041:6: error: 'str' was not declared in this scope
      str += ename->name;
      ^~~
callbacks.cc:7043:20: error: 'str' was not declared in this scope
     gsub("_", " ", str);
                    ^~~
callbacks.cc:7131:6: error: 'string' was not declared in this scope
      string root_str;
      ^~~~~~
callbacks.cc:7131:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7132:16: error: 'root_str' was not declared in this scope
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:7132:16: note: suggested alternative: 'root_h'
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:49: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                 ^~~
callbacks.cc:7132:16: error: 'root_str' was not declared in this scope
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:7132:16: note: suggested alternative: 'root_h'
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:108: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                            ^~~
callbacks.cc:7132:16: error: 'root_str' was not declared in this scope
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:7132:16: note: suggested alternative: 'root_h'
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:147: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                   ^~~
callbacks.cc:7132:16: error: 'root_str' was not declared in this scope
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:7132:16: note: suggested alternative: 'root_h'
      TT_XSMALL(root_str, i2s(i_root));
                ^
callbacks.cc:357:182: note: in definition of macro 'TT_XSMALL'
 #define TT_XSMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"medium\">";} else if(scaledown == 1) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                      ^~~
callbacks.cc:7134:43: error: 'root_str' was not declared in this scope
      pango_layout_set_markup(layout_root, root_str.c_str(), -1);
                                           ^~~~~~~~
callbacks.cc:7134:43: note: suggested alternative: 'root_h'
      pango_layout_set_markup(layout_root, root_str.c_str(), -1);
                                           ^~~~~~~~
                                           root_h
callbacks.cc:7244:6: error: 'string' was not declared in this scope
      string s = "d";
      ^~~~~~
callbacks.cc:7244:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7245:28: error: 's' was not declared in this scope
      if(m[1].isSymbolic()) s += m[1].symbol();
                            ^
callbacks.cc:7246:11: error: 's' was not declared in this scope
      else s += m[1].variable()->preferredDisplayName(po.abbreviate_names, po.use_unicode_signs, false, po.use_reference_names, po.can_display_unicode_string_function, po.can_display_unicode_string_arg).name;
           ^
callbacks.cc:7247:37: error: 's' was not declared in this scope
      mdx.transform(STRUCT_DIVISION, s);
                                     ^
callbacks.cc:7292:5: error: 'vector' was not declared in this scope
     vector<cairo_surface_t*> surface_args;
     ^~~~~~
callbacks.cc:7292:5: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:7292:27: error: expected primary-expression before '*' token
     vector<cairo_surface_t*> surface_args;
                           ^
callbacks.cc:7292:28: error: expected primary-expression before '>' token
     vector<cairo_surface_t*> surface_args;
                            ^
callbacks.cc:7292:30: error: 'surface_args' was not declared in this scope
     vector<cairo_surface_t*> surface_args;
                              ^~~~~~~~~~~~
callbacks.cc:7292:30: note: suggested alternative: 'surface'
     vector<cairo_surface_t*> surface_args;
                              ^~~~~~~~~~~~
                              surface
callbacks.cc:7293:16: error: expected primary-expression before '>' token
     vector<gint> hpa;
                ^
callbacks.cc:7293:18: error: 'hpa' was not declared in this scope
     vector<gint> hpa;
                  ^~~
callbacks.cc:7294:16: error: expected primary-expression before '>' token
     vector<gint> cpa;
                ^
callbacks.cc:7294:18: error: 'cpa' was not declared in this scope
     vector<gint> cpa;
                  ^~~
callbacks.cc:7295:16: error: expected primary-expression before '>' token
     vector<gint> wpa;
                ^
callbacks.cc:7295:18: error: 'wpa' was not declared in this scope
     vector<gint> wpa;
                  ^~~
callbacks.cc:7299:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:7299:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7300:9: error: 'str' was not declared in this scope
     TTP(str, po.comma())
         ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:7300:5: note: in expansion of macro 'TTP'
     TTP(str, po.comma())
     ^
callbacks.cc:7301:43: error: 'str' was not declared in this scope
     pango_layout_set_markup(layout_comma, str.c_str(), -1);
                                           ^~~
callbacks.cc:7314:14: error: expected ';' before 'defstr'
       string defstr = m.function()->getDefaultValue(argcount);
              ^~~~~~
callbacks.cc:7316:25: error: 'defstr' was not declared in this scope
       remove_blank_ends(defstr);
                         ^~~~~~
callbacks.cc:7316:25: note: suggested alternative: 'eqstr'
       remove_blank_ends(defstr);
                         ^~~~~~
                         eqstr
callbacks.cc:7322:132: error: 'string' is not a class, namespace, or enumeration
       } else if(m[argcount - 1].isInteger() && (!arg || arg->type() != ARGUMENT_TYPE_TEXT) && defstr.find_first_not_of(NUMBERS) == string::npos && m[argcount - 1].number() == s2i(defstr)) {
                                                                                                                                    ^~~~~~
callbacks.cc:7337:20: error: 'string' is not a class, namespace, or enumeration
      bool b = i == string::npos || i == ename->name.length() - 1 || i == 0;
                    ^~~~~~
callbacks.cc:7461:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:7461:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:356:48: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:356:106: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                          ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:356:165: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                     ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:356:204: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                            ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:356:239: note: in definition of macro 'TT_SMALL'
 #define TT_SMALL(str, x)  {if(scaledown <= 0) {str += "<span size=\"large\">";} else if(scaledown == 1) {str += "<span size=\"medium\">";} else if(scaledown == 2) {str += "<span size=\"small\">";} else {str += "<span size=\"x-small\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                               ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7462:9: error: 'str' was not declared in this scope
     TTP(str, _("undefined"));
         ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:7462:5: note: in expansion of macro 'TTP'
     TTP(str, _("undefined"));
     ^
callbacks.cc:7463:37: error: 'str' was not declared in this scope
     pango_layout_set_markup(layout, str.c_str(), -1);
                                     ^~~
callbacks.cc:7522:5: error: 'string' was not declared in this scope
     string str;
     ^~~~~~
callbacks.cc:7522:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7523:8: error: 'str' was not declared in this scope
     TT(str, _("approx."));
        ^
callbacks.cc:355:43: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                           ^~~
callbacks.cc:7523:8: error: 'str' was not declared in this scope
     TT(str, _("approx."));
        ^
callbacks.cc:355:104: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                        ^~~
callbacks.cc:7523:8: error: 'str' was not declared in this scope
     TT(str, _("approx."));
        ^
callbacks.cc:355:164: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                    ^~~
callbacks.cc:7523:8: error: 'str' was not declared in this scope
     TT(str, _("approx."));
        ^
callbacks.cc:355:203: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                           ^~~
callbacks.cc:7523:8: error: 'str' was not declared in this scope
     TT(str, _("approx."));
        ^
callbacks.cc:355:237: note: in definition of macro 'TT'
 #define TT(str, x)   {if(scaledown <= 0) {str += "<span size=\"xx-large\">";} else if(scaledown == 1) {str += "<span size=\"x-large\">";} else if(scaledown == 2) {str += "<span size=\"large\">";} else {str += "<span size=\"medium\">";} str += x; str += "</span>";}
                                                                                                                                                                                                                                             ^~~
callbacks.cc:7524:44: error: 'str' was not declared in this scope
     pango_layout_set_markup(layout_equals, str.c_str(), -1);
                                            ^~~
callbacks.cc: In function 'void clearresult()':
callbacks.cc:7562:2: error: 'date_map' was not declared in this scope
  date_map.clear();
  ^~~~~~~~
callbacks.cc:7562:2: note: suggested alternative: 'GdkKeymap'
  date_map.clear();
  ^~~~~~~~
  GdkKeymap
callbacks.cc:7563:2: error: 'number_map' was not declared in this scope
  number_map.clear();
  ^~~~~~~~~~
callbacks.cc:7563:2: note: suggested alternative: 'NumberType'
  number_map.clear();
  ^~~~~~~~~~
  NumberType
callbacks.cc:7564:2: error: 'number_base_map' was not declared in this scope
  number_base_map.clear();
  ^~~~~~~~~~~~~~~
callbacks.cc:7565:2: error: 'number_exp_map' was not declared in this scope
  number_exp_map.clear();
  ^~~~~~~~~~~~~~
callbacks.cc:7565:2: note: suggested alternative: 'mpfr_exp2m1'
  number_exp_map.clear();
  ^~~~~~~~~~~~~~
  mpfr_exp2m1
callbacks.cc:7566:2: error: 'number_exp_minus_map' was not declared in this scope
  number_exp_minus_map.clear();
  ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:7567:2: error: 'number_approx_map' was not declared in this scope
  number_approx_map.clear();
  ^~~~~~~~~~~~~~~~~
callbacks.cc:7579:2: error: 'result_bin' was not declared in this scope
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
  ^~~~~~~~~~
callbacks.cc:7579:2: note: suggested alternative: 'resultview'
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
  ^~~~~~~~~~
  resultview
callbacks.cc:7579:19: error: 'result_oct' was not declared in this scope
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                   ^~~~~~~~~~
callbacks.cc:7579:19: note: suggested alternative: 'resultview'
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                   ^~~~~~~~~~
                   resultview
callbacks.cc:7579:36: error: 'result_dec' was not declared in this scope
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                                    ^~~~~~~~~~
callbacks.cc:7579:36: note: suggested alternative: 'resultview'
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                                    ^~~~~~~~~~
                                    resultview
callbacks.cc:7579:53: error: 'result_hex' was not declared in this scope
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                                                     ^~~~~~~~~~
callbacks.cc:7579:53: note: suggested alternative: 'resultview'
  result_bin = ""; result_oct = ""; result_dec = ""; result_hex = "";
                                                     ^~~~~~~~~~
                                                     resultview
callbacks.cc: At global scope:
callbacks.cc:7599:6: error: 'ViewThread' has not been declared
 void ViewThread::run() {
      ^~~~~~~~~~
callbacks.cc: In function 'void run()':
callbacks.cc:7603:12: error: invalid conversion from 'int*' to 'int' [-fpermissive]
   if(!read(&scale_tmp)) break;
            ^~~~~~~~~~
callbacks.cc:7603:22: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
   if(!read(&scale_tmp)) break;
                      ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7605:12: error: invalid conversion from 'void**' to 'int' [-fpermissive]
   if(!read(&x) || !x) break;
            ^~
callbacks.cc:7605:14: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
   if(!read(&x) || !x) break;
              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7608:12: error: invalid conversion from 'bool*' to 'int' [-fpermissive]
   if(!read(&b_stack)) break;
            ^~~~~~~~
callbacks.cc:7608:20: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
   if(!read(&b_stack)) break;
                    ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7609:12: error: invalid conversion from 'void**' to 'int' [-fpermissive]
   if(!read(&x)) break;
            ^~
callbacks.cc:7609:14: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
   if(!read(&x)) break;
              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7611:12: error: invalid conversion from 'void**' to 'int' [-fpermissive]
   if(!read(&x)) break;
            ^~
callbacks.cc:7611:14: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
   if(!read(&x)) break;
              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7617:13: error: invalid conversion from 'bool**' to 'int' [-fpermissive]
    if(!read(&po.is_approximate)) break;
             ^~~~~~~~~~~~~~~~~~
callbacks.cc:7617:31: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
    if(!read(&po.is_approximate)) break;
                               ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7619:13: error: invalid conversion from 'void**' to 'int' [-fpermissive]
    if(!read(&x_to)) break;
             ^~~~~
callbacks.cc:7619:18: error: too few arguments to function 'ssize_t read(int, void*, size_t)'
    if(!read(&x_to)) break;
                  ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gcredentials.h:34:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:48,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
/usr/include/unistd.h:132:10: note: declared here
 ssize_t  read(int, void *, size_t);
          ^~~~
callbacks.cc:7654:4: error: 'parsed_text' was not declared in this scope
    parsed_text = mp.print(po);
    ^~~~~~~~~~~
callbacks.cc:7654:4: note: suggested alternative: 'parsed_mstruct'
    parsed_text = mp.print(po);
    ^~~~~~~~~~~
    parsed_mstruct
callbacks.cc:7669:4: error: 'string' was not declared in this scope
    string mstr;
    ^~~~~~
callbacks.cc:7669:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7679:6: error: 'mstr' was not declared in this scope
      mstr = mm2.getElement(index_r + 1, index_c + 1)->print(printops);
      ^~~~
callbacks.cc:7679:6: note: suggested alternative: 'eqstr'
      mstr = mm2.getElement(index_r + 1, index_c + 1)->print(printops);
      ^~~~
      eqstr
callbacks.cc:7688:3: error: 'result_text' was not declared in this scope
   result_text = m.print(printops);
   ^~~~~~~~~~~
callbacks.cc:7688:3: note: suggested alternative: 'resultview'
   result_text = m.print(printops);
   ^~~~~~~~~~~
   resultview
callbacks.cc:7689:26: error: 'replace_result_cis' was not declared in this scope
   if(complex_angle_form) replace_result_cis(result_text);
                          ^~~~~~~~~~~~~~~~~~
callbacks.cc:7689:26: note: suggested alternative: 'update_result_bases'
   if(complex_angle_form) replace_result_cis(result_text);
                          ^~~~~~~~~~~~~~~~~~
                          update_result_bases
callbacks.cc:7693:4: error: 'result_bin' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
    ^~~~~~~~~~
callbacks.cc:7693:4: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
    ^~~~~~~~~~
    resultview
callbacks.cc:7693:21: error: 'result_oct' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                     ^~~~~~~~~~
callbacks.cc:7693:21: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                     ^~~~~~~~~~
                     resultview
callbacks.cc:7693:38: error: 'result_dec' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                      ^~~~~~~~~~
callbacks.cc:7693:38: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                      ^~~~~~~~~~
                                      resultview
callbacks.cc:7693:55: error: 'result_hex' was not declared in this scope
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                                       ^~~~~~~~~~
callbacks.cc:7693:55: note: suggested alternative: 'resultview'
    result_bin = ""; result_oct = "", result_dec = "", result_hex = "";
                                                       ^~~~~~~~~~
                                                       resultview
callbacks.cc:7715:14: error: 'string' has not been declared
      if(i != string::npos && result_oct.length() > i + 1 && result_oct[i] == '0' && is_in(NUMBERS, result_oct[i + 1])) result_oct.erase(i, 1);
              ^~~~~~
callbacks.cc:7735:4: error: 'result_text_long' was not declared in this scope
    result_text_long = m.print(printops_long);
    ^~~~~~~~~~~~~~~~
callbacks.cc:7735:4: note: suggested alternative: 'result_too_long'
    result_text_long = m.print(printops_long);
    ^~~~~~~~~~~~~~~~
    result_too_long
callbacks.cc:7736:27: error: 'replace_result_cis' was not declared in this scope
    if(complex_angle_form) replace_result_cis(result_text_long);
                           ^~~~~~~~~~~~~~~~~~
callbacks.cc:7736:27: note: suggested alternative: 'update_result_bases'
    if(complex_angle_form) replace_result_cis(result_text_long);
                           ^~~~~~~~~~~~~~~~~~
                           update_result_bases
callbacks.cc:7738:4: error: 'result_text_long' was not declared in this scope
    result_text_long = "";
    ^~~~~~~~~~~~~~~~
callbacks.cc:7738:4: note: suggested alternative: 'result_too_long'
    result_text_long = "";
    ^~~~~~~~~~~~~~~~
    result_too_long
callbacks.cc: In function 'void reload_history(gint)':
callbacks.cc:7825:2: error: 'string' was not declared in this scope
  string history_str;
  ^~~~~~
callbacks.cc:7825:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7827:13: error: 'inhistory' was not declared in this scope
  size_t i = inhistory.size();
             ^~~~~~~~~
callbacks.cc:7827:13: note: suggested alternative: 'show_history'
  size_t i = inhistory.size();
             ^~~~~~~~~
             show_history
callbacks.cc:7831:10: error: 'inhistory_type' was not declared in this scope
   switch(inhistory_type[i]) {
          ^~~~~~~~~~~~~~
callbacks.cc:7831:10: note: suggested alternative: 'historystore'
   switch(inhistory_type[i]) {
          ^~~~~~~~~~~~~~
          historystore
callbacks.cc:7834:5: error: 'history_str' was not declared in this scope
     history_str = "";
     ^~~~~~~~~~~
callbacks.cc:7834:5: note: suggested alternative: 'history_iter'
     history_str = "";
     ^~~~~~~~~~~
     history_iter
callbacks.cc:7854:5: error: 'add_line_breaks' was not declared in this scope
     add_line_breaks(history_str, 2, history_expr_i);
     ^~~~~~~~~~~~~~~
callbacks.cc:7855:5: error: 'fix_history_string2' was not declared in this scope
     fix_history_string2(history_str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7855:5: note: suggested alternative: 'g_intern_string'
     fix_history_string2(history_str);
     ^~~~~~~~~~~~~~~~~~~
     g_intern_string
callbacks.cc:7856:5: error: 'improve_result_text' was not declared in this scope
     improve_result_text(history_str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7859:20: error: 'string' is not a class, namespace, or enumeration
      if(trans_l != string::npos) {
                    ^~~~~~
callbacks.cc:7865:128: error: 'inhistory_value' was not declared in this scope
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, history_scroll_width, 6, 1.0, 7, PANGO_ALIGN_RIGHT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
callbacks.cc:7865:128: note: suggested alternative: 'history_column'
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, history_scroll_width, 6, 1.0, 7, PANGO_ALIGN_RIGHT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
                                                                                                                                history_column
callbacks.cc:7875:13: error: expected ';' before 'expr_str'
      string expr_str;
             ^~~~~~~~
callbacks.cc:7876:67: error: 'expr_str' was not declared in this scope
      if(inhistory_type[i + 1] == QALCULATE_HISTORY_RPN_OPERATION) expr_str = ("RPN Operation");
                                                                   ^~~~~~~~
callbacks.cc:7876:67: note: suggested alternative: 'mpfr_sqr'
      if(inhistory_type[i + 1] == QALCULATE_HISTORY_RPN_OPERATION) expr_str = ("RPN Operation");
                                                                   ^~~~~~~~
                                                                   mpfr_sqr
callbacks.cc:7877:73: error: 'expr_str' was not declared in this scope
      else if(inhistory_type[i + 1] == QALCULATE_HISTORY_REGISTER_MOVED) expr_str = ("RPN Register Moved");
                                                                         ^~~~~~~~
callbacks.cc:7877:73: note: suggested alternative: 'mpfr_sqr'
      else if(inhistory_type[i + 1] == QALCULATE_HISTORY_REGISTER_MOVED) expr_str = ("RPN Register Moved");
                                                                         ^~~~~~~~
                                                                         mpfr_sqr
callbacks.cc:7878:11: error: 'expr_str' was not declared in this scope
      else expr_str = inhistory[i + 1];
           ^~~~~~~~
callbacks.cc:7878:11: note: suggested alternative: 'mpfr_sqr'
      else expr_str = inhistory[i + 1];
           ^~~~~~~~
           mpfr_sqr
callbacks.cc:7879:6: error: 'history_str' was not declared in this scope
      history_str = fix_history_string(expr_str);
      ^~~~~~~~~~~
callbacks.cc:7879:6: note: suggested alternative: 'history_iter'
      history_str = fix_history_string(expr_str);
      ^~~~~~~~~~~
      history_iter
callbacks.cc:7879:39: error: 'expr_str' was not declared in this scope
      history_str = fix_history_string(expr_str);
                                       ^~~~~~~~
callbacks.cc:7879:39: note: suggested alternative: 'mpfr_sqr'
      history_str = fix_history_string(expr_str);
                                       ^~~~~~~~
                                       mpfr_sqr
callbacks.cc:7879:20: error: 'fix_history_string' was not declared in this scope
      history_str = fix_history_string(expr_str);
                    ^~~~~~~~~~~~~~~~~~
callbacks.cc:7879:20: note: suggested alternative: 'g_intern_string'
      history_str = fix_history_string(expr_str);
                    ^~~~~~~~~~~~~~~~~~
                    g_intern_string
callbacks.cc:7883:13: error: expected ';' before 'str2'
      string str2;
             ^~~~
callbacks.cc:7885:7: error: 'str2' was not declared in this scope
       str2 = "=";
       ^~~~
callbacks.cc:7885:7: note: suggested alternative: 'stat'
       str2 = "=";
       ^~~~
       stat
callbacks.cc:7888:8: error: 'str2' was not declared in this scope
        str2 = SIGN_ALMOST_EQUAL;
        ^~~~
callbacks.cc:7888:8: note: suggested alternative: 'stat'
        str2 = SIGN_ALMOST_EQUAL;
        ^~~~
        stat
callbacks.cc:7890:8: error: 'str2' was not declared in this scope
        str2 = _("approx.");
        ^~~~
callbacks.cc:7890:8: note: suggested alternative: 'stat'
        str2 = _("approx.");
        ^~~~
        stat
callbacks.cc:7893:21: error: 'str2' was not declared in this scope
      history_str += str2;
                     ^~~~
callbacks.cc:7893:21: note: suggested alternative: 'stat'
      history_str += str2;
                     ^~~~
                     stat
callbacks.cc:7903:7: error: 'add_line_breaks' was not declared in this scope
       add_line_breaks(history_str, 1, 0);
       ^~~~~~~~~~~~~~~
callbacks.cc:7904:7: error: 'fix_history_string2' was not declared in this scope
       fix_history_string2(history_str);
       ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7904:7: note: suggested alternative: 'g_intern_string'
       fix_history_string2(history_str);
       ^~~~~~~~~~~~~~~~~~~
       g_intern_string
callbacks.cc:7917:9: error: 'inhistory_protected' was not declared in this scope
      if(inhistory_protected[i + 1] || (i + 2 < inhistory.size() && inhistory_type[i + 2] == QALCULATE_HISTORY_BOOKMARK)) {
         ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7917:9: note: suggested alternative: '__dso_protected'
      if(inhistory_protected[i + 1] || (i + 2 < inhistory.size() && inhistory_type[i + 2] == QALCULATE_HISTORY_BOOKMARK)) {
         ^~~~~~~~~~~~~~~~~~~
         __dso_protected
callbacks.cc:7921:129: error: 'inhistory_value' was not declared in this scope
      gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 2, inhistory_value[i] > 0 ? i2s(inhistory_value[i]).c_str() : "   ", 3, inhistory_value[i], 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                 ^~~~~~~~~~~~~~~
callbacks.cc:7921:129: note: suggested alternative: 'history_column'
      gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 2, inhistory_value[i] > 0 ? i2s(inhistory_value[i]).c_str() : "   ", 3, inhistory_value[i], 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                 ^~~~~~~~~~~~~~~
                                                                                                                                 history_column
callbacks.cc:7929:12: error: expected ';' before 'str'
     string str = "- ";
            ^~~
callbacks.cc:7930:5: error: 'str' was not declared in this scope
     str += inhistory[i];
     ^~~
callbacks.cc:7931:5: error: 'add_line_breaks' was not declared in this scope
     add_line_breaks(str, false, 2);
     ^~~~~~~~~~~~~~~
callbacks.cc:7932:5: error: 'fix_history_string2' was not declared in this scope
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7932:5: note: suggested alternative: 'g_intern_string'
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
     g_intern_string
callbacks.cc:7933:5: error: 'history_str' was not declared in this scope
     history_str = "<span foreground=\"";
     ^~~~~~~~~~~
callbacks.cc:7933:5: note: suggested alternative: 'history_iter'
     history_str = "<span foreground=\"";
     ^~~~~~~~~~~
     history_iter
callbacks.cc:7939:128: error: 'inhistory_value' was not declared in this scope
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
callbacks.cc:7939:128: note: suggested alternative: 'history_column'
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
                                                                                                                                history_column
callbacks.cc:7947:12: error: expected ';' before 'str'
     string str = inhistory[i];
            ^~~
callbacks.cc:7948:21: error: 'str' was not declared in this scope
     add_line_breaks(str, false);
                     ^~~
callbacks.cc:7948:5: error: 'add_line_breaks' was not declared in this scope
     add_line_breaks(str, false);
     ^~~~~~~~~~~~~~~
callbacks.cc:7949:5: error: 'fix_history_string2' was not declared in this scope
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:7949:5: note: suggested alternative: 'g_intern_string'
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
     g_intern_string
callbacks.cc:7950:5: error: 'history_str' was not declared in this scope
     history_str = "<span foreground=\"";
     ^~~~~~~~~~~
callbacks.cc:7950:5: note: suggested alternative: 'history_iter'
     history_str = "<span foreground=\"";
     ^~~~~~~~~~~
     history_iter
callbacks.cc:7956:128: error: 'inhistory_value' was not declared in this scope
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
callbacks.cc:7956:128: note: suggested alternative: 'history_column'
     gtk_list_store_insert_with_values(historystore, &history_iter, from_index < 0 ? -1 : pos, 0, history_str.c_str(), 1, i, 3, inhistory_value[i], 4, 0, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                                ^~~~~~~~~~~~~~~
                                                                                                                                history_column
callbacks.cc: At global scope:
callbacks.cc:7966:22: error: variable or field 'add_line_breaks' declared void
 void add_line_breaks(string &str, int expr, size_t first_i) {
                      ^~~~~~
callbacks.cc:7966:22: error: 'string' was not declared in this scope
callbacks.cc:7966:22: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:7966:30: error: 'str' was not declared in this scope
 void add_line_breaks(string &str, int expr, size_t first_i) {
                              ^~~
callbacks.cc:7966:35: error: expected primary-expression before 'int'
 void add_line_breaks(string &str, int expr, size_t first_i) {
                                   ^~~
callbacks.cc:7966:52: error: expected primary-expression before 'first_i'
 void add_line_breaks(string &str, int expr, size_t first_i) {
                                                    ^~~~~~~
callbacks.cc: In function 'void update_result_bases()':
callbacks.cc:8167:6: error: 'result_hex' was not declared in this scope
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
      ^~~~~~~~~~
callbacks.cc:8167:6: note: suggested alternative: 'resultview'
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
      ^~~~~~~~~~
      resultview
callbacks.cc:8167:29: error: 'result_dec' was not declared in this scope
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                             ^~~~~~~~~~
callbacks.cc:8167:29: note: suggested alternative: 'resultview'
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                             ^~~~~~~~~~
                             resultview
callbacks.cc:8167:52: error: 'result_oct' was not declared in this scope
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                                                    ^~~~~~~~~~
callbacks.cc:8167:52: note: suggested alternative: 'resultview'
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                                                    ^~~~~~~~~~
                                                    resultview
callbacks.cc:8167:75: error: 'result_bin' was not declared in this scope
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                                                                           ^~~~~~~~~~
callbacks.cc:8167:75: note: suggested alternative: 'resultview'
  if(!result_hex.empty() || !result_dec.empty() || !result_oct.empty() || !result_bin.empty()) {
                                                                           ^~~~~~~~~~
                                                                           resultview
callbacks.cc:8168:3: error: 'string' was not declared in this scope
   string str1, str2;
   ^~~~~~
callbacks.cc:8168:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8171:4: error: 'str1' was not declared in this scope
    str1 = "=";
    ^~~~
callbacks.cc:8171:4: note: suggested alternative: 'stat'
    str1 = "=";
    ^~~~
    stat
callbacks.cc:8173:4: error: 'str1' was not declared in this scope
    str1 = SIGN_ALMOST_EQUAL;
    ^~~~
callbacks.cc:8173:4: note: suggested alternative: 'stat'
    str1 = SIGN_ALMOST_EQUAL;
    ^~~~
    stat
callbacks.cc:8176:4: error: 'str1' was not declared in this scope
    str1 = "= ";
    ^~~~
callbacks.cc:8176:4: note: suggested alternative: 'stat'
    str1 = "= ";
    ^~~~
    stat
callbacks.cc:8179:3: error: 'str1' was not declared in this scope
   str1 += " ";
   ^~~~
callbacks.cc:8179:3: note: suggested alternative: 'stat'
   str1 += " ";
   ^~~~
   stat
callbacks.cc:8180:22: error: 'str2' was not declared in this scope
   if(b_almost_equal) str2 = SIGN_ALMOST_EQUAL " ";
                      ^~~~
callbacks.cc:8180:22: note: suggested alternative: 'stat'
   if(b_almost_equal) str2 = SIGN_ALMOST_EQUAL " ";
                      ^~~~
                      stat
callbacks.cc:8181:8: error: 'str2' was not declared in this scope
   else str2 = "= ";
        ^~~~
callbacks.cc:8181:8: note: suggested alternative: 'stat'
   else str2 = "= ";
        ^~~~
        stat
callbacks.cc: At global scope:
callbacks.cc:8268:84: error: 'string' has not been declared
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
                                                                                    ^~~~~~
callbacks.cc: In function 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)':
callbacks.cc:8317:5: error: 'result_text' was not declared in this scope
     result_text = _("RPN Register Moved");
     ^~~~~~~~~~~
callbacks.cc:8317:5: note: suggested alternative: 'resultview'
     result_text = _("RPN Register Moved");
     ^~~~~~~~~~~
     resultview
callbacks.cc:8318:5: error: 'inhistory_type' was not declared in this scope
     inhistory_type.push_back(QALCULATE_HISTORY_REGISTER_MOVED);
     ^~~~~~~~~~~~~~
callbacks.cc:8318:5: note: suggested alternative: 'inhistory_index'
     inhistory_type.push_back(QALCULATE_HISTORY_REGISTER_MOVED);
     ^~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8319:5: error: 'inhistory_protected' was not declared in this scope
     inhistory_protected.push_back(false);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8319:5: note: suggested alternative: '__dso_protected'
     inhistory_protected.push_back(false);
     ^~~~~~~~~~~~~~~~~~~
     __dso_protected
callbacks.cc:8320:5: error: 'inhistory' was not declared in this scope
     inhistory.push_back("");
     ^~~~~~~~~
callbacks.cc:8320:5: note: suggested alternative: 'show_history'
     inhistory.push_back("");
     ^~~~~~~~~
     show_history
callbacks.cc:8321:5: error: 'inhistory_value' was not declared in this scope
     inhistory_value.push_back(nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
callbacks.cc:8321:5: note: suggested alternative: 'inhistory_index'
     inhistory_value.push_back(nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8323:23: error: 'result_text' was not declared in this scope
     remove_blank_ends(result_text);
                       ^~~~~~~~~~~
callbacks.cc:8323:23: note: suggested alternative: 'resultview'
     remove_blank_ends(result_text);
                       ^~~~~~~~~~~
                       resultview
callbacks.cc:8327:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_back(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
callbacks.cc:8327:6: note: suggested alternative: 'inhistory_index'
      inhistory_type.push_back(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
      inhistory_index
callbacks.cc:8328:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_back(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8328:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_back(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:8329:6: error: 'inhistory' was not declared in this scope
      inhistory.push_back("");
      ^~~~~~~~~
callbacks.cc:8329:6: note: suggested alternative: 'show_history'
      inhistory.push_back("");
      ^~~~~~~~~
      show_history
callbacks.cc:8330:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_back(nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
callbacks.cc:8330:6: note: suggested alternative: 'inhistory_index'
      inhistory_value.push_back(nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
      inhistory_index
callbacks.cc:8332:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_back(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
callbacks.cc:8332:6: note: suggested alternative: 'inhistory_index'
      inhistory_type.push_back(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
      inhistory_index
callbacks.cc:8333:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_back(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8333:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_back(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:8334:6: error: 'inhistory' was not declared in this scope
      inhistory.push_back(result_text);
      ^~~~~~~~~
callbacks.cc:8334:6: note: suggested alternative: 'show_history'
      inhistory.push_back(result_text);
      ^~~~~~~~~
      show_history
callbacks.cc:8335:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_back(nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
callbacks.cc:8335:6: note: suggested alternative: 'inhistory_index'
      inhistory_value.push_back(nr_of_new_expressions);
      ^~~~~~~~~~~~~~~
      inhistory_index
callbacks.cc:8337:7: error: 'string' was not declared in this scope
       string expression_str = get_expression_text();
       ^~~~~~
callbacks.cc:8337:7: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8338:93: error: 'expression_str' was not declared in this scope
       if((parsed_mstruct && parsed_mstruct->containsFunction(CALCULATOR->f_uncertainty)) || expression_str.find("+/-") != string::npos || expression_str.find("+/" SIGN_MINUS) != string::npos || expression_str.find("±") != string::npos) printops.interval_display = INTERVAL_DISPLAY_PLUSMINUS;
                                                                                             ^~~~~~~~~~~~~~
callbacks.cc:8338:93: note: suggested alternative: 'expressiontext'
       if((parsed_mstruct && parsed_mstruct->containsFunction(CALCULATOR->f_uncertainty)) || expression_str.find("+/-") != string::npos || expression_str.find("+/" SIGN_MINUS) != string::npos || expression_str.find("±") != string::npos) printops.interval_display = INTERVAL_DISPLAY_PLUSMINUS;
                                                                                             ^~~~~~~~~~~~~~
                                                                                             expressiontext
callbacks.cc:8338:123: error: 'string' is not a class, namespace, or enumeration
       if((parsed_mstruct && parsed_mstruct->containsFunction(CALCULATOR->f_uncertainty)) || expression_str.find("+/-") != string::npos || expression_str.find("+/" SIGN_MINUS) != string::npos || expression_str.find("±") != string::npos) printops.interval_display = INTERVAL_DISPLAY_PLUSMINUS;
                                                                                                                           ^~~~~~
callbacks.cc:8338:179: error: 'string' is not a class, namespace, or enumeration
       if((parsed_mstruct && parsed_mstruct->containsFunction(CALCULATOR->f_uncertainty)) || expression_str.find("+/-") != string::npos || expression_str.find("+/" SIGN_MINUS) != string::npos || expression_str.find("±") != string::npos) printops.interval_display = INTERVAL_DISPLAY_PLUSMINUS;
                                                                                                                                                                                   ^~~~~~
callbacks.cc:8338:224: error: 'string' is not a class, namespace, or enumeration
       if((parsed_mstruct && parsed_mstruct->containsFunction(CALCULATOR->f_uncertainty)) || expression_str.find("+/-") != string::npos || expression_str.find("+/" SIGN_MINUS) != string::npos || expression_str.find("±") != string::npos) printops.interval_display = INTERVAL_DISPLAY_PLUSMINUS;
                                                                                                                                                                                                                                ^~~~~~
callbacks.cc:8345:92: error: 'result_text' was not declared in this scope
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                            ^~~~~~~~~~~
callbacks.cc:8345:92: note: suggested alternative: 'resultview'
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                            ^~~~~~~~~~~
                                                                                            resultview
callbacks.cc:8345:73: error: 'fix_history_string' was not declared in this scope
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                         ^~~~~~~~~~~~~~~~~~
callbacks.cc:8345:73: note: suggested alternative: 'g_intern_string'
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                         ^~~~~~~~~~~~~~~~~~
                                                                         g_intern_string
callbacks.cc:8345:117: error: 'inhistory' was not declared in this scope
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                     ^~~~~~~~~
callbacks.cc:8345:117: note: suggested alternative: 'show_history'
    gtk_list_store_insert_with_values(historystore, &history_iter, 0, 0, fix_history_string(result_text).c_str(), 1, inhistory.size() - 1, 2, i2s(nr_of_new_expressions).c_str(), 3, nr_of_new_expressions, 4, EXPRESSION_YPAD, 5, 6, 6, 0.0, 7, PANGO_ALIGN_LEFT, -1);
                                                                                                                     ^~~~~~~~~
                                                                                                                     show_history
callbacks.cc:8349:4: error: 'history_parsed' was not declared in this scope
    history_parsed.push_back(NULL);
    ^~~~~~~~~~~~~~
callbacks.cc:8349:4: note: suggested alternative: 'history_iter'
    history_parsed.push_back(NULL);
    ^~~~~~~~~~~~~~
    history_iter
callbacks.cc:8350:4: error: 'history_answer' was not declared in this scope
    history_answer.push_back(NULL);
    ^~~~~~~~~~~~~~
callbacks.cc:8350:4: note: suggested alternative: 'history_iter'
    history_answer.push_back(NULL);
    ^~~~~~~~~~~~~~
    history_iter
callbacks.cc:8353:23: error: request for member 'empty' in 'transformation', which is of non-class type 'int'
    if(!transformation.empty()) {
                       ^~~~~
callbacks.cc:8354:5: error: 'string' was not declared in this scope
     string history_str = transformation;
     ^~~~~~
callbacks.cc:8354:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8355:5: error: 'history_str' was not declared in this scope
     history_str += ":";
     ^~~~~~~~~~~
callbacks.cc:8355:5: note: suggested alternative: 'history_iter'
     history_str += ":";
     ^~~~~~~~~~~
     history_iter
callbacks.cc:8356:5: error: 'add_line_breaks' was not declared in this scope
     add_line_breaks(history_str, 3, 0);
     ^~~~~~~~~~~~~~~
callbacks.cc:8357:5: error: 'fix_history_string2' was not declared in this scope
     fix_history_string2(history_str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8357:5: note: suggested alternative: 'g_intern_string'
     fix_history_string2(history_str);
     ^~~~~~~~~~~~~~~~~~~
     g_intern_string
callbacks.cc:8358:5: error: 'improve_result_text' was not declared in this scope
     improve_result_text(history_str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8371:5: error: 'inhistory' was not declared in this scope
     inhistory.insert(inhistory.begin() + inhistory_index, transformation);
     ^~~~~~~~~
callbacks.cc:8371:5: note: suggested alternative: 'show_history'
     inhistory.insert(inhistory.begin() + inhistory_index, transformation);
     ^~~~~~~~~
     show_history
callbacks.cc:8372:5: error: 'inhistory_type' was not declared in this scope
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_TRANSFORMATION);
     ^~~~~~~~~~~~~~
callbacks.cc:8372:5: note: suggested alternative: 'inhistory_index'
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_TRANSFORMATION);
     ^~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8373:5: error: 'inhistory_protected' was not declared in this scope
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8373:5: note: suggested alternative: '__dso_protected'
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
     __dso_protected
callbacks.cc:8374:5: error: 'inhistory_value' was not declared in this scope
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
callbacks.cc:8374:5: note: suggested alternative: 'inhistory_index'
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8382:3: error: 'result_text' was not declared in this scope
   result_text = "?";
   ^~~~~~~~~~~
callbacks.cc:8382:3: note: suggested alternative: 'resultview'
   result_text = "?";
   ^~~~~~~~~~~
   resultview
callbacks.cc:8386:3: error: 'parsed_text' was not declared in this scope
   parsed_text = "aborted";
   ^~~~~~~~~~~
callbacks.cc:8386:3: note: suggested alternative: 'parsed_mstruct'
   parsed_text = "aborted";
   ^~~~~~~~~~~
   parsed_mstruct
callbacks.cc:8575:3: error: 'parsed_text' was not declared in this scope
   parsed_text = result_text;
   ^~~~~~~~~~~
callbacks.cc:8575:3: note: suggested alternative: 'parsed_mstruct'
   parsed_text = result_text;
   ^~~~~~~~~~~
   parsed_mstruct
callbacks.cc:8575:17: error: 'result_text' was not declared in this scope
   parsed_text = result_text;
                 ^~~~~~~~~~~
callbacks.cc:8575:17: note: suggested alternative: 'resultview'
   parsed_text = result_text;
                 ^~~~~~~~~~~
                 resultview
callbacks.cc:8583:6: error: 'result_text' was not declared in this scope
   if(result_text.length() > 500000) {
      ^~~~~~~~~~~
callbacks.cc:8583:6: note: suggested alternative: 'resultview'
   if(result_text.length() > 500000) {
      ^~~~~~~~~~~
      resultview
callbacks.cc:8586:22: error: 'result_text' was not declared in this scope
   RPNRegisterChanged(result_text, stack_index);
                      ^~~~~~~~~~~
callbacks.cc:8586:22: note: suggested alternative: 'resultview'
   RPNRegisterChanged(result_text, stack_index);
                      ^~~~~~~~~~~
                      resultview
callbacks.cc:8586:3: error: 'RPNRegisterChanged' was not declared in this scope
   RPNRegisterChanged(result_text, stack_index);
   ^~~~~~~~~~~~~~~~~~
callbacks.cc:8586:3: note: suggested alternative: 'RPNRegisterRemoved'
   RPNRegisterChanged(result_text, stack_index);
   ^~~~~~~~~~~~~~~~~~
   RPNRegisterRemoved
callbacks.cc:8589:6: error: 'result_text' was not declared in this scope
   if(result_text.length() > 500000) {
      ^~~~~~~~~~~
callbacks.cc:8589:6: note: suggested alternative: 'resultview'
   if(result_text.length() > 500000) {
      ^~~~~~~~~~~
      resultview
callbacks.cc:8592:6: error: 'parsed_text' was not declared in this scope
   if(parsed_text.length() > 500000) {
      ^~~~~~~~~~~
callbacks.cc:8592:6: note: suggested alternative: 'parsed_mstruct'
   if(parsed_text.length() > 500000) {
      ^~~~~~~~~~~
      parsed_mstruct
callbacks.cc:8598:4: error: 'string' was not declared in this scope
    string str = expr_str;
    ^~~~~~
callbacks.cc:8598:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8599:4: error: 'str' was not declared in this scope
    str += "<span font-style=\"italic\" foreground=\"";
    ^~~
callbacks.cc:8602:11: error: expected ';' before 'str2'
    string str2;
           ^~~~
callbacks.cc:8604:5: error: 'str2' was not declared in this scope
     str2 = "=";
     ^~~~
callbacks.cc:8604:5: note: suggested alternative: 'stat'
     str2 = "=";
     ^~~~
     stat
callbacks.cc:8605:5: error: 'inhistory_type' was not declared in this scope
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_PARSE);
     ^~~~~~~~~~~~~~
callbacks.cc:8605:5: note: suggested alternative: 'inhistory_index'
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_PARSE);
     ^~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8606:5: error: 'inhistory_protected' was not declared in this scope
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8606:5: note: suggested alternative: '__dso_protected'
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
     __dso_protected
callbacks.cc:8607:5: error: 'inhistory_value' was not declared in this scope
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
callbacks.cc:8607:5: note: suggested alternative: 'inhistory_index'
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8610:6: error: 'str2' was not declared in this scope
      str2 = SIGN_ALMOST_EQUAL;
      ^~~~
callbacks.cc:8610:6: note: suggested alternative: 'stat'
      str2 = SIGN_ALMOST_EQUAL;
      ^~~~
      stat
callbacks.cc:8612:6: error: 'str2' was not declared in this scope
      str2 = _("approx.");
      ^~~~
callbacks.cc:8612:6: note: suggested alternative: 'stat'
      str2 = _("approx.");
      ^~~~
      stat
callbacks.cc:8614:5: error: 'inhistory_type' was not declared in this scope
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_PARSE_APPROXIMATE);
     ^~~~~~~~~~~~~~
callbacks.cc:8614:5: note: suggested alternative: 'inhistory_index'
     inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_PARSE_APPROXIMATE);
     ^~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8615:5: error: 'inhistory_protected' was not declared in this scope
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8615:5: note: suggested alternative: '__dso_protected'
     inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
     ^~~~~~~~~~~~~~~~~~~
     __dso_protected
callbacks.cc:8616:5: error: 'inhistory_value' was not declared in this scope
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
callbacks.cc:8616:5: note: suggested alternative: 'inhistory_index'
     inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
     ^~~~~~~~~~~~~~~
     inhistory_index
callbacks.cc:8618:11: error: 'str2' was not declared in this scope
    str += str2;
           ^~~~
callbacks.cc:8618:11: note: suggested alternative: 'stat'
    str += str2;
           ^~~~
           stat
callbacks.cc:8620:30: error: 'parsed_text' was not declared in this scope
    str += fix_history_string(parsed_text);
                              ^~~~~~~~~~~
callbacks.cc:8620:30: note: suggested alternative: 'parsed_mstruct'
    str += fix_history_string(parsed_text);
                              ^~~~~~~~~~~
                              parsed_mstruct
callbacks.cc:8620:11: error: 'fix_history_string' was not declared in this scope
    str += fix_history_string(parsed_text);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:8620:11: note: suggested alternative: 'g_intern_string'
    str += fix_history_string(parsed_text);
           ^~~~~~~~~~~~~~~~~~
           g_intern_string
callbacks.cc:8622:4: error: 'inhistory' was not declared in this scope
    inhistory.insert(inhistory.begin() + inhistory_index, parsed_text);
    ^~~~~~~~~
callbacks.cc:8622:4: note: suggested alternative: 'show_history'
    inhistory.insert(inhistory.begin() + inhistory_index, parsed_text);
    ^~~~~~~~~
    show_history
callbacks.cc:8623:55: error: 'history_parsed' was not declared in this scope
    if(nr_of_new_expressions > 0 && parsed_mstruct && !history_parsed[nr_of_new_expressions - 1]) {
                                                       ^~~~~~~~~~~~~~
callbacks.cc:8623:55: note: suggested alternative: 'history_iter'
    if(nr_of_new_expressions > 0 && parsed_mstruct && !history_parsed[nr_of_new_expressions - 1]) {
                                                       ^~~~~~~~~~~~~~
                                                       history_iter
callbacks.cc:8632:5: error: 'unfix_history_string' was not declared in this scope
     unfix_history_string(str);
     ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:8632:5: note: suggested alternative: 'on_history_resize'
     unfix_history_string(str);
     ^~~~~~~~~~~~~~~~~~~~
     on_history_resize
callbacks.cc:8633:5: error: 'add_line_breaks' was not declared in this scope
     add_line_breaks(str, 1, 0);
     ^~~~~~~~~~~~~~~
callbacks.cc:8634:5: error: 'fix_history_string2' was not declared in this scope
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8634:5: note: suggested alternative: 'g_intern_string'
     fix_history_string2(str);
     ^~~~~~~~~~~~~~~~~~~
     g_intern_string
callbacks.cc:8654:23: error: 'result_text' was not declared in this scope
    RPNRegisterChanged(result_text, stack_index);
                       ^~~~~~~~~~~
callbacks.cc:8654:23: note: suggested alternative: 'resultview'
    RPNRegisterChanged(result_text, stack_index);
                       ^~~~~~~~~~~
                       resultview
callbacks.cc:8654:4: error: 'RPNRegisterChanged' was not declared in this scope
    RPNRegisterChanged(result_text, stack_index);
    ^~~~~~~~~~~~~~~~~~
callbacks.cc:8654:4: note: suggested alternative: 'RPNRegisterRemoved'
    RPNRegisterChanged(result_text, stack_index);
    ^~~~~~~~~~~~~~~~~~
    RPNRegisterRemoved
callbacks.cc:8657:3: error: 'string' was not declared in this scope
   string str;
   ^~~~~~
callbacks.cc:8657:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8661:4: error: 'str' was not declared in this scope
    str = "=";
    ^~~
callbacks.cc:8664:5: error: 'str' was not declared in this scope
     str = SIGN_ALMOST_EQUAL;
     ^~~
callbacks.cc:8666:5: error: 'str' was not declared in this scope
     str = "= ";
     ^~~
callbacks.cc:8670:10: error: expected ';' before 'history_str'
   string history_str;
          ^~~~~~~~~~~
callbacks.cc:8672:71: error: request for member 'empty' in 'transformation', which is of non-class type 'int'
   if(!update_parse && current_inhistory_index >= 0 && !transformation.empty() && history_index == history_index_bak) {
                                                                       ^~~~~
callbacks.cc:8673:4: error: 'history_str' was not declared in this scope
    history_str = transformation;
    ^~~~~~~~~~~
callbacks.cc:8673:4: note: suggested alternative: 'history_iter'
    history_str = transformation;
    ^~~~~~~~~~~
    history_iter
callbacks.cc:8677:3: error: 'history_str' was not declared in this scope
   history_str += str;
   ^~~~~~~~~~~
callbacks.cc:8677:3: note: suggested alternative: 'history_iter'
   history_str += str;
   ^~~~~~~~~~~
   history_iter
callbacks.cc:8677:18: error: 'str' was not declared in this scope
   history_str += str;
                  ^~~
callbacks.cc:8680:18: error: 'result_text' was not declared in this scope
   history_str += result_text;
                  ^~~~~~~~~~~
callbacks.cc:8680:18: note: suggested alternative: 'resultview'
   history_str += result_text;
                  ^~~~~~~~~~~
                  resultview
callbacks.cc:8681:3: error: 'add_line_breaks' was not declared in this scope
   add_line_breaks(history_str, 2, history_expr_i);
   ^~~~~~~~~~~~~~~
callbacks.cc:8682:3: error: 'fix_history_string2' was not declared in this scope
   fix_history_string2(history_str);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8682:3: note: suggested alternative: 'g_intern_string'
   fix_history_string2(history_str);
   ^~~~~~~~~~~~~~~~~~~
   g_intern_string
callbacks.cc:8683:3: error: 'improve_result_text' was not declared in this scope
   improve_result_text(history_str);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8686:18: error: 'string' is not a class, namespace, or enumeration
    if(trans_l != string::npos) {
                  ^~~~~~
callbacks.cc:8692:71: error: request for member 'empty' in 'transformation', which is of non-class type 'int'
   if(!update_parse && current_inhistory_index >= 0 && !transformation.empty() && history_index_bak == history_index) {
                                                                       ^~~~~
callbacks.cc:8698:3: error: 'inhistory' was not declared in this scope
   inhistory.insert(inhistory.begin() + inhistory_index, result_text);
   ^~~~~~~~~
callbacks.cc:8698:3: note: suggested alternative: 'show_history'
   inhistory.insert(inhistory.begin() + inhistory_index, result_text);
   ^~~~~~~~~
   show_history
callbacks.cc:8701:4: error: 'inhistory_type' was not declared in this scope
    inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_RESULT_APPROXIMATE);
    ^~~~~~~~~~~~~~
callbacks.cc:8701:4: note: suggested alternative: 'inhistory_index'
    inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_RESULT_APPROXIMATE);
    ^~~~~~~~~~~~~~
    inhistory_index
callbacks.cc:8703:4: error: 'inhistory_type' was not declared in this scope
    inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_RESULT);
    ^~~~~~~~~~~~~~
callbacks.cc:8703:4: note: suggested alternative: 'inhistory_index'
    inhistory_type.insert(inhistory_type.begin() + inhistory_index, QALCULATE_HISTORY_RESULT);
    ^~~~~~~~~~~~~~
    inhistory_index
callbacks.cc:8705:3: error: 'inhistory_protected' was not declared in this scope
   inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:8705:3: note: suggested alternative: '__dso_protected'
   inhistory_protected.insert(inhistory_protected.begin() + inhistory_index, false);
   ^~~~~~~~~~~~~~~~~~~
   __dso_protected
callbacks.cc:8706:3: error: 'inhistory_value' was not declared in this scope
   inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
   ^~~~~~~~~~~~~~~
callbacks.cc:8706:3: note: suggested alternative: 'inhistory_index'
   inhistory_value.insert(inhistory_value.begin() + inhistory_index, nr_of_new_expressions);
   ^~~~~~~~~~~~~~~
   inhistory_index
callbacks.cc:8707:77: error: 'history_answer' was not declared in this scope
   if(nr_of_new_expressions > 0 && mstruct && nr_of_new_expressions <= (int) history_answer.size()) {
                                                                             ^~~~~~~~~~~~~~
callbacks.cc:8707:77: note: suggested alternative: 'history_iter'
   if(nr_of_new_expressions > 0 && mstruct && nr_of_new_expressions <= (int) history_answer.size()) {
                                                                             ^~~~~~~~~~~~~~
                                                                             history_iter
callbacks.cc:8723:7: error: 'result_text_long' was not declared in this scope
    if(result_text_long.empty()) {
       ^~~~~~~~~~~~~~~~
callbacks.cc:8723:7: note: suggested alternative: 'result_too_long'
    if(result_text_long.empty()) {
       ^~~~~~~~~~~~~~~~
       result_too_long
callbacks.cc: In member function 'virtual void CommandThread::run()':
callbacks.cc:8818:5: error: 'string' was not declared in this scope
     string ceu_str;
     ^~~~~~
callbacks.cc:8818:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8820:6: error: 'ceu_str' was not declared in this scope
      ceu_str = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(main_builder, "convert_entry_unit"))), evalops.parse_options);
      ^~~~~~~
callbacks.cc:8820:6: note: suggested alternative: 'eqstr'
      ceu_str = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(main_builder, "convert_entry_unit"))), evalops.parse_options);
      ^~~~~~~
      eqstr
callbacks.cc:8833:85: error: 'ceu_str' was not declared in this scope
     ((MathStructure*) x)->set(CALCULATOR->calculate(*((MathStructure*) x), evalops, ceu_str));
                                                                                     ^~~~~~~
callbacks.cc:8833:85: note: suggested alternative: 'eqstr'
     ((MathStructure*) x)->set(CALCULATOR->calculate(*((MathStructure*) x), evalops, ceu_str));
                                                                                     ^~~~~~~
                                                                                     eqstr
callbacks.cc:8837:74: error: 'command_convert_units_string' was not declared in this scope
     ((MathStructure*) x)->set(CALCULATOR->convert(*((MathStructure*) x), command_convert_units_string, evalops));
                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:8837:74: note: suggested alternative: 'command_convert_unit'
     ((MathStructure*) x)->set(CALCULATOR->convert(*((MathStructure*) x), command_convert_units_string, evalops));
                                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                          command_convert_unit
callbacks.cc: At global scope:
callbacks.cc:8869:57: error: 'string' has not been declared
 void executeCommand(int command_type, bool show_result, string ceu_str, Unit *u, int run) {
                                                         ^~~~~~
callbacks.cc: In function 'void executeCommand(int, bool, int, Unit*, int)':
callbacks.cc:8887:4: error: 'command_convert_units_string' was not declared in this scope
    command_convert_units_string = ceu_str;
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:8887:4: note: suggested alternative: 'command_convert_unit'
    command_convert_units_string = ceu_str;
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    command_convert_unit
callbacks.cc:8915:3: error: 'string' was not declared in this scope
   string progress_str;
   ^~~~~~
callbacks.cc:8915:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:8918:5: error: 'progress_str' was not declared in this scope
     progress_str = _("Factorizing…");
     ^~~~~~~~~~~~
callbacks.cc:8918:5: note: suggested alternative: 'mpfr_free_str'
     progress_str = _("Factorizing…");
     ^~~~~~~~~~~~
     mpfr_free_str
callbacks.cc:8922:5: error: 'progress_str' was not declared in this scope
     progress_str = _("Expanding partial fractions…");
     ^~~~~~~~~~~~
callbacks.cc:8922:5: note: suggested alternative: 'mpfr_free_str'
     progress_str = _("Expanding partial fractions…");
     ^~~~~~~~~~~~
     mpfr_free_str
callbacks.cc:8926:5: error: 'progress_str' was not declared in this scope
     progress_str = _("Expanding…");
     ^~~~~~~~~~~~
callbacks.cc:8926:5: note: suggested alternative: 'mpfr_free_str'
     progress_str = _("Expanding…");
     ^~~~~~~~~~~~
     mpfr_free_str
callbacks.cc:8931:5: error: 'progress_str' was not declared in this scope
     progress_str = _("Calculating…");
     ^~~~~~~~~~~~
callbacks.cc:8931:5: note: suggested alternative: 'mpfr_free_str'
     progress_str = _("Calculating…");
     ^~~~~~~~~~~~
     mpfr_free_str
callbacks.cc:8935:5: error: 'progress_str' was not declared in this scope
     progress_str = _("Converting…");
     ^~~~~~~~~~~~
callbacks.cc:8935:5: note: suggested alternative: 'mpfr_free_str'
     progress_str = _("Converting…");
     ^~~~~~~~~~~~
     mpfr_free_str
callbacks.cc:8939:89: error: 'progress_str' was not declared in this scope
   gtk_window_set_title(GTK_WINDOW(gtk_builder_get_object(main_builder, "main_window")), progress_str.c_str());
                                                                                         ^~~~~~~~~~~~
callbacks.cc:8939:89: note: suggested alternative: 'mpfr_free_str'
   gtk_window_set_title(GTK_WINDOW(gtk_builder_get_object(main_builder, "main_window")), progress_str.c_str());
                                                                                         ^~~~~~~~~~~~
                                                                                         mpfr_free_str
callbacks.cc:8980:56: error: request for member 'empty' in 'ceu_str', which is of non-class type 'int'
  if(command_type == COMMAND_CONVERT_STRING && !ceu_str.empty()) {
                                                        ^~~~~
callbacks.cc:8981:15: error: invalid types 'int[int]' for array subscript
   if(ceu_str[0] == '?') {
               ^
callbacks.cc:8983:21: error: request for member 'length' in 'ceu_str', which is of non-class type 'int'
   } else if(ceu_str.length() > 1 && ceu_str[1] == '?' && (ceu_str[0] == 'b' || ceu_str[0] == 'a' || ceu_str[0] == 'd')) {
                     ^~~~~~
callbacks.cc:8983:46: error: invalid types 'int[int]' for array subscript
   } else if(ceu_str.length() > 1 && ceu_str[1] == '?' && (ceu_str[0] == 'b' || ceu_str[0] == 'a' || ceu_str[0] == 'd')) {
                                              ^
callbacks.cc:8983:68: error: invalid types 'int[int]' for array subscript
   } else if(ceu_str.length() > 1 && ceu_str[1] == '?' && (ceu_str[0] == 'b' || ceu_str[0] == 'a' || ceu_str[0] == 'd')) {
                                                                    ^
callbacks.cc:8983:89: error: invalid types 'int[int]' for array subscript
   } else if(ceu_str.length() > 1 && ceu_str[1] == '?' && (ceu_str[0] == 'b' || ceu_str[0] == 'a' || ceu_str[0] == 'd')) {
                                                                                         ^
callbacks.cc:8983:110: error: invalid types 'int[int]' for array subscript
   } else if(ceu_str.length() > 1 && ceu_str[1] == '?' && (ceu_str[0] == 'b' || ceu_str[0] == 'a' || ceu_str[0] == 'd')) {
                                                                                                              ^
callbacks.cc:8984:25: error: invalid types 'int[int]' for array subscript
    to_prefix = ceu_str[0];
                         ^
callbacks.cc:9005:73: error: operands to ?: have different types 'int' and 'const char*'
    setResult(NULL, true, false, true, command_type == COMMAND_TRANSFORM ? ceu_str : "");
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
callbacks.cc: In function 'void result_format_updated()':
callbacks.cc:9072:41: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  else setResult(NULL, true, false, false);
                                         ^
callbacks.cc: In function 'void result_action_executed()':
callbacks.cc:9079:35: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, false, true);
                                   ^
callbacks.cc: In function 'void result_prefix_changed(Prefix*)':
callbacks.cc:9094:42: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   executeCommand(COMMAND_CALCULATE, false);
                                          ^
callbacks.cc:9102:42: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  else setResult(prefix, true, false, true);
                                          ^
callbacks.cc: At global scope:
callbacks.cc:9137:32: error: variable or field 'add_to_expression_history' declared void
 void add_to_expression_history(string str) {
                                ^~~~~~
callbacks.cc:9137:32: error: 'string' was not declared in this scope
callbacks.cc:9137:32: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void set_previous_expression()':
callbacks.cc:9156:46: error: 'previous_expression' was not declared in this scope
   gtk_text_buffer_set_text(expressionbuffer, previous_expression.c_str(), -1);
                                              ^~~~~~~~~~~~~~~~~~~
callbacks.cc:9156:46: note: suggested alternative: 'set_previous_expression'
   gtk_text_buffer_set_text(expressionbuffer, previous_expression.c_str(), -1);
                                              ^~~~~~~~~~~~~~~~~~~
                                              set_previous_expression
callbacks.cc: At global scope:
callbacks.cc:9170:130: error: 'string' has not been declared
 void execute_expression(bool force, bool do_mathoperation, MathOperation op, MathFunction *f, bool do_stack, size_t stack_index, string execute_str, string str, bool check_exrates) {
                                                                                                                                  ^~~~~~
callbacks.cc:9170:150: error: 'string' has not been declared
 void execute_expression(bool force, bool do_mathoperation, MathOperation op, MathFunction *f, bool do_stack, size_t stack_index, string execute_str, string str, bool check_exrates) {
                                                                                                                                                      ^~~~~~
callbacks.cc: In function 'void execute_expression(bool, bool, MathOperation, MathFunction*, bool, size_t, int, int, bool)':
callbacks.cc:9174:2: error: 'string' was not declared in this scope
  string saved_execute_str = execute_str;
  ^~~~~~
callbacks.cc:9174:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:9190:17: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
  if(execute_str.empty()) {
                 ^~~~~
callbacks.cc:9194:9: error: request for member 'empty' in 'str', which is of non-class type 'int'
  if(str.empty() && !do_mathoperation) {
         ^~~~~
callbacks.cc:9200:10: error: invalid conversion from 'gchar* {aka char*}' to 'int' [-fpermissive]
    str = gstr;
          ^~~~
callbacks.cc:9208:10: error: invalid conversion from 'gchar* {aka char*}' to 'int' [-fpermissive]
    str = gstr;
          ^~~~
callbacks.cc:9210:48: error: request for member 'find_first_not_of' in 'str', which is of non-class type 'int'
    if(!force && (expression_has_changed || str.find_first_not_of(SPACES) == string::npos)) {
                                                ^~~~~~~~~~~~~~~~~
callbacks.cc:9210:77: error: 'string' is not a class, namespace, or enumeration
    if(!force && (expression_has_changed || str.find_first_not_of(SPACES) == string::npos)) {
                                                                             ^~~~~~
callbacks.cc:9217:33: error: request for member 'empty' in 'str', which is of non-class type 'int'
    if(!do_mathoperation && !str.empty()) add_to_expression_history(str);
                                 ^~~~~
callbacks.cc:9217:42: error: 'add_to_expression_history' was not declared in this scope
    if(!do_mathoperation && !str.empty()) add_to_expression_history(str);
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:9217:42: note: suggested alternative: 'update_expression_icons'
    if(!do_mathoperation && !str.empty()) add_to_expression_history(str);
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~
                                          update_expression_icons
callbacks.cc:9221:9: error: expected ';' before 'from_str'
  string from_str = str, to_str;
         ^~~~~~~~
callbacks.cc:9222:17: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
  if(execute_str.empty() && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, !do_stack)) {
                 ^~~~~
callbacks.cc:9222:61: error: 'from_str' was not declared in this scope
  if(execute_str.empty() && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, !do_stack)) {
                                                             ^~~~~~~~
callbacks.cc:9222:61: note: suggested alternative: 'fpos_t'
  if(execute_str.empty() && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, !do_stack)) {
                                                             ^~~~~~~~
                                                             fpos_t
callbacks.cc:9222:71: error: 'to_str' was not declared in this scope
  if(execute_str.empty() && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, !do_stack)) {
                                                                       ^~~~~~
callbacks.cc:9222:71: note: suggested alternative: 'str'
  if(execute_str.empty() && CALCULATOR->separateToExpression(from_str, to_str, evalops, true, !do_stack)) {
                                                                       ^~~~~~
                                                                       str
callbacks.cc:9224:10: error: expected ';' before 'to_str1'
   string to_str1, to_str2;
          ^~~~~~~
callbacks.cc:9226:16: error: 'string' is not a class, namespace, or enumeration
   if(ispace != string::npos) {
                ^~~~~~
callbacks.cc:9227:4: error: 'to_str1' was not declared in this scope
    to_str1 = to_str.substr(0, ispace);
    ^~~~~~~
callbacks.cc:9227:4: note: suggested alternative: 'do_stack'
    to_str1 = to_str.substr(0, ispace);
    ^~~~~~~
    do_stack
callbacks.cc:9229:4: error: 'to_str2' was not declared in this scope
    to_str2 = to_str.substr(ispace + 1);
    ^~~~~~~
callbacks.cc:9229:4: note: suggested alternative: 'do_stack'
    to_str2 = to_str.substr(ispace + 1);
    ^~~~~~~
    do_stack
callbacks.cc:9267:60: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    if(from_str.empty()) {setResult(NULL, true, false, false); set_previous_expression();}
                                                            ^
callbacks.cc:9296:60: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    if(from_str.empty()) {setResult(NULL, true, false, false); set_previous_expression();}
                                                            ^
callbacks.cc:9306:60: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    if(from_str.empty()) {setResult(NULL, true, false, false); set_previous_expression();}
                                                            ^
callbacks.cc:9316:26: error: 'result_text' was not declared in this scope
     convert_number_bases(result_text.c_str());
                          ^~~~~~~~~~~
callbacks.cc:9316:26: note: suggested alternative: 'resultview'
     convert_number_bases(result_text.c_str());
                          ^~~~~~~~~~~
                          resultview
callbacks.cc:9337:32: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EVAL);
                                ^
callbacks.cc:9353:32: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EVAL);
                                ^
callbacks.cc:9369:32: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EVAL);
                                ^
callbacks.cc:9385:32: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EVAL);
                                ^
callbacks.cc:9401:32: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EVAL);
                                ^
callbacks.cc:9413:43: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_CONVERT_OPTIMAL);
                                           ^
callbacks.cc:9429:40: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_CONVERT_BASE);
                                        ^
callbacks.cc:9462:37: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_FACTORIZE);
                                     ^
callbacks.cc:9472:52: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     executeCommand(COMMAND_EXPAND_PARTIAL_FRACTIONS);
                                                    ^
callbacks.cc:9478:30: error: 'to_str1' was not declared in this scope
   } else if(equalsIgnoreCase(to_str1, "base") || equalsIgnoreCase(to_str1, _("base"))) {
                              ^~~~~~~
callbacks.cc:9479:24: error: 'to_str2' was not declared in this scope
    if(equalsIgnoreCase(to_str2, "golden") || equalsIgnoreCase(to_str2, "golden ratio") || to_str2 == "φ") to_base = BASE_GOLDEN_RATIO;
                        ^~~~~~~
callbacks.cc:9522:39: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     setResult(NULL, true, false, false);
                                       ^
callbacks.cc:9533:39: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
     setResult(NULL, true, false, false);
                                       ^
callbacks.cc:9540:24: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
  } else if(execute_str.empty()) {
                        ^~~~~
callbacks.cc:9541:18: error: request for member 'find_first_of' in 'str', which is of non-class type 'int'
   size_t i = str.find_first_of(SPACES LEFT_PARENTHESIS);
                  ^~~~~~~~~~~~~
callbacks.cc:9542:11: error: 'string' is not a class, namespace, or enumeration
   if(i != string::npos) {
           ^~~~~~
callbacks.cc:9543:17: error: request for member 'substr' in 'str', which is of non-class type 'int'
    to_str = str.substr(0, i);
                 ^~~~~~
callbacks.cc:9545:23: error: request for member 'substr' in 'str', which is of non-class type 'int'
     execute_str = str.substr(i + 1);
                       ^~~~~~
callbacks.cc:9548:23: error: request for member 'substr' in 'str', which is of non-class type 'int'
     execute_str = str.substr(i + 1);
                       ^~~~~~
callbacks.cc:9559:17: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
  if(execute_str.empty() && !do_conv && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(main_builder, "convert_button_continuous_conversion")))) {
                 ^~~~~
callbacks.cc:9560:10: error: expected ';' before 'ceu_str'
   string ceu_str = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(main_builder, "convert_entry_unit"))), evalops.parse_options);
          ^~~~~~~
callbacks.cc:9561:21: error: 'ceu_str' was not declared in this scope
   remove_blank_ends(ceu_str);
                     ^~~~~~~
callbacks.cc:9561:21: note: suggested alternative: 'eqstr'
   remove_blank_ends(ceu_str);
                     ^~~~~~~
                     eqstr
callbacks.cc:9588:93: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
    CALCULATOR->setRPNRegister(stack_index + 1, CALCULATOR->unlocalizeExpression(execute_str.empty() ? str : execute_str, evalops.parse_options), 0, evalops, parsed_mstruct, parsed_tostruct);
                                                                                             ^~~~~
callbacks.cc:9598:11: error: expected ';' before 'str2'
    string str2 = CALCULATOR->unlocalizeExpression(execute_str.empty() ? str : execute_str, evalops.parse_options);
           ^~~~
callbacks.cc:9599:27: error: 'str2' was not declared in this scope
    CALCULATOR->parseSigns(str2);
                           ^~~~
callbacks.cc:9599:27: note: suggested alternative: 'str'
    CALCULATOR->parseSigns(str2);
                           ^~~~
                           str
callbacks.cc:9634:38: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
     } else if(str2 == "!=" || str == "=!" || str == "<>") {
                                      ^~~~
callbacks.cc:9634:53: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
     } else if(str2 == "!=" || str == "=!" || str == "<>") {
                                                     ^~~~
callbacks.cc:9637:38: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
     } else if(str2 == "<=" || str == "=<") {
                                      ^~~~
callbacks.cc:9640:38: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
     } else if(str2 == ">=" || str == "=>") {
                                      ^~~~
callbacks.cc:9711:79: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
   CALCULATOR->calculate(mstruct, CALCULATOR->unlocalizeExpression(execute_str.empty() ? str : execute_str, evalops.parse_options), 0, evalops, parsed_mstruct, parsed_tostruct);
                                                                               ^~~~~
callbacks.cc:9784:3: error: 'result_text' was not declared in this scope
   result_text = _("RPN Operation");
   ^~~~~~~~~~~
callbacks.cc:9784:3: note: suggested alternative: 'resultview'
   result_text = _("RPN Operation");
   ^~~~~~~~~~~
   resultview
callbacks.cc:9786:3: error: 'result_text' was not declared in this scope
   result_text = str;
   ^~~~~~~~~~~
callbacks.cc:9786:3: note: suggested alternative: 'resultview'
   result_text = str;
   ^~~~~~~~~~~
   resultview
callbacks.cc:9796:4: error: 'RPNRegisterAdded' was not declared in this scope
    RPNRegisterAdded("");
    ^~~~~~~~~~~~~~~~
callbacks.cc:9796:4: note: suggested alternative: 'RPNRegisterRemoved'
    RPNRegisterAdded("");
    ^~~~~~~~~~~~~~~~
    RPNRegisterRemoved
callbacks.cc:9806:92: error: 'saved_execute_str' was not declared in this scope
   execute_expression(force, do_mathoperation, op, f, rpn_mode, do_stack ? stack_index : 0, saved_execute_str, str, false);
                                                                                            ^~~~~~~~~~~~~~~~~
callbacks.cc:9806:92: note: suggested alternative: 'execute_str'
   execute_expression(force, do_mathoperation, op, f, rpn_mode, do_stack ? stack_index : 0, saved_execute_str, str, false);
                                                                                            ^~~~~~~~~~~~~~~~~
                                                                                            execute_str
callbacks.cc:9814:118: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    executeCommand(do_pfe ? COMMAND_EXPAND_PARTIAL_FRACTIONS : (do_expand ? COMMAND_EXPAND : COMMAND_FACTORIZE), false);
                                                                                                                      ^
callbacks.cc:9817:119: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    executeCommand(do_pfe ? COMMAND_EXPAND_PARTIAL_FRACTIONS  : (do_expand ? COMMAND_EXPAND : COMMAND_FACTORIZE), false);
                                                                                                                       ^
callbacks.cc:9820:16: error: 'previous_expression' was not declared in this scope
  if(!do_stack) previous_expression = execute_str.empty() ? str : execute_str;
                ^~~~~~~~~~~~~~~~~~~
callbacks.cc:9820:16: note: suggested alternative: 'set_previous_expression'
  if(!do_stack) previous_expression = execute_str.empty() ? str : execute_str;
                ^~~~~~~~~~~~~~~~~~~
                set_previous_expression
callbacks.cc:9820:50: error: request for member 'empty' in 'execute_str', which is of non-class type 'int'
  if(!do_stack) previous_expression = execute_str.empty() ? str : execute_str;
                                                  ^~~~~
callbacks.cc:9821:91: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, !do_stack || stack_index == 0, true, "", do_stack ? stack_index : 0);
                                                                                           ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc:9827:12: error: expected ';' before 's_cat'
     string s_cat = u->category();
            ^~~~~
callbacks.cc:9828:8: error: 's_cat' was not declared in this scope
     if(s_cat.empty()) s_cat = _("Uncategorized");
        ^~~~~
callbacks.cc:9828:8: note: suggested alternative: 'stat'
     if(s_cat.empty()) s_cat = _("Uncategorized");
        ^~~~~
        stat
callbacks.cc:9829:8: error: 's_cat' was not declared in this scope
     if(s_cat != selected_unit_category) {
        ^~~~~
callbacks.cc:9829:8: note: suggested alternative: 'stat'
     if(s_cat != selected_unit_category) {
        ^~~~~
        stat
callbacks.cc:9829:17: error: 'selected_unit_category' was not declared in this scope
     if(s_cat != selected_unit_category) {
                 ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:9829:17: note: suggested alternative: 'selected_unit'
     if(s_cat != selected_unit_category) {
                 ^~~~~~~~~~~~~~~~~~~~~~
                 selected_unit
callbacks.cc:9830:25: error: 'convert_category_map' was not declared in this scope
      GtkTreeIter iter = convert_category_map[s_cat];
                         ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:9830:25: note: suggested alternative: 'convert_to_unit'
      GtkTreeIter iter = convert_category_map[s_cat];
                         ^~~~~~~~~~~~~~~~~~~~
                         convert_to_unit
callbacks.cc: In function 'void calculateRPN(int)':
callbacks.cc:9913:6: error: 'get_expression_text' was not declared in this scope
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:9913:6: note: suggested alternative: 'set_expression_text'
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
      set_expression_text
callbacks.cc:9913:57: error: 'string' has not been declared
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
                                                         ^~~~~~
callbacks.cc: In function 'void calculateRPN(MathFunction*)':
callbacks.cc:9921:6: error: 'get_expression_text' was not declared in this scope
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:9921:6: note: suggested alternative: 'set_expression_text'
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
      set_expression_text
callbacks.cc:9921:57: error: 'string' has not been declared
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
                                                         ^~~~~~
callbacks.cc: At global scope:
callbacks.cc:9927:23: error: variable or field 'RPNRegisterAdded' declared void
 void RPNRegisterAdded(string text, gint index) {
                       ^~~~~~
callbacks.cc:9927:23: error: 'string' was not declared in this scope
callbacks.cc:9927:23: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:9927:41: error: expected primary-expression before 'index'
 void RPNRegisterAdded(string text, gint index) {
                                         ^~~~~
callbacks.cc:9981:25: error: variable or field 'RPNRegisterChanged' declared void
 void RPNRegisterChanged(string text, gint index) {
                         ^~~~~~
callbacks.cc:9981:25: error: 'string' was not declared in this scope
callbacks.cc:9981:25: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:9981:43: error: expected primary-expression before 'index'
 void RPNRegisterChanged(string text, gint index) {
                                           ^~~~~
callbacks.cc: In function 'void recreate_recent_functions()':
callbacks.cc:10003:2: error: 'recent_function_items' was not declared in this scope
  recent_function_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10003:2: note: suggested alternative: 'set_assumptions_items'
  recent_function_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~
  set_assumptions_items
callbacks.cc:10005:24: error: 'recent_functions' was not declared in this scope
  for(size_t i = 0; i < recent_functions.size(); i++) {
                        ^~~~~~~~~~~~~~~~
callbacks.cc:10005:24: note: suggested alternative: 'insert_function'
  for(size_t i = 0; i < recent_functions.size(); i++) {
                        ^~~~~~~~~~~~~~~~
                        insert_function
callbacks.cc: In function 'void recreate_recent_variables()':
callbacks.cc:10026:2: error: 'recent_variable_items' was not declared in this scope
  recent_variable_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10026:2: note: suggested alternative: 'get_variables_dialog'
  recent_variable_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~
  get_variables_dialog
callbacks.cc:10028:24: error: 'recent_variables' was not declared in this scope
  for(size_t i = 0; i < recent_variables.size(); i++) {
                        ^~~~~~~~~~~~~~~~
callbacks.cc:10028:24: note: suggested alternative: 'edit_variable'
  for(size_t i = 0; i < recent_variables.size(); i++) {
                        ^~~~~~~~~~~~~~~~
                        edit_variable
callbacks.cc: In function 'void recreate_recent_units()':
callbacks.cc:10049:2: error: 'recent_unit_items' was not declared in this scope
  recent_unit_items.clear();
  ^~~~~~~~~~~~~~~~~
callbacks.cc:10049:2: note: suggested alternative: 'set_mode_items'
  recent_unit_items.clear();
  ^~~~~~~~~~~~~~~~~
  set_mode_items
callbacks.cc:10051:24: error: 'recent_units' was not declared in this scope
  for(size_t i = 0; i < recent_units.size(); i++) {
                        ^~~~~~~~~~~~
callbacks.cc:10051:24: note: suggested alternative: 'recent_menu'
  for(size_t i = 0; i < recent_units.size(); i++) {
                        ^~~~~~~~~~~~
                        recent_menu
callbacks.cc: In function 'void function_inserted(MathFunction*)':
callbacks.cc:10076:5: error: 'recent_function_items' was not declared in this scope
  if(recent_function_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10076:5: note: suggested alternative: 'set_assumptions_items'
  if(recent_function_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~~~~~
     set_assumptions_items
callbacks.cc:10079:24: error: 'recent_functions' was not declared in this scope
  for(size_t i = 0; i < recent_functions.size(); i++) {
                        ^~~~~~~~~~~~~~~~
callbacks.cc:10079:24: note: suggested alternative: 'insert_function'
  for(size_t i = 0; i < recent_functions.size(); i++) {
                        ^~~~~~~~~~~~~~~~
                        insert_function
callbacks.cc:10082:23: error: 'recent_function_items' was not declared in this scope
    gtk_widget_destroy(recent_function_items[i]);
                       ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10082:23: note: suggested alternative: 'set_assumptions_items'
    gtk_widget_destroy(recent_function_items[i]);
                       ^~~~~~~~~~~~~~~~~~~~~
                       set_assumptions_items
callbacks.cc:10087:5: error: 'recent_function_items' was not declared in this scope
  if(recent_function_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10087:5: note: suggested alternative: 'set_assumptions_items'
  if(recent_function_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~~~~~
     set_assumptions_items
callbacks.cc:10088:3: error: 'recent_functions' was not declared in this scope
   recent_functions.erase(recent_functions.begin());
   ^~~~~~~~~~~~~~~~
callbacks.cc:10088:3: note: suggested alternative: 'insert_function'
   recent_functions.erase(recent_functions.begin());
   ^~~~~~~~~~~~~~~~
   insert_function
callbacks.cc:10093:2: error: 'recent_function_items' was not declared in this scope
  recent_function_items.push_back(item);
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10093:2: note: suggested alternative: 'set_assumptions_items'
  recent_function_items.push_back(item);
  ^~~~~~~~~~~~~~~~~~~~~
  set_assumptions_items
callbacks.cc:10094:2: error: 'recent_functions' was not declared in this scope
  recent_functions.push_back(object);
  ^~~~~~~~~~~~~~~~
callbacks.cc:10094:2: note: suggested alternative: 'insert_function'
  recent_functions.push_back(object);
  ^~~~~~~~~~~~~~~~
  insert_function
callbacks.cc: In function 'void variable_inserted(Variable*)':
callbacks.cc:10106:5: error: 'recent_variable_items' was not declared in this scope
  if(recent_variable_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10106:5: note: suggested alternative: 'get_variables_dialog'
  if(recent_variable_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~~~~~
     get_variables_dialog
callbacks.cc:10109:24: error: 'recent_variables' was not declared in this scope
  for(size_t i = 0; i < recent_variables.size(); i++) {
                        ^~~~~~~~~~~~~~~~
callbacks.cc:10109:24: note: suggested alternative: 'edit_variable'
  for(size_t i = 0; i < recent_variables.size(); i++) {
                        ^~~~~~~~~~~~~~~~
                        edit_variable
callbacks.cc:10112:23: error: 'recent_variable_items' was not declared in this scope
    gtk_widget_destroy(recent_variable_items[i]);
                       ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10112:23: note: suggested alternative: 'get_variables_dialog'
    gtk_widget_destroy(recent_variable_items[i]);
                       ^~~~~~~~~~~~~~~~~~~~~
                       get_variables_dialog
callbacks.cc:10117:5: error: 'recent_variable_items' was not declared in this scope
  if(recent_variable_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10117:5: note: suggested alternative: 'get_variables_dialog'
  if(recent_variable_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~~~~~
     get_variables_dialog
callbacks.cc:10118:3: error: 'recent_variables' was not declared in this scope
   recent_variables.erase(recent_variables.begin());
   ^~~~~~~~~~~~~~~~
callbacks.cc:10118:3: note: suggested alternative: 'edit_variable'
   recent_variables.erase(recent_variables.begin());
   ^~~~~~~~~~~~~~~~
   edit_variable
callbacks.cc:10123:2: error: 'recent_variable_items' was not declared in this scope
  recent_variable_items.push_back(item);
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10123:2: note: suggested alternative: 'get_variables_dialog'
  recent_variable_items.push_back(item);
  ^~~~~~~~~~~~~~~~~~~~~
  get_variables_dialog
callbacks.cc:10124:2: error: 'recent_variables' was not declared in this scope
  recent_variables.push_back(object);
  ^~~~~~~~~~~~~~~~
callbacks.cc:10124:2: note: suggested alternative: 'edit_variable'
  recent_variables.push_back(object);
  ^~~~~~~~~~~~~~~~
  edit_variable
callbacks.cc: In function 'void unit_inserted(Unit*)':
callbacks.cc:10136:5: error: 'recent_unit_items' was not declared in this scope
  if(recent_unit_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~
callbacks.cc:10136:5: note: suggested alternative: 'set_mode_items'
  if(recent_unit_items.size() <= 0) {
     ^~~~~~~~~~~~~~~~~
     set_mode_items
callbacks.cc:10139:24: error: 'recent_units' was not declared in this scope
  for(size_t i = 0; i < recent_units.size(); i++) {
                        ^~~~~~~~~~~~
callbacks.cc:10139:24: note: suggested alternative: 'recent_menu'
  for(size_t i = 0; i < recent_units.size(); i++) {
                        ^~~~~~~~~~~~
                        recent_menu
callbacks.cc:10142:23: error: 'recent_unit_items' was not declared in this scope
    gtk_widget_destroy(recent_unit_items[i]);
                       ^~~~~~~~~~~~~~~~~
callbacks.cc:10142:23: note: suggested alternative: 'set_mode_items'
    gtk_widget_destroy(recent_unit_items[i]);
                       ^~~~~~~~~~~~~~~~~
                       set_mode_items
callbacks.cc:10147:5: error: 'recent_unit_items' was not declared in this scope
  if(recent_unit_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~
callbacks.cc:10147:5: note: suggested alternative: 'set_mode_items'
  if(recent_unit_items.size() >= 5) {
     ^~~~~~~~~~~~~~~~~
     set_mode_items
callbacks.cc:10148:3: error: 'recent_units' was not declared in this scope
   recent_units.erase(recent_units.begin());
   ^~~~~~~~~~~~
callbacks.cc:10148:3: note: suggested alternative: 'recent_menu'
   recent_units.erase(recent_units.begin());
   ^~~~~~~~~~~~
   recent_menu
callbacks.cc:10153:2: error: 'recent_unit_items' was not declared in this scope
  recent_unit_items.push_back(item);
  ^~~~~~~~~~~~~~~~~
callbacks.cc:10153:2: note: suggested alternative: 'set_mode_items'
  recent_unit_items.push_back(item);
  ^~~~~~~~~~~~~~~~~
  set_mode_items
callbacks.cc:10154:2: error: 'recent_units' was not declared in this scope
  recent_units.push_back(object);
  ^~~~~~~~~~~~
callbacks.cc:10154:2: note: suggested alternative: 'recent_menu'
  recent_units.push_back(object);
  ^~~~~~~~~~~~
  recent_menu
callbacks.cc: In function 'void apply_function(MathFunction*, GtkWidget*)':
callbacks.cc:10167:2: error: 'string' was not declared in this scope
  string str = f->preferredInputName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressionbuffer).name;
  ^~~~~~
callbacks.cc:10167:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10169:3: error: 'str' was not declared in this scope
   str += "()";
   ^~~
callbacks.cc:10171:3: error: 'str' was not declared in this scope
   str += "(";
   ^~~
callbacks.cc:10172:10: error: 'get_expression_text' was not declared in this scope
   str += get_expression_text();
          ^~~~~~~~~~~~~~~~~~~
callbacks.cc:10172:10: note: suggested alternative: 'set_expression_text'
   str += get_expression_text();
          ^~~~~~~~~~~~~~~~~~~
          set_expression_text
callbacks.cc:10178:14: error: 'str' was not declared in this scope
  insert_text(str.c_str());
              ^~~
callbacks.cc: In function 'gint on_function_int_input(GtkSpinButton*, gpointer, gpointer)':
callbacks.cc:10184:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(entry));
  ^~~~~~
callbacks.cc:10184:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10185:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:10186:39: error: 'string' is not a class, namespace, or enumeration
  if(str.find_first_not_of(NUMBERS) != string::npos) {
                                       ^~~~~~
callbacks.cc: At global scope:
callbacks.cc:10203:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<GtkWidget*> label;
  ^~~~~~
  Vector
callbacks.cc:10204:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<GtkWidget*> entry;
  ^~~~~~
  Vector
callbacks.cc:10205:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<GtkWidget*> type_label;
  ^~~~~~
  Vector
callbacks.cc:10206:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<GtkWidget*> boolean_buttons;
  ^~~~~~
  Vector
callbacks.cc:10207:2: error: 'vector' does not name a type; did you mean 'Vector'?
  vector<int> boolean_index;
  ^~~~~~
  Vector
callbacks.cc:10213:1: error: 'unordered_map' does not name a type; did you mean 'isunordered'?
 unordered_map<MathFunction*, FunctionDialog*> function_dialogs;
 ^~~~~~~~~~~~~
 isunordered
callbacks.cc: In function 'void insert_function_do(MathFunction*, FunctionDialog*)':
callbacks.cc:10216:2: error: 'string' was not declared in this scope
  string str = f->preferredInputName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name + "(", str2;
  ^~~~~~
callbacks.cc:10216:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10221:11: error: expected ';' before 'defstr'
    string defstr = f->getDefaultValue(argcount);
           ^~~~~~
callbacks.cc:10222:22: error: 'defstr' was not declared in this scope
    remove_blank_ends(defstr);
                      ^~~~~~
callbacks.cc:10222:22: note: suggested alternative: 'eqstr'
    remove_blank_ends(defstr);
                      ^~~~~~
                      eqstr
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10224:59: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[argcount - 1]]))) {
                                                           ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10224:37: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[argcount - 1]]))) {
                                     ^
callbacks.cc:10224:79: error: 'struct FunctionDialog' has no member named 'boolean_index'
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[argcount - 1]]))) {
                                                                               ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10224:37: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
     if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[argcount - 1]]))) {
                                     ^
callbacks.cc:10225:6: error: 'str2' was not declared in this scope
      str2 = "1";
      ^~~~
callbacks.cc:10225:6: note: suggested alternative: 'stat'
      str2 = "1";
      ^~~~
      stat
callbacks.cc:10227:6: error: 'str2' was not declared in this scope
      str2 = "0";
      ^~~~
callbacks.cc:10227:6: note: suggested alternative: 'stat'
      str2 = "0";
      ^~~~
      stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10230:68: error: 'struct FunctionDialog' has no member named 'entry'
     Number nr(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(fd->entry[argcount - 1])), 1);
                                                                    ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10230:48: note: in expansion of macro 'GTK_SPIN_BUTTON'
     Number nr(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(fd->entry[argcount - 1])), 1);
                                                ^
callbacks.cc:10231:5: error: 'str2' was not declared in this scope
     str2 = print_with_evalops(nr);
     ^~~~
callbacks.cc:10231:5: note: suggested alternative: 'stat'
     str2 = print_with_evalops(nr);
     ^~~~
     stat
callbacks.cc:10231:12: error: 'print_with_evalops' was not declared in this scope
     str2 = print_with_evalops(nr);
            ^~~~~~~~~~~~~~~~~~
callbacks.cc:10231:12: note: suggested alternative: 'print_auto_calc'
     str2 = print_with_evalops(nr);
            ^~~~~~~~~~~~~~~~~~
            print_auto_calc
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10235:56: error: 'struct FunctionDialog' has no member named 'entry'
     if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(fd->entry[argcount - 1]), &iter)) {
                                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10235:38: note: in expansion of macro 'GTK_COMBO_BOX'
     if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(fd->entry[argcount - 1]), &iter)) {
                                      ^
callbacks.cc:10239:6: error: 'str2' was not declared in this scope
      str2 = dp->getName();
      ^~~~
callbacks.cc:10239:6: note: suggested alternative: 'stat'
      str2 = dp->getName();
      ^~~~
      stat
callbacks.cc:10241:6: error: 'str2' was not declared in this scope
      str2 = "info";
      ^~~~
callbacks.cc:10241:6: note: suggested alternative: 'stat'
      str2 = "info";
      ^~~~
      stat
callbacks.cc:10244:5: error: 'str2' was not declared in this scope
     str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[argcount - 1]));
     ^~~~
callbacks.cc:10244:5: note: suggested alternative: 'stat'
     str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[argcount - 1]));
     ^~~~
     stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10244:45: error: 'struct FunctionDialog' has no member named 'entry'
     str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[argcount - 1]));
                                             ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10244:31: note: in expansion of macro 'GTK_ENTRY'
     str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[argcount - 1]));
                               ^
callbacks.cc:10247:8: error: 'str2' was not declared in this scope
    if(!str2.empty() && f->getArgumentDefinition(argcount) && (f->getArgumentDefinition(argcount)->suggestsQuotes() || (f->getArgumentDefinition(argcount)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
        ^~~~
callbacks.cc:10247:8: note: suggested alternative: 'stat'
    if(!str2.empty() && f->getArgumentDefinition(argcount) && (f->getArgumentDefinition(argcount)->suggestsQuotes() || (f->getArgumentDefinition(argcount)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
        ^~~~
        stat
callbacks.cc:10247:225: error: 'string' is not a class, namespace, or enumeration
    if(!str2.empty() && f->getArgumentDefinition(argcount) && (f->getArgumentDefinition(argcount)->suggestsQuotes() || (f->getArgumentDefinition(argcount)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
                                                                                                                                                                                                                                 ^~~~~~
callbacks.cc:10248:49: error: 'str' was not declared in this scope
     if(str2.length() < 1 || (str2[0] != '\"' && str[0] != '\'')) {
                                                 ^~~
callbacks.cc:10253:7: error: 'str2' was not declared in this scope
    if(str2.empty() || str2 == defstr) argcount--;
       ^~~~
callbacks.cc:10253:7: note: suggested alternative: 'stat'
    if(str2.empty() || str2 == defstr) argcount--;
       ^~~~
       stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10261:58: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[i]]))) {
                                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10261:36: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[i]]))) {
                                    ^
callbacks.cc:10261:78: error: 'struct FunctionDialog' has no member named 'boolean_index'
    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[i]]))) {
                                                                              ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10261:36: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_index[i]]))) {
                                    ^
callbacks.cc:10262:5: error: 'str2' was not declared in this scope
     str2 = "1";
     ^~~~
callbacks.cc:10262:5: note: suggested alternative: 'stat'
     str2 = "1";
     ^~~~
     stat
callbacks.cc:10264:5: error: 'str2' was not declared in this scope
     str2 = "0";
     ^~~~
callbacks.cc:10264:5: note: suggested alternative: 'stat'
     str2 = "0";
     ^~~~
     stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10267:67: error: 'struct FunctionDialog' has no member named 'entry'
    Number nr(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(fd->entry[i])), 1);
                                                                   ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10267:47: note: in expansion of macro 'GTK_SPIN_BUTTON'
    Number nr(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(fd->entry[i])), 1);
                                               ^
callbacks.cc:10268:4: error: 'str2' was not declared in this scope
    str2 = print_with_evalops(nr);
    ^~~~
callbacks.cc:10268:4: note: suggested alternative: 'stat'
    str2 = print_with_evalops(nr);
    ^~~~
    stat
callbacks.cc:10268:11: error: 'print_with_evalops' was not declared in this scope
    str2 = print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:10268:11: note: suggested alternative: 'print_auto_calc'
    str2 = print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10272:55: error: 'struct FunctionDialog' has no member named 'entry'
    if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter)) {
                                                       ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10272:37: note: in expansion of macro 'GTK_COMBO_BOX'
    if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter)) {
                                     ^
callbacks.cc:10276:5: error: 'str2' was not declared in this scope
     str2 = dp->getName();
     ^~~~
callbacks.cc:10276:5: note: suggested alternative: 'stat'
     str2 = dp->getName();
     ^~~~
     stat
callbacks.cc:10278:5: error: 'str2' was not declared in this scope
     str2 = "info";
     ^~~~
callbacks.cc:10278:5: note: suggested alternative: 'stat'
     str2 = "info";
     ^~~~
     stat
callbacks.cc:10281:4: error: 'str2' was not declared in this scope
    str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[i]));
    ^~~~
callbacks.cc:10281:4: note: suggested alternative: 'stat'
    str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[i]));
    ^~~~
    stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10281:44: error: 'struct FunctionDialog' has no member named 'entry'
    str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[i]));
                                            ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10281:30: note: in expansion of macro 'GTK_ENTRY'
    str2 = gtk_entry_get_text(GTK_ENTRY(fd->entry[i]));
                              ^
callbacks.cc:10284:28: error: 'str2' was not declared in this scope
   if((i < f->minargs() || !str2.empty()) && f->getArgumentDefinition(i + 1) && (f->getArgumentDefinition(i + 1)->suggestsQuotes() || (f->getArgumentDefinition(i + 1)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
                            ^~~~
callbacks.cc:10284:28: note: suggested alternative: 'stat'
   if((i < f->minargs() || !str2.empty()) && f->getArgumentDefinition(i + 1) && (f->getArgumentDefinition(i + 1)->suggestsQuotes() || (f->getArgumentDefinition(i + 1)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
                            ^~~~
                            stat
callbacks.cc:10284:237: error: 'string' is not a class, namespace, or enumeration
   if((i < f->minargs() || !str2.empty()) && f->getArgumentDefinition(i + 1) && (f->getArgumentDefinition(i + 1)->suggestsQuotes() || (f->getArgumentDefinition(i + 1)->type() == ARGUMENT_TYPE_TEXT && str2.find(CALCULATOR->getComma()) != string::npos))) {
                                                                                                                                                                                                                                             ^~~~~~
callbacks.cc:10285:48: error: 'str' was not declared in this scope
    if(str2.length() < 1 || (str2[0] != '\"' && str[0] != '\'')) {
                                                ^~~
callbacks.cc:10291:4: error: 'str' was not declared in this scope
    str += CALCULATOR->getComma();
    ^~~
callbacks.cc:10294:3: error: 'str' was not declared in this scope
   str += str2;
   ^~~
callbacks.cc:10294:10: error: 'str2' was not declared in this scope
   str += str2;
          ^~~~
callbacks.cc:10294:10: note: suggested alternative: 'stat'
   str += str2;
          ^~~~
          stat
callbacks.cc:10296:2: error: 'str' was not declared in this scope
  str += ")";
  ^~~
callbacks.cc: In function 'void on_insert_function_delete(GtkWidget*, GdkEvent*, gpointer)':
callbacks.cc:10303:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10303:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc: In function 'void on_insert_function_close(GtkWidget*, gpointer)':
callbacks.cc:10310:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10310:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc: In function 'void on_insert_function_exec(GtkWidget*, gpointer)':
callbacks.cc:10317:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10317:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc:10323:3: error: 'string' was not declared in this scope
   string str;
   ^~~~~~
callbacks.cc:10323:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10326:4: error: 'str' was not declared in this scope
    str = "=";
    ^~~
callbacks.cc:10329:5: error: 'str' was not declared in this scope
     str = SIGN_ALMOST_EQUAL;
     ^~~
callbacks.cc:10331:5: error: 'str' was not declared in this scope
     str = "= ";
     ^~~
callbacks.cc:10335:3: error: 'str' was not declared in this scope
   str += " <span font-weight=\"bold\">";
   ^~~
callbacks.cc:10336:29: error: 'result_text' was not declared in this scope
   str += fix_history_string(result_text);
                             ^~~~~~~~~~~
callbacks.cc:10336:29: note: suggested alternative: 'resultview'
   str += fix_history_string(result_text);
                             ^~~~~~~~~~~
                             resultview
callbacks.cc:10336:10: error: 'fix_history_string' was not declared in this scope
   str += fix_history_string(result_text);
          ^~~~~~~~~~~~~~~~~~
callbacks.cc:10336:10: note: suggested alternative: 'g_intern_string'
   str += fix_history_string(result_text);
          ^~~~~~~~~~~~~~~~~~
          g_intern_string
callbacks.cc:10339:29: error: 'struct FunctionDialog' has no member named 'entry'
   gtk_widget_grab_focus(fd->entry[0]);
                             ^~~~~
callbacks.cc: In function 'void on_insert_function_insert(GtkWidget*, gpointer)':
callbacks.cc:10348:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10348:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc:10352:29: error: 'struct FunctionDialog' has no member named 'entry'
   gtk_widget_grab_focus(fd->entry[0]);
                             ^~~~~
callbacks.cc: In function 'void on_insert_function_rpn(GtkWidget*, gpointer)':
callbacks.cc:10361:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10361:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc:10366:29: error: 'struct FunctionDialog' has no member named 'entry'
   gtk_widget_grab_focus(fd->entry[0]);
                             ^~~~~
callbacks.cc: In function 'void on_insert_function_keepopen(GtkToggleButton*, gpointer)':
callbacks.cc:10375:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10375:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc: In function 'void on_insert_function_changed(GtkWidget*, gpointer)':
callbacks.cc:10381:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10381:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc: In function 'void on_insert_function_entry_activated(GtkWidget*, gpointer)':
callbacks.cc:10386:23: error: 'function_dialogs' was not declared in this scope
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
callbacks.cc:10386:23: note: suggested alternative: 'FunctionDialog'
  FunctionDialog *fd = function_dialogs[f];
                       ^~~~~~~~~~~~~~~~
                       FunctionDialog
callbacks.cc:10388:10: error: 'struct FunctionDialog' has no member named 'entry'
   if(fd->entry[i] == w) {
          ^~~~~
callbacks.cc:10395:32: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_widget_grab_focus(fd->boolean_buttons[fd->boolean_index[i + 1]]);
                                ^~~~~~~~~~~~~~~
callbacks.cc:10395:52: error: 'struct FunctionDialog' has no member named 'boolean_index'
      gtk_widget_grab_focus(fd->boolean_buttons[fd->boolean_index[i + 1]]);
                                                    ^~~~~~~~~~~~~
callbacks.cc:10397:32: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_widget_grab_focus(fd->entry[i + 1]);
                                ^~~~~
callbacks.cc: In function 'void insert_function(MathFunction*, GtkWidget*, bool)':
callbacks.cc:10418:3: error: 'string' was not declared in this scope
   string str = f->preferredInputName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name + "()";
   ^~~~~~
callbacks.cc:10418:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib/gstring.h:37:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib/giochannel.h:36,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib.h:56,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkconfig.h:8,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10419:26: error: 'str' was not declared in this scope
   gchar *gstr = g_strdup(str.c_str());
                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib/gstrfuncs.h:324:38: note: in definition of macro 'g_strdup'
 #define g_strdup(x) g_strdup_inline (x)
                                      ^
callbacks.cc:10419:26: note: suggested alternative: 'gstr'
   gchar *gstr = g_strdup(str.c_str());
                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib/gstrfuncs.h:324:38: note: in definition of macro 'g_strdup'
 #define g_strdup(x) g_strdup_inline (x)
                                      ^
callbacks.cc:10429:5: error: 'function_dialogs' was not declared in this scope
  if(function_dialogs.find(f) != function_dialogs.end()) {
     ^~~~~~~~~~~~~~~~
callbacks.cc:10429:5: note: suggested alternative: 'FunctionDialog'
  if(function_dialogs.find(f) != function_dialogs.end()) {
     ^~~~~~~~~~~~~~~~
     FunctionDialog
callbacks.cc:10436:52: error: 'struct FunctionDialog' has no member named 'entry'
     g_signal_handlers_block_matched((gpointer) fd->entry[0], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                    ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10438:38: error: 'struct FunctionDialog' has no member named 'entry'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[0]), get_selected_expression_text(true).c_str());
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10438:24: note: in expansion of macro 'GTK_ENTRY'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[0]), get_selected_expression_text(true).c_str());
                        ^
callbacks.cc:10438:49: error: 'get_selected_expression_text' was not declared in this scope
     gtk_entry_set_text(GTK_ENTRY(fd->entry[0]), get_selected_expression_text(true).c_str());
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10438:49: note: suggested alternative: 'set_expression_text'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[0]), get_selected_expression_text(true).c_str());
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                 set_expression_text
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10440:49: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[0]));
                                                 ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10440:29: note: in expansion of macro 'GTK_SPIN_BUTTON'
      gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[0]));
                             ^
callbacks.cc:10442:54: error: 'struct FunctionDialog' has no member named 'entry'
     g_signal_handlers_unblock_matched((gpointer) fd->entry[0], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                      ^~~~~
callbacks.cc:10444:30: error: 'struct FunctionDialog' has no member named 'entry'
    gtk_widget_grab_focus(fd->entry[0]);
                              ^~~~~
callbacks.cc:10452:2: error: 'function_dialogs' was not declared in this scope
  function_dialogs[f] = fd;
  ^~~~~~~~~~~~~~~~
callbacks.cc:10452:2: note: suggested alternative: 'FunctionDialog'
  function_dialogs[f] = fd;
  ^~~~~~~~~~~~~~~~
  FunctionDialog
callbacks.cc:10470:2: error: 'string' was not declared in this scope
  string f_title = f->title(true);
  ^~~~~~
callbacks.cc:10470:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10472:47: error: 'f_title' was not declared in this scope
  gtk_window_set_title(GTK_WINDOW(fd->dialog), f_title.c_str());
                                               ^~~~~~~
callbacks.cc:10472:47: note: suggested alternative: 'finite'
  gtk_window_set_title(GTK_WINDOW(fd->dialog), f_title.c_str());
                                               ^~~~~~~
                                               finite
callbacks.cc:10509:6: error: 'struct FunctionDialog' has no member named 'label'
  fd->label.resize(args, NULL);
      ^~~~~
callbacks.cc:10510:6: error: 'struct FunctionDialog' has no member named 'entry'
  fd->entry.resize(args, NULL);
      ^~~~~
callbacks.cc:10511:6: error: 'struct FunctionDialog' has no member named 'type_label'
  fd->type_label.resize(args, NULL);
      ^~~~~~~~~~
callbacks.cc:10512:6: error: 'struct FunctionDialog' has no member named 'boolean_index'
  fd->boolean_index.resize(args, 0);
      ^~~~~~~~~~~~~
callbacks.cc:10527:9: error: expected ';' before 'argstr'
  string argstr, typestr, defstr;
         ^~~~~~
callbacks.cc:10528:9: error: expected ';' before 'argtype'
  string argtype;
         ^~~~~~~
callbacks.cc:10536:5: error: 'argstr' was not declared in this scope
     argstr = _("Value");
     ^~~~~~
callbacks.cc:10536:5: note: suggested alternative: 'args'
     argstr = _("Value");
     ^~~~~~
     args
callbacks.cc:10538:5: error: 'argstr' was not declared in this scope
     argstr = _("Argument");
     ^~~~~~
callbacks.cc:10538:5: note: suggested alternative: 'args'
     argstr = _("Argument");
     ^~~~~~
     args
callbacks.cc:10543:4: error: 'argstr' was not declared in this scope
    argstr = arg->name();
    ^~~~~~
callbacks.cc:10543:4: note: suggested alternative: 'args'
    argstr = arg->name();
    ^~~~~~
    args
callbacks.cc:10545:3: error: 'typestr' was not declared in this scope
   typestr = "";
   ^~~~~~~
callbacks.cc:10545:3: note: suggested alternative: 'typeof'
   typestr = "";
   ^~~~~~~
   typeof
callbacks.cc:10546:3: error: 'argtype' was not declared in this scope
   argtype = "";
   ^~~~~~~
callbacks.cc:10546:3: note: suggested alternative: 'p_type'
   argtype = "";
   ^~~~~~~
   p_type
callbacks.cc:10547:3: error: 'defstr' was not declared in this scope
   defstr = f->getDefaultValue(i + 1);
   ^~~~~~
callbacks.cc:10547:3: note: suggested alternative: 'eqstr'
   defstr = f->getDefaultValue(i + 1);
   ^~~~~~
   eqstr
callbacks.cc:10551:7: error: 'struct FunctionDialog' has no member named 'label'
   fd->label[i] = gtk_label_new(argstr.c_str());
       ^~~~~
callbacks.cc:10551:32: error: 'argstr' was not declared in this scope
   fd->label[i] = gtk_label_new(argstr.c_str());
                                ^~~~~~
callbacks.cc:10551:32: note: suggested alternative: 'args'
   fd->label[i] = gtk_label_new(argstr.c_str());
                                ^~~~~~
                                args
callbacks.cc:10552:29: error: 'struct FunctionDialog' has no member named 'label'
   gtk_widget_set_halign(fd->label[i], GTK_ALIGN_END);
                             ^~~~~
callbacks.cc:10553:30: error: 'struct FunctionDialog' has no member named 'label'
   gtk_widget_set_hexpand(fd->label[i], FALSE);
                              ^~~~~
callbacks.cc:10565:10: error: 'struct FunctionDialog' has no member named 'entry'
      fd->entry[i] = gtk_spin_button_new_with_range(min, max, 1);
          ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10566:54: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(fd->entry[i]), evalops.parse_options.base != BASE_DECIMAL);
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10566:34: note: in expansion of macro 'GTK_SPIN_BUTTON'
      gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(fd->entry[i]), evalops.parse_options.base != BASE_DECIMAL);
                                  ^
callbacks.cc:10567:44: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                                            ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10567:30: note: in expansion of macro 'GTK_ENTRY'
      gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10568:43: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect(GTK_SPIN_BUTTON(fd->entry[i]), "input", G_CALLBACK(on_function_int_input), NULL);
                                           ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:526:66: note: in expansion of macro '_G_TYPE_CIC'
 #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type)    (_G_TYPE_CIC ((instance), (g_type), c_type))
                                                                  ^~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10568:23: note: in expansion of macro 'GTK_SPIN_BUTTON'
      g_signal_connect(GTK_SPIN_BUTTON(fd->entry[i]), "input", G_CALLBACK(on_function_int_input), NULL);
                       ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10570:53: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), s2i(f->getDefaultValue(i + 1)));
                                                     ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10570:33: note: in expansion of macro 'GTK_SPIN_BUTTON'
       gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), s2i(f->getDefaultValue(i + 1)));
                                 ^
callbacks.cc:10572:53: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), 0);
                                                     ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10572:33: note: in expansion of macro 'GTK_SPIN_BUTTON'
       gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), 0);
                                 ^
callbacks.cc:10575:54: error: 'struct FunctionDialog' has no member named 'entry'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), max);
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10575:34: note: in expansion of macro 'GTK_SPIN_BUTTON'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), max);
                                  ^
callbacks.cc:10577:54: error: 'struct FunctionDialog' has no member named 'entry'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), 1);
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10577:34: note: in expansion of macro 'GTK_SPIN_BUTTON'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), 1);
                                  ^
callbacks.cc:10579:54: error: 'struct FunctionDialog' has no member named 'entry'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), min);
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10579:34: note: in expansion of macro 'GTK_SPIN_BUTTON'
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(fd->entry[i]), min);
                                  ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10582:38: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->entry[i], "changed", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10583:38: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->entry[i], "activate", G_CALLBACK(on_insert_function_entry_activated), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10587:10: error: 'struct FunctionDialog' has no member named 'boolean_index'
      fd->boolean_index[i] = bindex;
          ^~~~~~~~~~~~~
callbacks.cc:10589:10: error: 'struct FunctionDialog' has no member named 'entry'
      fd->entry[i] = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
          ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10590:42: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_box_set_homogeneous(GTK_BOX(fd->entry[i]), TRUE);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkbox.h:40:34: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_BOX(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX, GtkBox))
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10590:30: note: in expansion of macro 'GTK_BOX'
      gtk_box_set_homogeneous(GTK_BOX(fd->entry[i]), TRUE);
                              ^
callbacks.cc:10591:32: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_widget_set_halign(fd->entry[i], GTK_ALIGN_START);
                                ^~~~~
callbacks.cc:10592:10: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label(NULL, _("True")));
          ^~~~~~~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10593:37: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_box_pack_start(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                     ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkbox.h:40:34: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_BOX(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX, GtkBox))
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10593:25: note: in expansion of macro 'GTK_BOX'
      gtk_box_pack_start(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                         ^
callbacks.cc:10593:52: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_box_pack_start(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                                    ^~~~~~~~~~~~~~~
callbacks.cc:10593:72: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_box_pack_start(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                                                        ^~~~~~~~~~~~~~~
callbacks.cc:10594:10: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), _("False")));
          ^~~~~~~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10594:101: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), _("False")));
                                                                                                     ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkradiobutton.h:39:40: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_RADIO_BUTTON(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_BUTTON, GtkRadioButton))
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10594:80: note: in expansion of macro 'GTK_RADIO_BUTTON'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), _("False")));
                                                                                ^
callbacks.cc:10594:121: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), _("False")));
                                                                                                                         ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkradiobutton.h:39:40: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_RADIO_BUTTON(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_BUTTON, GtkRadioButton))
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10594:80: note: in expansion of macro 'GTK_RADIO_BUTTON'
      fd->boolean_buttons.push_back(gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), _("False")));
                                                                                ^
callbacks.cc:10595:35: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_box_pack_end(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                   ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkbox.h:40:34: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_BOX(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX, GtkBox))
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10595:23: note: in expansion of macro 'GTK_BOX'
      gtk_box_pack_end(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                       ^
callbacks.cc:10595:50: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_box_pack_end(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                                  ^~~~~~~~~~~~~~~
callbacks.cc:10595:70: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_box_pack_end(GTK_BOX(fd->entry[i]), fd->boolean_buttons[fd->boolean_buttons.size() - 1], TRUE, TRUE, 0);
                                                                      ^~~~~~~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10596:57: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), TRUE);
                                                         ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10596:35: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), TRUE);
                                   ^
callbacks.cc:10596:77: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), TRUE);
                                                                             ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10596:35: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 1]), TRUE);
                                   ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10597:38: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      g_signal_connect((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 1], "toggled", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10597:58: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      g_signal_connect((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 1], "toggled", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10598:38: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      g_signal_connect((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], "toggled", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10598:58: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
      g_signal_connect((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], "toggled", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10606:11: error: 'struct FunctionDialog' has no member named 'entry'
       fd->entry[i] = gtk_combo_box_new_with_model(GTK_TREE_MODEL(fd->properties_store));
           ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10608:54: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(fd->entry[i]), cell, TRUE);
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcelllayout.h:33:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_CELL_LAYOUT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_LAYOUT, GtkCellLayout))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10608:34: note: in expansion of macro 'GTK_CELL_LAYOUT'
       gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(fd->entry[i]), cell, TRUE);
                                  ^
callbacks.cc:10609:57: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(fd->entry[i]), cell, "text", 0);
                                                         ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcelllayout.h:33:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_CELL_LAYOUT(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_LAYOUT, GtkCellLayout))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10609:37: note: in expansion of macro 'GTK_CELL_LAYOUT'
       gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(fd->entry[i]), cell, "text", 0);
                                     ^
callbacks.cc:10628:58: error: 'struct FunctionDialog' has no member named 'entry'
          gtk_combo_box_set_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter);
                                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10628:40: note: in expansion of macro 'GTK_COMBO_BOX'
          gtk_combo_box_set_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter);
                                        ^
callbacks.cc:10637:56: error: 'struct FunctionDialog' has no member named 'entry'
        gtk_combo_box_set_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter);
                                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10637:38: note: in expansion of macro 'GTK_COMBO_BOX'
        gtk_combo_box_set_active_iter(GTK_COMBO_BOX(fd->entry[i]), &iter);
                                      ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10640:39: error: 'struct FunctionDialog' has no member named 'entry'
       g_signal_connect((gpointer) fd->entry[i], "changed", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                       ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10652:10: error: 'struct FunctionDialog' has no member named 'entry'
      fd->entry[i] = gtk_entry_new();
          ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10654:52: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_entry_set_placeholder_text(GTK_ENTRY(fd->entry[i]), _("optional"));
                                                    ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10654:38: note: in expansion of macro 'GTK_ENTRY'
       gtk_entry_set_placeholder_text(GTK_ENTRY(fd->entry[i]), _("optional"));
                                      ^
callbacks.cc:10656:44: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                                            ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10656:30: note: in expansion of macro 'GTK_ENTRY'
      gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                              ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10657:38: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->entry[i], "changed", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10658:38: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->entry[i], "activate", G_CALLBACK(on_insert_function_entry_activated), (gpointer) f);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10662:8: error: 'struct FunctionDialog' has no member named 'entry'
    fd->entry[i] = gtk_entry_new();
        ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10664:50: error: 'struct FunctionDialog' has no member named 'entry'
     gtk_entry_set_placeholder_text(GTK_ENTRY(fd->entry[i]), _("optional"));
                                                  ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10664:36: note: in expansion of macro 'GTK_ENTRY'
     gtk_entry_set_placeholder_text(GTK_ENTRY(fd->entry[i]), _("optional"));
                                    ^
callbacks.cc:10666:42: error: 'struct FunctionDialog' has no member named 'entry'
    gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10666:28: note: in expansion of macro 'GTK_ENTRY'
    gtk_entry_set_alignment(GTK_ENTRY(fd->entry[i]), 1.0);
                            ^
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10667:36: error: 'struct FunctionDialog' has no member named 'entry'
    g_signal_connect((gpointer) fd->entry[i], "changed", G_CALLBACK(on_insert_function_changed), (gpointer) f);
                                    ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10668:36: error: 'struct FunctionDialog' has no member named 'entry'
    g_signal_connect((gpointer) fd->entry[i], "activate", G_CALLBACK(on_insert_function_entry_activated), (gpointer) f);
                                    ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10670:30: error: 'struct FunctionDialog' has no member named 'entry'
   gtk_widget_set_hexpand(fd->entry[i], TRUE);
                              ^~~~~
callbacks.cc:10675:10: error: 'struct FunctionDialog' has no member named 'type_label'
      fd->type_label[i] = gtk_button_new_with_label(typestr.c_str());
          ^~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10676:38: error: 'struct FunctionDialog' has no member named 'type_label'
      g_signal_connect((gpointer) fd->type_label[i], "clicked", G_CALLBACK(on_type_label_date_clicked), (gpointer) fd->entry[i]);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10676:119: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->type_label[i], "clicked", G_CALLBACK(on_type_label_date_clicked), (gpointer) fd->entry[i]);
                                                                                                                       ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:73: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                                                                         ^~~~
callbacks.cc:10681:10: error: 'struct FunctionDialog' has no member named 'type_label'
      fd->type_label[i] = gtk_button_new_with_label(typestr.c_str());
          ^~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:30:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10682:38: error: 'struct FunctionDialog' has no member named 'type_label'
      g_signal_connect((gpointer) fd->type_label[i], "clicked", G_CALLBACK(on_type_label_file_clicked), (gpointer) fd->entry[i]);
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:29: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                             ^~~~~~~~
callbacks.cc:10682:119: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_connect((gpointer) fd->type_label[i], "clicked", G_CALLBACK(on_type_label_file_clicked), (gpointer) fd->entry[i]);
                                                                                                                       ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gsignal.h:515:73: note: in definition of macro 'g_signal_connect'
     g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
                                                                         ^~~~
callbacks.cc:10686:10: error: 'struct FunctionDialog' has no member named 'type_label'
      fd->type_label[i] = gtk_label_new(typestr.c_str());
          ^~~~~~~~~~
callbacks.cc:10690:8: error: 'struct FunctionDialog' has no member named 'type_label'
    fd->type_label[i] = gtk_label_new(typestr.c_str());
        ^~~~~~~~~~
callbacks.cc:10692:8: error: 'struct FunctionDialog' has no member named 'type_label'
    fd->type_label[i] = NULL;
        ^~~~~~~~~~
callbacks.cc:10701:54: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       g_signal_handlers_block_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                      ^~~~~~~~~~~~~~~
callbacks.cc:10701:74: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       g_signal_handlers_block_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                                          ^~~~~~~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10702:58: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10702:36: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                    ^
callbacks.cc:10702:78: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                                                              ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10702:36: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                    ^
callbacks.cc:10703:56: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       g_signal_handlers_unblock_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                        ^~~~~~~~~~~~~~~
callbacks.cc:10703:76: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
       g_signal_handlers_unblock_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                                            ^~~~~~~~~~~~~~~
callbacks.cc:10707:53: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_handlers_block_matched((gpointer) fd->entry[i], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                     ^~~~~
callbacks.cc:10709:14: error: expected ';' before 'rpn_vector'
       string rpn_vector = gstr;
              ^~~~~~~~~~
callbacks.cc:10713:8: error: 'rpn_vector' was not declared in this scope
        rpn_vector += CALCULATOR->getComma();
        ^~~~~~~~~~
callbacks.cc:10713:8: note: suggested alternative: 'has_vector'
        rpn_vector += CALCULATOR->getComma();
        ^~~~~~~~~~
        has_vector
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10717:40: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), rpn_vector.c_str());
                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10717:26: note: in expansion of macro 'GTK_ENTRY'
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), rpn_vector.c_str());
                          ^
callbacks.cc:10717:51: error: 'rpn_vector' was not declared in this scope
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), rpn_vector.c_str());
                                                   ^~~~~~~~~~
callbacks.cc:10717:51: note: suggested alternative: 'has_vector'
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), rpn_vector.c_str());
                                                   ^~~~~~~~~~
                                                   has_vector
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10719:40: error: 'struct FunctionDialog' has no member named 'entry'
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), gstr);
                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10719:26: note: in expansion of macro 'GTK_ENTRY'
       gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), gstr);
                          ^
callbacks.cc:10721:51: error: 'struct FunctionDialog' has no member named 'entry'
        gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[i]));
                                                   ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10721:31: note: in expansion of macro 'GTK_SPIN_BUTTON'
        gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[i]));
                               ^
callbacks.cc:10724:55: error: 'struct FunctionDialog' has no member named 'entry'
      g_signal_handlers_unblock_matched((gpointer) fd->entry[i], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                       ^~~~~
callbacks.cc:10730:52: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     g_signal_handlers_block_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                    ^~~~~~~~~~~~~~~
callbacks.cc:10730:72: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     g_signal_handlers_block_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                                        ^~~~~~~~~~~~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10731:56: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10731:34: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                  ^
callbacks.cc:10731:76: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                                                            ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtktogglebutton.h:39:50: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_TOGGLE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON, GtkToggleButton))
                                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10731:34: note: in expansion of macro 'GTK_TOGGLE_BUTTON'
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fd->boolean_buttons[fd->boolean_buttons.size() - 2]), TRUE);
                                  ^
callbacks.cc:10732:54: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     g_signal_handlers_unblock_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                      ^~~~~~~~~~~~~~~
callbacks.cc:10732:74: error: 'struct FunctionDialog' has no member named 'boolean_buttons'
     g_signal_handlers_unblock_matched((gpointer) fd->boolean_buttons[fd->boolean_buttons.size() - 2], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                                          ^~~~~~~~~~~~~~~
callbacks.cc:10736:51: error: 'struct FunctionDialog' has no member named 'entry'
    g_signal_handlers_block_matched((gpointer) fd->entry[i], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                   ^~~~~
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10737:97: error: 'struct FunctionDialog' has no member named 'entry'
    if(i < f->minargs() || has_vector || defstr != "undefined") gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), defstr.c_str());
                                                                                                 ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10737:83: note: in expansion of macro 'GTK_ENTRY'
    if(i < f->minargs() || has_vector || defstr != "undefined") gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), defstr.c_str());
                                                                                   ^
callbacks.cc:10740:38: error: 'struct FunctionDialog' has no member named 'entry'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), get_selected_expression_text(true).c_str());
                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkentry.h:49:42: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_ENTRY(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY, GtkEntry))
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10740:24: note: in expansion of macro 'GTK_ENTRY'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), get_selected_expression_text(true).c_str());
                        ^
callbacks.cc:10740:49: error: 'get_selected_expression_text' was not declared in this scope
     gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), get_selected_expression_text(true).c_str());
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10740:49: note: suggested alternative: 'set_expression_text'
     gtk_entry_set_text(GTK_ENTRY(fd->entry[i]), get_selected_expression_text(true).c_str());
                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                 set_expression_text
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:10742:49: error: 'struct FunctionDialog' has no member named 'entry'
      gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[i]));
                                                 ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:10742:29: note: in expansion of macro 'GTK_SPIN_BUTTON'
      gtk_spin_button_update(GTK_SPIN_BUTTON(fd->entry[i]));
                             ^
callbacks.cc:10745:53: error: 'struct FunctionDialog' has no member named 'entry'
    g_signal_handlers_unblock_matched((gpointer) fd->entry[i], G_SIGNAL_MATCH_FUNC, 0, 0, NULL, (gpointer) on_insert_function_changed, NULL);
                                                     ^~~~~
callbacks.cc:10747:40: error: 'struct FunctionDialog' has no member named 'label'
   gtk_grid_attach(GTK_GRID(table), fd->label[i], 0, i, 1, 1);
                                        ^~~~~
callbacks.cc:10748:40: error: 'struct FunctionDialog' has no member named 'entry'
   gtk_grid_attach(GTK_GRID(table), fd->entry[i], 1, i, 1, 1);
                                        ^~~~~
callbacks.cc:10749:10: error: 'struct FunctionDialog' has no member named 'type_label'
   if(fd->type_label[i]) {
          ^~~~~~~~~~
callbacks.cc:10750:31: error: 'struct FunctionDialog' has no member named 'type_label'
    gtk_widget_set_hexpand(fd->type_label[i], FALSE);
                               ^~~~~~~~~~
callbacks.cc:10751:30: error: 'struct FunctionDialog' has no member named 'type_label'
    gtk_widget_set_halign(fd->type_label[i], GTK_ALIGN_START);
                              ^~~~~~~~~~
callbacks.cc:10752:41: error: 'struct FunctionDialog' has no member named 'type_label'
    gtk_grid_attach(GTK_GRID(table), fd->type_label[i], 2, i, 1, 1);
                                         ^~~~~~~~~~
callbacks.cc:10765:10: error: expected ';' before 'str'
   string str;
          ^~~
callbacks.cc:10766:33: error: 'str' was not declared in this scope
   if(!f->description().empty()) str += f->description();
                                 ^~~
callbacks.cc:10768:8: error: 'str' was not declared in this scope
    if(!str.empty()) str += "\n\n";
        ^~~
callbacks.cc:10769:4: error: 'str' was not declared in this scope
    str += _("Example:");
    ^~~
callbacks.cc:10773:36: error: 'str' was not declared in this scope
   gtk_text_buffer_set_text(buffer, str.c_str(), -1);
                                    ^~~
callbacks.cc: In function 'void insert_button_unit(GtkMenuItem*, gpointer)':
callbacks.cc:10874:3: error: 'string' was not declared in this scope
   string si_label_str;
   ^~~~~~
callbacks.cc:10874:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10876:4: error: 'si_label_str' was not declared in this scope
    si_label_str = ((CompositeUnit*) latest_button_unit)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~
callbacks.cc:10876:4: note: suggested alternative: 'gtk_label_new'
    si_label_str = ((CompositeUnit*) latest_button_unit)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~
    gtk_label_new
callbacks.cc:10879:4: error: 'si_label_str' was not declared in this scope
    si_label_str = latest_button_unit->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~
callbacks.cc:10879:4: note: suggested alternative: 'gtk_label_new'
    si_label_str = latest_button_unit->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~
    gtk_label_new
callbacks.cc:10881:83: error: 'si_label_str' was not declared in this scope
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_si")), si_label_str.c_str());
                                                                                   ^~~~~~~~~~~~
callbacks.cc:10881:83: note: suggested alternative: 'gtk_label_new'
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_si")), si_label_str.c_str());
                                                                                   ^~~~~~~~~~~~
                                                                                   gtk_label_new
callbacks.cc: In function 'void insert_button_currency(GtkMenuItem*, gpointer)':
callbacks.cc:10894:3: error: 'string' was not declared in this scope
   string currency_label_str;
   ^~~~~~
callbacks.cc:10894:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10896:4: error: 'currency_label_str' was not declared in this scope
    currency_label_str = ((CompositeUnit*) latest_button_currency)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~~~~~~~
callbacks.cc:10896:4: note: suggested alternative: 'current_object_start'
    currency_label_str = ((CompositeUnit*) latest_button_currency)->print(false, true, printops.use_unicode_signs, &can_display_unicode_string_function, (void*) expressiontext);
    ^~~~~~~~~~~~~~~~~~
    current_object_start
callbacks.cc:10899:4: error: 'currency_label_str' was not declared in this scope
    currency_label_str = latest_button_currency->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~~~~~~~
callbacks.cc:10899:4: note: suggested alternative: 'current_object_start'
    currency_label_str = latest_button_currency->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~~~~~~~~~~~~~
    current_object_start
callbacks.cc:10901:85: error: 'currency_label_str' was not declared in this scope
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_euro")), currency_label_str.c_str());
                                                                                     ^~~~~~~~~~~~~~~~~~
callbacks.cc:10901:85: note: suggested alternative: 'current_object_start'
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(main_builder, "label_euro")), currency_label_str.c_str());
                                                                                     ^~~~~~~~~~~~~~~~~~
                                                                                     current_object_start
callbacks.cc: In function 'void set_name_label_and_entry(ExpressionItem*, GtkWidget*, GtkWidget*)':
callbacks.cc:10910:3: error: 'string' was not declared in this scope
   string str = "+ ";
   ^~~~~~
callbacks.cc:10910:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:10912:14: error: 'str' was not declared in this scope
    if(i > 2) str += ", ";
              ^~~
callbacks.cc:10913:4: error: 'str' was not declared in this scope
    str += item->getName(i).name;
    ^~~
callbacks.cc:10915:40: error: 'str' was not declared in this scope
   gtk_label_set_text(GTK_LABEL(label), str.c_str());
                                        ^~~
callbacks.cc: At global scope:
callbacks.cc:10918:45: error: 'string' has not been declared
 void set_edited_names(ExpressionItem *item, string str) {
                                             ^~~~~~
callbacks.cc: In function 'void set_edited_names(ExpressionItem*, int)':
callbacks.cc:10939:21: error: no matching function for call to 'ExpressionItem::addName(int&)'
    item->addName(str);
                     ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Prefix.h:18:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:20,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:166:15: note: candidate: virtual void ExpressionItem::addName(const ExpressionName&, size_t, bool)
  virtual void addName(const ExpressionName &ename, size_t index = 0, bool force = true);
               ^~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:166:15: note:   no known conversion for argument 1 from 'int' to 'const ExpressionName&'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:167:15: note: candidate: virtual void ExpressionItem::addName(std::__cxx11::string, size_t, bool)
  virtual void addName(std::string sname, size_t index = 0, bool force = true);
               ^~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:167:15: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
callbacks.cc:10943:28: error: no matching function for call to 'ExpressionName::ExpressionName(int&)'
    ExpressionName ename(str);
                            ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Prefix.h:18:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:20,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:50:2: note: candidate: ExpressionName::ExpressionName(std::__cxx11::string)
  ExpressionName(std::string sname);
  ^~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:50:2: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:45:2: note: candidate: ExpressionName::ExpressionName()
  ExpressionName();
  ^~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:45:2: note:   candidate expects 0 arguments, 1 provided
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Prefix.h:18:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:20,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:22:8: note: candidate: ExpressionName::ExpressionName(const ExpressionName&)
 struct ExpressionName {
        ^~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:22:8: note:   no known conversion for argument 1 from 'int' to 'const ExpressionName&'
callbacks.cc:10947:24: error: no matching function for call to 'ExpressionItem::setName(int&, int)'
    item->setName(str, 1);
                        ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Prefix.h:18:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:20,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:158:15: note: candidate: virtual void ExpressionItem::setName(const ExpressionName&, size_t, bool)
  virtual void setName(const ExpressionName &ename, size_t index = 1, bool force = true);
               ^~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:158:15: note:   no known conversion for argument 1 from 'int' to 'const ExpressionName&'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:165:15: note: candidate: virtual void ExpressionItem::setName(std::__cxx11::string, size_t, bool)
  virtual void setName(std::string sname, size_t index, bool force = true);
               ^~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/ExpressionItem.h:165:15: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
callbacks.cc: In function 'void edit_unit(const char*, Unit*, GtkWidget*)':
callbacks.cc:11028:6: error: 'string' was not declared in this scope
      string value = CALCULATOR->f_uncertainty->referenceName();
      ^~~~~~
callbacks.cc:11028:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11029:6: error: 'value' was not declared in this scope
      value += "(";
      ^~~~~
callbacks.cc:11029:6: note: suggested alternative: 'GValue'
      value += "(";
      ^~~~~
      GValue
callbacks.cc:11081:3: error: 'string' was not declared in this scope
   string str;
   ^~~~~~
callbacks.cc:11081:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11082:3: error: 'str' was not declared in this scope
   str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(unitedit_builder, "unit_edit_entry_name")));
   ^~~
callbacks.cc:11203:5: error: 'selected_unit_category' was not declared in this scope
     selected_unit_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11203:5: note: suggested alternative: 'selected_unit'
     selected_unit_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~
     selected_unit
callbacks.cc:11205:5: error: 'selected_unit_category' was not declared in this scope
     selected_unit_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11205:5: note: suggested alternative: 'selected_unit'
     selected_unit_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~
     selected_unit
callbacks.cc:11207:5: error: 'selected_unit_category' was not declared in this scope
     selected_unit_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11207:5: note: suggested alternative: 'selected_unit'
     selected_unit_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~
     selected_unit
callbacks.cc: In function 'void delete_function(MathFunction*)':
callbacks.cc:11375:25: error: 'recent_functions' was not declared in this scope
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
callbacks.cc:11375:25: note: suggested alternative: 'delete_function'
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
                         delete_function
callbacks.cc:11378:24: error: 'recent_function_items' was not declared in this scope
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11378:24: note: suggested alternative: 'insert_function_do'
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
                        insert_function_do
callbacks.cc: In function 'void edit_function(const char*, MathFunction*, GtkWidget*, const char*, const char*, bool)':
callbacks.cc:11460:4: error: 'string' was not declared in this scope
    string str, str2;
    ^~~~~~
callbacks.cc:11460:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11464:6: error: 'str' was not declared in this scope
      str = _("Yes");
      ^~~
callbacks.cc:11464:6: note: suggested alternative: 'iter'
      str = _("Yes");
      ^~~
      iter
callbacks.cc:11466:6: error: 'str' was not declared in this scope
      str = _("No");
      ^~~
callbacks.cc:11466:6: note: suggested alternative: 'iter'
      str = _("No");
      ^~~
      iter
callbacks.cc:11468:5: error: 'str2' was not declared in this scope
     str2 = "\\";
     ^~~~
callbacks.cc:11468:5: note: suggested alternative: 'stat'
     str2 = "\\";
     ^~~~
     stat
callbacks.cc:11470:123: error: 'str' was not declared in this scope
     gtk_list_store_set(tSubfunctions_store, &iter, 0, str2.c_str(), 1, ((UserFunction*) f)->getSubfunction(i).c_str(), 2, str.c_str(), 3, i, 4, ((UserFunction*) f)->subfunctionPrecalculated(i), -1);
                                                                                                                           ^~~
callbacks.cc:11470:123: note: suggested alternative: 'iter'
     gtk_list_store_set(tSubfunctions_store, &iter, 0, str2.c_str(), 1, ((UserFunction*) f)->getSubfunction(i).c_str(), 2, str.c_str(), 3, i, 4, ((UserFunction*) f)->subfunctionPrecalculated(i), -1);
                                                                                                                           ^~~
                                                                                                                           iter
callbacks.cc:11486:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(functionedit_builder, "function_edit_entry_name")));
   ^~~~~~
callbacks.cc:11486:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11487:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:11500:10: error: expected ';' before 'str2'
   string str2 = CALCULATOR->unlocalizeExpression(gstr, evalops.parse_options);
          ^~~~
callbacks.cc:11502:21: error: 'str2' was not declared in this scope
   remove_blank_ends(str2);
                     ^~~~
callbacks.cc:11502:21: note: suggested alternative: 'gstr'
   remove_blank_ends(str2);
                     ^~~~
                     gstr
callbacks.cc:11573:5: error: 'selected_function_category' was not declared in this scope
     selected_function_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11573:5: note: suggested alternative: 'selected_function'
     selected_function_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_function
callbacks.cc:11575:5: error: 'selected_function_category' was not declared in this scope
     selected_function_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11575:5: note: suggested alternative: 'selected_function'
     selected_function_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_function
callbacks.cc:11577:5: error: 'selected_function_category' was not declared in this scope
     selected_function_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11577:5: note: suggested alternative: 'selected_function'
     selected_function_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_function
callbacks.cc: In function 'void edit_function_simple(const char*, MathFunction*, GtkWidget*)':
callbacks.cc:11643:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(simplefunctionedit_builder, "simple_function_edit_entry_name")));
   ^~~~~~
callbacks.cc:11643:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11644:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:11654:10: error: expected ';' before 'str2'
   string str2 = CALCULATOR->unlocalizeExpression(gstr, evalops.parse_options);
          ^~~~
callbacks.cc:11656:21: error: 'str2' was not declared in this scope
   remove_blank_ends(str2);
                     ^~~~
callbacks.cc:11656:21: note: suggested alternative: 'gstr'
   remove_blank_ends(str2);
                     ^~~~
                     gstr
callbacks.cc:11696:3: error: 'string' was not declared in this scope
   string str2 = gstr;
   ^~~~~~
callbacks.cc:11696:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11699:21: error: 'str2' was not declared in this scope
    gsub("x", "\\x", str2);
                     ^~~~
callbacks.cc:11699:21: note: suggested alternative: 'gstr'
    gsub("x", "\\x", str2);
                     ^~~~
                     gstr
callbacks.cc:11703:153: error: 'str2' was not declared in this scope
   edit_function(category, f, win, gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(simplefunctionedit_builder, "simple_function_edit_entry_name"))), str2.c_str(), gtk_widget_get_sensitive(GTK_WIDGET(gtk_builder_get_object(simplefunctionedit_builder, "simple_function_edit_button_ok"))));
                                                                                                                                                         ^~~~
callbacks.cc:11703:153: note: suggested alternative: 'gstr'
   edit_function(category, f, win, gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(simplefunctionedit_builder, "simple_function_edit_entry_name"))), str2.c_str(), gtk_widget_get_sensitive(GTK_WIDGET(gtk_builder_get_object(simplefunctionedit_builder, "simple_function_edit_button_ok"))));
                                                                                                                                                         ^~~~
                                                                                                                                                         gstr
callbacks.cc: In function 'void convert_to_unit(GtkMenuItem*, gpointer)':
callbacks.cc:11735:50: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_CONVERT_UNIT, true, "", u);
                                                  ^
callbacks.cc:8869:6: note:   initializing argument 3 of 'void executeCommand(int, bool, int, Unit*, int)'
 void executeCommand(int command_type, bool show_result, string ceu_str, Unit *u, int run) {
      ^~~~~~~~~~~~~~
callbacks.cc: In function 'void convert_to_unit_noprefix(GtkMenuItem*, gpointer)':
callbacks.cc:11748:2: error: 'string' was not declared in this scope
  string ceu_str = u->name();
  ^~~~~~
callbacks.cc:11748:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11750:47: error: 'ceu_str' was not declared in this scope
  executeCommand(COMMAND_CONVERT_STRING, true, ceu_str);
                                               ^~~~~~~
callbacks.cc:11750:47: note: suggested alternative: 'eqstr'
  executeCommand(COMMAND_CONVERT_STRING, true, ceu_str);
                                               ^~~~~~~
                                               eqstr
callbacks.cc: In function 'void edit_unknown(const char*, Variable*, GtkWidget*)':
callbacks.cc:11812:3: error: 'string' was not declared in this scope
   string v_name = CALCULATOR->getName();
   ^~~~~~
callbacks.cc:11812:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11813:105: error: 'v_name' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(unknownedit_builder, "unknown_edit_entry_name")), v_name.c_str());
                                                                                                         ^~~~~~
callbacks.cc:11813:105: note: suggested alternative: 'rename'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(unknownedit_builder, "unknown_edit_entry_name")), v_name.c_str());
                                                                                                         ^~~~~~
                                                                                                         rename
callbacks.cc:11830:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(unknownedit_builder, "unknown_edit_entry_name")));
   ^~~~~~
callbacks.cc:11830:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11831:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:11878:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11878:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:11880:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11880:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:11882:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11882:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc: In function 'void delete_variable(Variable*)':
callbacks.cc:11905:25: error: 'recent_variables' was not declared in this scope
   for(size_t i = 0; i < recent_variables.size(); i++) {
                         ^~~~~~~~~~~~~~~~
callbacks.cc:11905:25: note: suggested alternative: 'delete_variable'
   for(size_t i = 0; i < recent_variables.size(); i++) {
                         ^~~~~~~~~~~~~~~~
                         delete_variable
callbacks.cc:11908:24: error: 'recent_variable_items' was not declared in this scope
     gtk_widget_destroy(recent_variable_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:11908:24: note: suggested alternative: 'delete_variable'
     gtk_widget_destroy(recent_variable_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
                        delete_variable
callbacks.cc: In function 'void edit_variable(const char*, Variable*, MathStructure*, GtkWidget*)':
callbacks.cc:11969:3: error: 'string' was not declared in this scope
   string value_str;
   ^~~~~~
callbacks.cc:11969:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:11971:4: error: 'value_str' was not declared in this scope
    value_str = CALCULATOR->localizeExpression(v->expression());
    ^~~~~~~~~
callbacks.cc:11989:4: error: 'value_str' was not declared in this scope
    value_str = get_value_string(v->get(), false, NULL);
    ^~~~~~~~~
callbacks.cc:11989:16: error: 'get_value_string' was not declared in this scope
    value_str = get_value_string(v->get(), false, NULL);
                ^~~~~~~~~~~~~~~~
callbacks.cc:11989:16: note: suggested alternative: 'g_value_set_int'
    value_str = get_value_string(v->get(), false, NULL);
                ^~~~~~~~~~~~~~~~
                g_value_set_int
callbacks.cc:11991:108: error: 'value_str' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value")), value_str.c_str());
                                                                                                            ^~~~~~~~~
callbacks.cc:12006:3: error: 'string' was not declared in this scope
   string v_name = CALCULATOR->getName();
   ^~~~~~
callbacks.cc:12006:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12007:107: error: 'v_name' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_name")), v_name.c_str());
                                                                                                           ^~~~~~
callbacks.cc:12007:107: note: suggested alternative: 'rename'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_name")), v_name.c_str());
                                                                                                           ^~~~~~
                                                                                                           rename
callbacks.cc:12009:128: error: 'get_value_string' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value")), displayed_mstruct ? get_value_string(*mstruct).c_str() : get_expression_text().c_str());
                                                                                                                                ^~~~~~~~~~~~~~~~
callbacks.cc:12009:128: note: suggested alternative: 'g_value_set_int'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value")), displayed_mstruct ? get_value_string(*mstruct).c_str() : get_expression_text().c_str());
                                                                                                                                ^~~~~~~~~~~~~~~~
                                                                                                                                g_value_set_int
callbacks.cc:12009:165: error: 'get_expression_text' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value")), displayed_mstruct ? get_value_string(*mstruct).c_str() : get_expression_text().c_str());
                                                                                                                                                                     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:12009:165: note: suggested alternative: 'set_expression_text'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value")), displayed_mstruct ? get_value_string(*mstruct).c_str() : get_expression_text().c_str());
                                                                                                                                                                     ^~~~~~~~~~~~~~~~~~~
                                                                                                                                                                     set_expression_text
callbacks.cc:12024:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_name")));
   ^~~~~~
callbacks.cc:12024:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12025:10: error: expected ';' before 'str2'
   string str2 = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(variableedit_builder, "variable_edit_entry_value"))), evalops.parse_options);
          ^~~~
callbacks.cc:12026:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:12027:21: error: 'str2' was not declared in this scope
   remove_blank_ends(str2);
                     ^~~~
callbacks.cc:12027:21: note: suggested alternative: 'stat'
   remove_blank_ends(str2);
                     ^~~~
                     stat
callbacks.cc:12084:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12084:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:12086:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12086:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:12088:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12088:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc: In function 'void edit_matrix(const char*, Variable*, MathStructure*, GtkWidget*, gboolean)':
callbacks.cc:12186:3: error: 'string' was not declared in this scope
   string v_name = CALCULATOR->getName();
   ^~~~~~
callbacks.cc:12186:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12187:103: error: 'v_name' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(matrixedit_builder, "matrix_edit_entry_name")), v_name.c_str());
                                                                                                       ^~~~~~
callbacks.cc:12187:103: note: suggested alternative: 'rename'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(matrixedit_builder, "matrix_edit_entry_name")), v_name.c_str());
                                                                                                       ^~~~~~
                                                                                                       rename
callbacks.cc:12262:62: error: 'matrix_edit_columns' was not declared in this scope
   gtk_tree_view_set_cursor(GTK_TREE_VIEW(tMatrixEdit), path, matrix_edit_columns[0], TRUE);
                                                              ^~~~~~~~~~~~~~~~~~~
callbacks.cc:12262:62: note: suggested alternative: 'matrixedit_builder'
   gtk_tree_view_set_cursor(GTK_TREE_VIEW(tMatrixEdit), path, matrix_edit_columns[0], TRUE);
                                                              ^~~~~~~~~~~~~~~~~~~
                                                              matrixedit_builder
callbacks.cc:12276:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(matrixedit_builder, "matrix_edit_entry_name")));
   ^~~~~~
callbacks.cc:12276:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12277:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:12277:21: note: suggested alternative: 'iter'
   remove_blank_ends(str);
                     ^~~
                     iter
callbacks.cc:12302:11: error: expected ';' before 'mstr'
    string mstr;
           ^~~~
callbacks.cc:12309:7: error: 'mstr' was not declared in this scope
       mstr = gstr;
       ^~~~
callbacks.cc:12309:7: note: suggested alternative: 'gstr'
       mstr = gstr;
       ^~~~
       gstr
callbacks.cc:12324:7: error: 'mstr' was not declared in this scope
       mstr = gstr;
       ^~~~
callbacks.cc:12324:7: note: suggested alternative: 'gstr'
       mstr = gstr;
       ^~~~
       gstr
callbacks.cc:12365:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12365:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Inactive");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:12367:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12367:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = _("Uncategorized");
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc:12369:5: error: 'selected_variable_category' was not declared in this scope
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:12369:5: note: suggested alternative: 'selected_variable'
     selected_variable_category = "/";
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc: In function 'void insert_matrix(const MathStructure*, GtkWidget*, gboolean, bool, bool)':
callbacks.cc:12477:58: error: 'matrix_columns' was not declared in this scope
   gtk_tree_view_set_cursor(GTK_TREE_VIEW(tMatrix), path, matrix_columns[0], TRUE);
                                                          ^~~~~~~~~~~~~~
callbacks.cc:12477:58: note: suggested alternative: 'flag_column'
   gtk_tree_view_set_cursor(GTK_TREE_VIEW(tMatrix), path, matrix_columns[0], TRUE);
                                                          ^~~~~~~~~~~~~~
                                                          flag_column
callbacks.cc:12490:3: error: 'string' was not declared in this scope
   string matrixstr, str;
   ^~~~~~
callbacks.cc:12490:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12497:4: error: 'matrixstr' was not declared in this scope
    matrixstr = "[";
    ^~~~~~~~~
callbacks.cc:12497:4: note: suggested alternative: 'Matrix'
    matrixstr = "[";
    ^~~~~~~~~
    Matrix
callbacks.cc:12501:6: error: 'str' was not declared in this scope
      str = gstr;
      ^~~
callbacks.cc:12501:6: note: suggested alternative: 'gstr'
      str = gstr;
      ^~~
      gstr
callbacks.cc:12518:4: error: 'matrixstr' was not declared in this scope
    matrixstr = "[";
    ^~~~~~~~~
callbacks.cc:12518:4: note: suggested alternative: 'Matrix'
    matrixstr = "[";
    ^~~~~~~~~
    Matrix
callbacks.cc:12537:6: error: 'str' was not declared in this scope
      str = gstr;
      ^~~
callbacks.cc:12537:6: note: suggested alternative: 'gstr'
      str = gstr;
      ^~~
      gstr
callbacks.cc:12548:15: error: 'matrixstr' was not declared in this scope
   insert_text(matrixstr.c_str());
               ^~~~~~~~~
callbacks.cc:12548:15: note: suggested alternative: 'Matrix'
   insert_text(matrixstr.c_str());
               ^~~~~~~~~
               Matrix
callbacks.cc: In function 'void edit_dataobject(DataSet*, DataObject*, GtkWidget*)':
callbacks.cc:12573:2: error: 'string' was not declared in this scope
  string sval;
  ^~~~~~
callbacks.cc:12573:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12581:2: error: 'vector' was not declared in this scope
  vector<GtkWidget*> value_entries;
  ^~~~~~
callbacks.cc:12581:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:12581:18: error: expected primary-expression before '*' token
  vector<GtkWidget*> value_entries;
                  ^
callbacks.cc:12581:19: error: expected primary-expression before '>' token
  vector<GtkWidget*> value_entries;
                   ^
callbacks.cc:12581:21: error: 'value_entries' was not declared in this scope
  vector<GtkWidget*> value_entries;
                     ^~~~~~~~~~~~~
callbacks.cc:12582:18: error: expected primary-expression before '*' token
  vector<GtkWidget*> approx_menus;
                  ^
callbacks.cc:12582:19: error: expected primary-expression before '>' token
  vector<GtkWidget*> approx_menus;
                   ^
callbacks.cc:12582:21: error: 'approx_menus' was not declared in this scope
  vector<GtkWidget*> approx_menus;
                     ^~~~~~~~~~~~
callbacks.cc:12582:21: note: suggested alternative: 'update_umenus'
  vector<GtkWidget*> approx_menus;
                     ^~~~~~~~~~~~
                     update_umenus
callbacks.cc:12583:9: error: expected ';' before 'str'
  string str;
         ^~~
callbacks.cc:12624:10: error: expected ';' before 'val'
   string val;
          ^~~
callbacks.cc:12626:4: error: 'val' was not declared in this scope
    val = gtk_entry_get_text(GTK_ENTRY(value_entries[i]));
    ^~~
callbacks.cc:12626:4: note: suggested alternative: 'vans'
    val = gtk_entry_get_text(GTK_ENTRY(value_entries[i]));
    ^~~
    vans
callbacks.cc: In function 'void update_dataset_property_list(DataSet*)':
callbacks.cc:12654:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:12654:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12655:24: error: 'tmp_props' was not declared in this scope
  for(size_t i = 0; i < tmp_props.size(); i++) {
                        ^~~~~~~~~
callbacks.cc:12655:24: note: suggested alternative: 'top_ips'
  for(size_t i = 0; i < tmp_props.size(); i++) {
                        ^~~~~~~~~
                        top_ips
callbacks.cc:12658:4: error: 'str' was not declared in this scope
    str = "";
    ^~~
callbacks.cc:12658:4: note: suggested alternative: 'iter'
    str = "";
    ^~~
    iter
callbacks.cc: In function 'bool edit_dataproperty(DataProperty*, bool)':
callbacks.cc:12702:3: error: 'string' was not declared in this scope
   string str = "+ ";
   ^~~~~~
callbacks.cc:12702:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12704:14: error: 'str' was not declared in this scope
    if(i > 2) str += ", ";
              ^~~
callbacks.cc:12705:4: error: 'str' was not declared in this scope
    str += dp->getName(i);
    ^~~
callbacks.cc:12707:111: error: 'str' was not declared in this scope
   gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(datasetedit_builder, "dataproperty_edit_label_names")), str.c_str());
                                                                                                               ^~~
callbacks.cc:12748:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(datasetedit_builder, "dataproperty_edit_entry_name")));
   ^~~~~~
callbacks.cc:12748:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12749:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc: In function 'void edit_dataset(DataSet*, GtkWidget*)':
callbacks.cc:12881:4: error: 'tmp_props' was not declared in this scope
    tmp_props.push_back(new DataProperty(*dp));
    ^~~~~~~~~
callbacks.cc:12881:4: note: suggested alternative: 'top_ips'
    tmp_props.push_back(new DataProperty(*dp));
    ^~~~~~~~~
    top_ips
callbacks.cc:12882:4: error: 'tmp_props_orig' was not declared in this scope
    tmp_props_orig.push_back(dp);
    ^~~~~~~~~~~~~~
callbacks.cc:12897:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(datasetedit_builder, "dataset_edit_entry_name")));
   ^~~~~~
callbacks.cc:12897:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:12898:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:12932:10: error: expected ';' before 'str2'
   string str2;
          ^~~~
callbacks.cc:12934:4: error: 'str2' was not declared in this scope
    str2 = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(datasetedit_builder, "dataset_edit_entry_object_name")));
    ^~~~
callbacks.cc:12934:4: note: suggested alternative: 'stat'
    str2 = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(datasetedit_builder, "dataset_edit_entry_object_name")));
    ^~~~
    stat
callbacks.cc:12952:26: error: 'tmp_props' was not declared in this scope
    for(size_t i = 0; i < tmp_props.size();) {
                          ^~~~~~~~~
callbacks.cc:12952:26: note: suggested alternative: 'top_ips'
    for(size_t i = 0; i < tmp_props.size();) {
                          ^~~~~~~~~
                          top_ips
callbacks.cc:12954:9: error: 'tmp_props_orig' was not declared in this scope
      if(tmp_props_orig[i]) ds->delProperty(tmp_props_orig[i]);
         ^~~~~~~~~~~~~~
callbacks.cc:12957:9: error: 'tmp_props_orig' was not declared in this scope
      if(tmp_props_orig[i]) {
         ^~~~~~~~~~~~~~
callbacks.cc:12980:24: error: 'tmp_props' was not declared in this scope
  for(size_t i = 0; i < tmp_props.size(); i++) {
                        ^~~~~~~~~
callbacks.cc:12980:24: note: suggested alternative: 'top_ips'
  for(size_t i = 0; i < tmp_props.size(); i++) {
                        ^~~~~~~~~
                        top_ips
callbacks.cc:12983:2: error: 'tmp_props' was not declared in this scope
  tmp_props.clear();
  ^~~~~~~~~
callbacks.cc:12983:2: note: suggested alternative: 'top_ips'
  tmp_props.clear();
  ^~~~~~~~~
  top_ips
callbacks.cc:12984:2: error: 'tmp_props_orig' was not declared in this scope
  tmp_props_orig.clear();
  ^~~~~~~~~~~~~~
callbacks.cc: In function 'void import_csv_file(GtkWidget*)':
callbacks.cc:13005:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_file")));
   ^~~~~~
callbacks.cc:13005:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13006:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:13013:10: error: expected ';' before 'name_str'
   string name_str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_name")));
          ^~~~~~~~
callbacks.cc:13014:21: error: 'name_str' was not declared in this scope
   remove_blank_ends(name_str);
                     ^~~~~~~~
callbacks.cc:13014:21: note: suggested alternative: 'mp_ptr'
   remove_blank_ends(name_str);
                     ^~~~~~~~
                     mp_ptr
callbacks.cc:13026:10: error: expected ';' before 'delimiter'
   string delimiter = "";
          ^~~~~~~~~
callbacks.cc:13029:5: error: 'delimiter' was not declared in this scope
     delimiter = ",";
     ^~~~~~~~~
callbacks.cc:13029:5: note: suggested alternative: 'setitimer'
     delimiter = ",";
     ^~~~~~~~~
     setitimer
callbacks.cc:13033:5: error: 'delimiter' was not declared in this scope
     delimiter = "\t";
     ^~~~~~~~~
callbacks.cc:13033:5: note: suggested alternative: 'setitimer'
     delimiter = "\t";
     ^~~~~~~~~
     setitimer
callbacks.cc:13037:5: error: 'delimiter' was not declared in this scope
     delimiter = ";";
     ^~~~~~~~~
callbacks.cc:13037:5: note: suggested alternative: 'setitimer'
     delimiter = ";";
     ^~~~~~~~~
     setitimer
callbacks.cc:13041:5: error: 'delimiter' was not declared in this scope
     delimiter = " ";
     ^~~~~~~~~
callbacks.cc:13041:5: note: suggested alternative: 'setitimer'
     delimiter = " ";
     ^~~~~~~~~
     setitimer
callbacks.cc:13045:5: error: 'delimiter' was not declared in this scope
     delimiter = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_delimiter_other")));
     ^~~~~~~~~
callbacks.cc:13045:5: note: suggested alternative: 'setitimer'
     delimiter = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_delimiter_other")));
     ^~~~~~~~~
     setitimer
callbacks.cc:13049:6: error: 'delimiter' was not declared in this scope
   if(delimiter.empty()) {
      ^~~~~~~~~
callbacks.cc:13049:6: note: suggested alternative: 'setitimer'
   if(delimiter.empty()) {
      ^~~~~~~~~
      setitimer
callbacks.cc:13056:297: error: 'delimiter' was not declared in this scope
   if(!CALCULATOR->importCSV(str.c_str(), gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_spinbutton_first_row"))), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_checkbutton_headers"))), delimiter, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_radiobutton_matrix"))), name_str, gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_desc"))), gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gtk_builder_get_object(csvimport_builder, "csv_import_combo_category"))))) {
                                                                                                                                                                                                                                                                                                         ^~~~~~~~~
callbacks.cc:13056:297: note: suggested alternative: 'setitimer'
   if(!CALCULATOR->importCSV(str.c_str(), gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_spinbutton_first_row"))), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_checkbutton_headers"))), delimiter, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(csvimport_builder, "csv_import_radiobutton_matrix"))), name_str, gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_desc"))), gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(gtk_builder_get_object(csvimport_builder, "csv_import_combo_category"))))) {
                                                                                                                                                                                                                                                                                                         ^~~~~~~~~
                                                                                                                                                                                                                                                                                                         setitimer
callbacks.cc: In function 'void export_csv_file(KnownVariable*, GtkWidget*)':
callbacks.cc:13091:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvexport_builder, "csv_export_entry_file")));
   ^~~~~~
callbacks.cc:13091:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13092:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:13099:10: error: expected ';' before 'delimiter'
   string delimiter = "";
          ^~~~~~~~~
callbacks.cc:13102:5: error: 'delimiter' was not declared in this scope
     delimiter = ",";
     ^~~~~~~~~
callbacks.cc:13102:5: note: suggested alternative: 'setitimer'
     delimiter = ",";
     ^~~~~~~~~
     setitimer
callbacks.cc:13106:5: error: 'delimiter' was not declared in this scope
     delimiter = "\t";
     ^~~~~~~~~
callbacks.cc:13106:5: note: suggested alternative: 'setitimer'
     delimiter = "\t";
     ^~~~~~~~~
     setitimer
callbacks.cc:13110:5: error: 'delimiter' was not declared in this scope
     delimiter = ";";
     ^~~~~~~~~
callbacks.cc:13110:5: note: suggested alternative: 'setitimer'
     delimiter = ";";
     ^~~~~~~~~
     setitimer
callbacks.cc:13114:5: error: 'delimiter' was not declared in this scope
     delimiter = " ";
     ^~~~~~~~~
callbacks.cc:13114:5: note: suggested alternative: 'setitimer'
     delimiter = " ";
     ^~~~~~~~~
     setitimer
callbacks.cc:13118:5: error: 'delimiter' was not declared in this scope
     delimiter = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvexport_builder, "csv_export_entry_delimiter_other")));
     ^~~~~~~~~
callbacks.cc:13118:5: note: suggested alternative: 'setitimer'
     delimiter = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvexport_builder, "csv_export_entry_delimiter_other")));
     ^~~~~~~~~
     setitimer
callbacks.cc:13122:6: error: 'delimiter' was not declared in this scope
   if(delimiter.empty()) {
      ^~~~~~~~~
callbacks.cc:13122:6: note: suggested alternative: 'setitimer'
   if(delimiter.empty()) {
      ^~~~~~~~~
      setitimer
callbacks.cc:13134:11: error: expected ';' before 'str2'
    string str2 = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvexport_builder, "csv_export_entry_matrix")));
           ^~~~
callbacks.cc:13135:22: error: 'str2' was not declared in this scope
    remove_blank_ends(str2);
                      ^~~~
callbacks.cc:13135:22: note: suggested alternative: 'stat'
    remove_blank_ends(str2);
                      ^~~~
                      stat
callbacks.cc:13156:58: error: 'delimiter' was not declared in this scope
   if(!CALCULATOR->exportCSV(*matrix_struct, str.c_str(), delimiter) && CALCULATOR->aborted()) {
                                                          ^~~~~~~~~
callbacks.cc:13156:58: note: suggested alternative: 'setitimer'
   if(!CALCULATOR->exportCSV(*matrix_struct, str.c_str(), delimiter) && CALCULATOR->aborted()) {
                                                          ^~~~~~~~~
                                                          setitimer
callbacks.cc: In function 'bool is_number(const gchar*)':
callbacks.cc:13287:2: error: 'string' was not declared in this scope
  string str = CALCULATOR->unlocalizeExpression(expr, evalops.parse_options);
  ^~~~~~
callbacks.cc:13287:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13288:25: error: 'str' was not declared in this scope
  CALCULATOR->parseSigns(str);
                         ^~~
callbacks.cc: In function 'bool last_is_number(const gchar*)':
callbacks.cc:13295:2: error: 'string' was not declared in this scope
  string str = CALCULATOR->unlocalizeExpression(expr, evalops.parse_options);
  ^~~~~~
callbacks.cc:13295:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13296:25: error: 'str' was not declared in this scope
  CALCULATOR->parseSigns(str);
                         ^~~
callbacks.cc: In function 'void insertButtonFunction(MathFunction*, bool, bool)':
callbacks.cc:13331:2: error: 'string' was not declared in this scope
  string str2;
  ^~~~~~
callbacks.cc:13331:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13439:5: error: 'str2' was not declared in this scope
     str2 += print_with_evalops(nr);
     ^~~~
callbacks.cc:13439:5: note: suggested alternative: 'stat'
     str2 += print_with_evalops(nr);
     ^~~~
     stat
callbacks.cc:13439:13: error: 'print_with_evalops' was not declared in this scope
     str2 += print_with_evalops(nr);
             ^~~~~~~~~~~~~~~~~~
callbacks.cc:13439:13: note: suggested alternative: 'print_auto_calc'
     str2 += print_with_evalops(nr);
             ^~~~~~~~~~~~~~~~~~
             print_auto_calc
callbacks.cc:13441:5: error: 'str2' was not declared in this scope
     str2 += gtk_entry_get_text(GTK_ENTRY(w3));
     ^~~~
callbacks.cc:13441:5: note: suggested alternative: 'stat'
     str2 += gtk_entry_get_text(GTK_ENTRY(w3));
     ^~~~
     stat
callbacks.cc:13443:4: error: 'str2' was not declared in this scope
    str2 += CALCULATOR->getComma();
    ^~~~
callbacks.cc:13443:4: note: suggested alternative: 'stat'
    str2 += CALCULATOR->getComma();
    ^~~~
    stat
callbacks.cc:13446:3: error: 'str2' was not declared in this scope
   str2 += print_with_evalops(bits);
   ^~~~
callbacks.cc:13446:3: note: suggested alternative: 'stat'
   str2 += print_with_evalops(bits);
   ^~~~
   stat
callbacks.cc:13446:11: error: 'print_with_evalops' was not declared in this scope
   str2 += print_with_evalops(bits);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:13446:11: note: suggested alternative: 'print_auto_calc'
   str2 += print_with_evalops(bits);
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc:13505:4: error: 'str2' was not declared in this scope
    str2 = print_with_evalops(nr);
    ^~~~
callbacks.cc:13505:4: note: suggested alternative: 'stat'
    str2 = print_with_evalops(nr);
    ^~~~
    stat
callbacks.cc:13505:11: error: 'print_with_evalops' was not declared in this scope
    str2 = print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:13505:11: note: suggested alternative: 'print_auto_calc'
    str2 = print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc:13507:4: error: 'str2' was not declared in this scope
    str2 = gtk_entry_get_text(GTK_ENTRY(entry));
    ^~~~
callbacks.cc:13507:4: note: suggested alternative: 'stat'
    str2 = gtk_entry_get_text(GTK_ENTRY(entry));
    ^~~~
    stat
callbacks.cc:13514:20: error: 'str2' was not declared in this scope
   bool do_exec = (!str2.empty() || f->minargs() < 2) && !rpn_mode && ((gtk_text_iter_is_start(&istart) && gtk_text_iter_is_end(&iend)) || (gtk_text_iter_is_start(&iend) && gtk_text_iter_is_end(&istart)));
                    ^~~~
callbacks.cc:13514:20: note: suggested alternative: 'stat'
   bool do_exec = (!str2.empty() || f->minargs() < 2) && !rpn_mode && ((gtk_text_iter_is_start(&istart) && gtk_text_iter_is_end(&iend)) || (gtk_text_iter_is_start(&iend) && gtk_text_iter_is_end(&istart)));
                    ^~~~
                    stat
callbacks.cc:13517:10: error: expected ';' before 'str'
   string str = gstr;
          ^~~
callbacks.cc:13518:21: error: 'str' was not declared in this scope
   remove_blank_ends(str);
                     ^~~
callbacks.cc:13518:21: note: suggested alternative: 'gstr'
   remove_blank_ends(str);
                     ^~~
                     gstr
callbacks.cc:13543:27: error: 'str2' was not declared in this scope
   if(f->minargs() > 1 || !str2.empty()) {
                           ^~~~
callbacks.cc:13543:27: note: suggested alternative: 'stat'
   if(f->minargs() > 1 || !str2.empty()) {
                           ^~~~
                           stat
callbacks.cc: In function 'void convert_in_wUnits(int)':
callbacks.cc:13710:3: error: 'old_fromValue' was not declared in this scope
   old_fromValue = fromValue;
   ^~~~~~~~~~~~~
callbacks.cc:13710:3: note: suggested alternative: 'fromValue'
   old_fromValue = fromValue;
   ^~~~~~~~~~~~~
   fromValue
callbacks.cc:13711:3: error: 'old_toValue' was not declared in this scope
   old_toValue = toValue;
   ^~~~~~~~~~~
callbacks.cc:13711:3: note: suggested alternative: 'toValue'
   old_toValue = toValue;
   ^~~~~~~~~~~
   toValue
callbacks.cc: In function 'void set_saved_mode()':
callbacks.cc:13798:2: error: 'modes' was not declared in this scope
  modes[1].precision = CALCULATOR->getPrecision();
  ^~~~~
callbacks.cc:13798:2: note: suggested alternative: 'mode_t'
  modes[1].precision = CALCULATOR->getPrecision();
  ^~~~~
  mode_t
callbacks.cc: At global scope:
callbacks.cc:13815:21: error: 'string' was not declared in this scope
 size_t save_mode_as(string name, bool *new_mode = NULL) {
                     ^~~~~~
callbacks.cc:13815:21: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13815:34: error: expected primary-expression before 'bool'
 size_t save_mode_as(string name, bool *new_mode = NULL) {
                                  ^~~~
callbacks.cc:13815:55: error: expression list treated as compound expression in initializer [-fpermissive]
 size_t save_mode_as(string name, bool *new_mode = NULL) {
                                                       ^
callbacks.cc: In function 'void load_mode(const mode_struct&)':
callbacks.cc:13871:2: error: 'string' was not declared in this scope
  string str = gtext;
  ^~~~~~
callbacks.cc:13871:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13875:50: error: 'str' was not declared in this scope
  } else if(rpn_mode || expression_has_changed || str.find_first_not_of(SPACES) == string::npos) {
                                                  ^~~
callbacks.cc:13875:83: error: 'string' is not a class, namespace, or enumeration
  } else if(rpn_mode || expression_has_changed || str.find_first_not_of(SPACES) == string::npos) {
                                                                                   ^~~~~~
callbacks.cc:13876:37: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   setResult(NULL, true, false, false);
                                     ^
callbacks.cc: At global scope:
callbacks.cc:13883:16: error: variable or field 'load_mode' declared void
 void load_mode(string name) {
                ^~~~~~
callbacks.cc:13883:16: error: 'string' was not declared in this scope
callbacks.cc:13883:16: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void load_mode(size_t)':
callbacks.cc:13892:13: error: 'modes' was not declared in this scope
  if(index < modes.size()) {
             ^~~~~
callbacks.cc:13892:13: note: suggested alternative: 'mode_t'
  if(index < modes.size()) {
             ^~~~~
             mode_t
callbacks.cc: In function 'void expression_set_from_undo_buffer()':
callbacks.cc:13929:18: error: 'expression_undo_buffer' was not declared in this scope
  if(undo_index < expression_undo_buffer.size()) {
                  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:13929:18: note: suggested alternative: 'expressionbuffer'
  if(undo_index < expression_undo_buffer.size()) {
                  ^~~~~~~~~~~~~~~~~~~~~~
                  expressionbuffer
callbacks.cc:13930:3: error: 'string' was not declared in this scope
   string str_old = get_expression_text();
   ^~~~~~
callbacks.cc:13930:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:13931:10: error: expected ';' before 'str_new'
   string str_new = expression_undo_buffer[undo_index];
          ^~~~~~~
callbacks.cc:13932:6: error: 'str_old' was not declared in this scope
   if(str_old == str_new) return;
      ^~~~~~~
callbacks.cc:13932:6: note: suggested alternative: 'strtold'
   if(str_old == str_new) return;
      ^~~~~~~
      strtold
callbacks.cc:13932:17: error: 'str_new' was not declared in this scope
   if(str_old == str_new) return;
                 ^~~~~~~
callbacks.cc:13932:17: note: suggested alternative: 'stresep'
   if(str_old == str_new) return;
                 ^~~~~~~
                 stresep
callbacks.cc:13936:6: error: 'str_old' was not declared in this scope
   if(str_old.length() > str_new.length()) {
      ^~~~~~~
callbacks.cc:13936:6: note: suggested alternative: 'strtold'
   if(str_old.length() > str_new.length()) {
      ^~~~~~~
      strtold
callbacks.cc:13936:25: error: 'str_new' was not declared in this scope
   if(str_old.length() > str_new.length()) {
                         ^~~~~~~
callbacks.cc:13936:25: note: suggested alternative: 'stresep'
   if(str_old.length() > str_new.length()) {
                         ^~~~~~~
                         stresep
callbacks.cc:13937:38: error: 'string' is not a class, namespace, or enumeration
    if((i = str_old.find(str_new)) != string::npos) {
                                      ^~~~~~
callbacks.cc:13954:13: error: expected ';' before 'str_test'
      string str_test = str_old.substr(0, i);
             ^~~~~~~~
callbacks.cc:13955:6: error: 'str_test' was not declared in this scope
      str_test += str_old.substr(i + str_old.length() - str_new.length());
      ^~~~~~~~
callbacks.cc:13955:6: note: suggested alternative: 'strtouq'
      str_test += str_old.substr(i + str_old.length() - str_new.length());
      ^~~~~~~~
      strtouq
callbacks.cc:13967:49: error: 'string' is not a class, namespace, or enumeration
      while((i2 = str_test.find(')', i2 + 1)) != string::npos) {
                                                 ^~~~~~
callbacks.cc:13968:14: error: expected ';' before 'str_test2'
       string str_test2 = str_test;
              ^~~~~~~~~
callbacks.cc:13969:7: error: 'str_test2' was not declared in this scope
       str_test2.erase(str_test2.begin() + i2);
       ^~~~~~~~~
callbacks.cc:13969:7: note: suggested alternative: 'strnstr'
       str_test2.erase(str_test2.begin() + i2);
       ^~~~~~~~~
       strnstr
callbacks.cc:13986:38: error: 'string' is not a class, namespace, or enumeration
    if((i = str_new.find(str_old)) != string::npos) {
                                      ^~~~~~
callbacks.cc:14001:13: error: expected ';' before 'str_test'
      string str_test = str_new.substr(0, i);
             ^~~~~~~~
callbacks.cc:14002:6: error: 'str_test' was not declared in this scope
      str_test += str_new.substr(i + str_new.length() - str_old.length());
      ^~~~~~~~
callbacks.cc:14002:6: note: suggested alternative: 'strtouq'
      str_test += str_new.substr(i + str_new.length() - str_old.length());
      ^~~~~~~~
      strtouq
callbacks.cc:14013:49: error: 'string' is not a class, namespace, or enumeration
      while((i2 = str_test.find(')', i2 + 1)) != string::npos) {
                                                 ^~~~~~
callbacks.cc:14014:14: error: expected ';' before 'str_test2'
       string str_test2 = str_test;
              ^~~~~~~~~
callbacks.cc:14015:7: error: 'str_test2' was not declared in this scope
       str_test2.erase(str_test2.begin() + i2);
       ^~~~~~~~~
callbacks.cc:14015:7: note: suggested alternative: 'strnstr'
       str_test2.erase(str_test2.begin() + i2);
       ^~~~~~~~~
       strnstr
callbacks.cc:14030:46: error: 'str_new' was not declared in this scope
   gtk_text_buffer_set_text(expressionbuffer, str_new.c_str(), -1);
                                              ^~~~~~~
callbacks.cc:14030:46: note: suggested alternative: 'stresep'
   gtk_text_buffer_set_text(expressionbuffer, str_new.c_str(), -1);
                                              ^~~~~~~
                                              stresep
callbacks.cc: In function 'void expression_redo()':
callbacks.cc:14041:19: error: 'expression_undo_buffer' was not declared in this scope
  if(undo_index >= expression_undo_buffer.size() - 1) return;
                   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14041:19: note: suggested alternative: 'expressionbuffer'
  if(undo_index >= expression_undo_buffer.size() - 1) return;
                   ^~~~~~~~~~~~~~~~~~~~~~
                   expressionbuffer
callbacks.cc: In function 'void on_expressiontext_populate_popup(GtkTextView*, GtkMenu*, gpointer)':
callbacks.cc:14081:19: error: 'expression_undo_buffer' was not declared in this scope
  if(undo_index >= expression_undo_buffer.size() - 1) gtk_widget_set_sensitive(item, FALSE);
                   ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14081:19: note: suggested alternative: 'expressionbuffer'
  if(undo_index >= expression_undo_buffer.size() - 1) gtk_widget_set_sensitive(item, FALSE);
                   ^~~~~~~~~~~~~~~~~~~~~~
                   expressionbuffer
callbacks.cc:14131:2: error: 'popup_expression_mode_items' was not declared in this scope
  popup_expression_mode_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14131:2: note: suggested alternative: 'on_expression_move_cursor'
  popup_expression_mode_items.clear();
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  on_expression_move_cursor
callbacks.cc:14132:24: error: 'modes' was not declared in this scope
  for(size_t i = 0; i < modes.size(); i++) {
                        ^~~~~
callbacks.cc:14132:24: note: suggested alternative: 'mode_t'
  for(size_t i = 0; i < modes.size(); i++) {
                        ^~~~~
                        mode_t
callbacks.cc: In function 'void on_popup_menu_mode_update_activate(GtkMenuItem*, gpointer)':
callbacks.cc:14373:33: error: 'save_mode_as' cannot be used as a function
  save_mode_as((const char*) data);
                                 ^
callbacks.cc: In function 'void on_popup_menu_mode_delete_activate(GtkMenuItem*, gpointer)':
callbacks.cc:14387:16: error: 'modes' was not declared in this scope
  for(; index < modes.size(); index++) {
                ^~~~~
callbacks.cc:14387:16: note: suggested alternative: 'mode_t'
  for(; index < modes.size(); index++) {
                ^~~~~
                mode_t
callbacks.cc:14390:14: error: 'modes' was not declared in this scope
  if(index >= modes.size()) return;
              ^~~~~
callbacks.cc:14390:14: note: suggested alternative: 'mode_t'
  if(index >= modes.size()) return;
              ^~~~~
              mode_t
callbacks.cc:14391:21: error: 'mode_items' was not declared in this scope
  gtk_widget_destroy(mode_items[index]);
                     ^~~~~~~~~~
callbacks.cc:14391:21: note: suggested alternative: 'set_mode_items'
  gtk_widget_destroy(mode_items[index]);
                     ^~~~~~~~~~
                     set_mode_items
callbacks.cc:14392:21: error: 'popup_result_mode_items' was not declared in this scope
  gtk_widget_destroy(popup_result_mode_items[index]);
                     ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14392:21: note: suggested alternative: 'set_mode_items'
  gtk_widget_destroy(popup_result_mode_items[index]);
                     ^~~~~~~~~~~~~~~~~~~~~~~
                     set_mode_items
callbacks.cc:14393:2: error: 'modes' was not declared in this scope
  modes.erase(modes.begin() + index);
  ^~~~~
callbacks.cc:14393:2: note: suggested alternative: 'mode_t'
  modes.erase(modes.begin() + index);
  ^~~~~
  mode_t
callbacks.cc: In function 'gboolean on_menu_item_meta_mode_popup_menu(GtkWidget*, gpointer)':
callbacks.cc:14413:16: error: 'modes' was not declared in this scope
  for(; index < modes.size(); index++) {
                ^~~~~
callbacks.cc:14413:16: note: suggested alternative: 'mode_t'
  for(; index < modes.size(); index++) {
                ^~~~~
                mode_t
callbacks.cc:14416:14: error: 'modes' was not declared in this scope
  if(index >= modes.size()) return TRUE;
              ^~~~~
callbacks.cc:14416:14: note: suggested alternative: 'mode_t'
  if(index >= modes.size()) return TRUE;
              ^~~~~
              mode_t
callbacks.cc:14424:24: error: 'mode_items' was not declared in this scope
  for(size_t i = 0; i < mode_items.size(); i++) {
                        ^~~~~~~~~~
callbacks.cc:14424:24: note: suggested alternative: 'set_mode_items'
  for(size_t i = 0; i < mode_items.size(); i++) {
                        ^~~~~~~~~~
                        set_mode_items
callbacks.cc:14428:25: error: 'popup_result_mode_items' was not declared in this scope
   for(size_t i = 0; i < popup_result_mode_items.size(); i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14428:25: note: suggested alternative: 'set_mode_items'
   for(size_t i = 0; i < popup_result_mode_items.size(); i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~~
                         set_mode_items
callbacks.cc:14433:25: error: 'popup_expression_mode_items' was not declared in this scope
   for(size_t i = 0; i < popup_expression_mode_items.size(); i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14433:25: note: suggested alternative: 'on_expression_move_cursor'
   for(size_t i = 0; i < popup_expression_mode_items.size(); i++) {
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                         on_expression_move_cursor
callbacks.cc: In function 'void on_menu_item_meta_mode_activate(GtkMenuItem*, gpointer)':
callbacks.cc:14456:16: error: invalid conversion from 'const char*' to 'size_t {aka unsigned int}' [-fpermissive]
  load_mode(name);
                ^
callbacks.cc:13891:6: note:   initializing argument 1 of 'void load_mode(size_t)'
 void load_mode(size_t index) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_menu_item_meta_mode_save_activate(GtkMenuItem*, gpointer)':
callbacks.cc:14471:24: error: 'modes' was not declared in this scope
  for(size_t i = 2; i < modes.size(); i++) {
                        ^~~~~
callbacks.cc:14471:24: note: suggested alternative: 'mode_t'
  for(size_t i = 2; i < modes.size(); i++) {
                        ^~~~~
                        mode_t
callbacks.cc:14480:3: error: 'string' was not declared in this scope
   string name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(entry));
   ^~~~~~
callbacks.cc:14480:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:14481:21: error: 'name' was not declared in this scope
   remove_blank_ends(name);
                     ^~~~
callbacks.cc:14481:21: note: suggested alternative: 'rename'
   remove_blank_ends(name);
                     ^~~~
                     rename
callbacks.cc:14486:14: error: 'modes' was not declared in this scope
   if(name == modes[0].name) {
              ^~~~~
callbacks.cc:14486:14: note: suggested alternative: 'mode_t'
   if(name == modes[0].name) {
              ^~~~~
              mode_t
callbacks.cc:14490:46: error: 'save_mode_as' cannot be used as a function
   size_t index = save_mode_as(name, &new_mode);
                                              ^
callbacks.cc:14492:51: error: 'modes' was not declared in this scope
    GtkWidget *item = gtk_menu_item_new_with_label(modes[index].name.c_str());
                                                   ^~~~~
callbacks.cc:14492:51: note: suggested alternative: 'mode_t'
    GtkWidget *item = gtk_menu_item_new_with_label(modes[index].name.c_str());
                                                   ^~~~~
                                                   mode_t
callbacks.cc:14498:4: error: 'mode_items' was not declared in this scope
    mode_items.push_back(item);
    ^~~~~~~~~~
callbacks.cc:14498:4: note: suggested alternative: 'set_mode_items'
    mode_items.push_back(item);
    ^~~~~~~~~~
    set_mode_items
callbacks.cc:14505:4: error: 'popup_result_mode_items' was not declared in this scope
    popup_result_mode_items.push_back(item);
    ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14505:4: note: suggested alternative: 'set_mode_items'
    popup_result_mode_items.push_back(item);
    ^~~~~~~~~~~~~~~~~~~~~~~
    set_mode_items
callbacks.cc: In function 'void on_menu_item_meta_mode_delete_activate(GtkMenuItem*, gpointer)':
callbacks.cc:14525:24: error: 'modes' was not declared in this scope
  for(size_t i = 2; i < modes.size(); i++) {
                        ^~~~~
callbacks.cc:14525:24: note: suggested alternative: 'mode_t'
  for(size_t i = 2; i < modes.size(); i++) {
                        ^~~~~
                        mode_t
callbacks.cc:14534:22: error: 'mode_items' was not declared in this scope
   gtk_widget_destroy(mode_items[index]);
                      ^~~~~~~~~~
callbacks.cc:14534:22: note: suggested alternative: 'set_mode_items'
   gtk_widget_destroy(mode_items[index]);
                      ^~~~~~~~~~
                      set_mode_items
callbacks.cc:14535:22: error: 'popup_result_mode_items' was not declared in this scope
   gtk_widget_destroy(popup_result_mode_items[index]);
                      ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14535:22: note: suggested alternative: 'set_mode_items'
   gtk_widget_destroy(popup_result_mode_items[index]);
                      ^~~~~~~~~~~~~~~~~~~~~~~
                      set_mode_items
callbacks.cc:14536:3: error: 'modes' was not declared in this scope
   modes.erase(modes.begin() + index);
   ^~~~~
callbacks.cc:14536:3: note: suggested alternative: 'mode_t'
   modes.erase(modes.begin() + index);
   ^~~~~
   mode_t
callbacks.cc: In function 'void load_preferences()':
callbacks.cc:14552:2: error: 'default_plot_min' was not declared in this scope
  default_plot_min = "0";
  ^~~~~~~~~~~~~~~~
callbacks.cc:14552:2: note: suggested alternative: 'default_plot_type'
  default_plot_min = "0";
  ^~~~~~~~~~~~~~~~
  default_plot_type
callbacks.cc:14553:2: error: 'default_plot_max' was not declared in this scope
  default_plot_max = "10";
  ^~~~~~~~~~~~~~~~
callbacks.cc:14553:2: note: suggested alternative: 'default_plot_type'
  default_plot_max = "10";
  ^~~~~~~~~~~~~~~~
  default_plot_type
callbacks.cc:14554:2: error: 'default_plot_step' was not declared in this scope
  default_plot_step = "1";
  ^~~~~~~~~~~~~~~~~
callbacks.cc:14554:2: note: suggested alternative: 'default_plot_style'
  default_plot_step = "1";
  ^~~~~~~~~~~~~~~~~
  default_plot_style
callbacks.cc:14561:2: error: 'default_plot_variable' was not declared in this scope
  default_plot_variable = "x";
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14561:2: note: suggested alternative: 'default_plot_style'
  default_plot_variable = "x";
  ^~~~~~~~~~~~~~~~~~~~~
  default_plot_style
callbacks.cc:14661:26: error: 'save_mode_as' cannot be used as a function
  save_mode_as(_("Preset"));
                          ^
callbacks.cc:14662:27: error: 'save_mode_as' cannot be used as a function
  save_mode_as(_("Default"));
                           ^
callbacks.cc:14691:2: error: 'custom_result_font' was not declared in this scope
  custom_result_font = "";
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:14691:2: note: suggested alternative: 'use_custom_result_font'
  custom_result_font = "";
  ^~~~~~~~~~~~~~~~~~
  use_custom_result_font
callbacks.cc:14692:2: error: 'custom_expression_font' was not declared in this scope
  custom_expression_font = "";
  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:14692:2: note: suggested alternative: 'use_custom_expression_font'
  custom_expression_font = "";
  ^~~~~~~~~~~~~~~~~~~~~~
  use_custom_expression_font
callbacks.cc:14693:2: error: 'custom_status_font' was not declared in this scope
  custom_status_font = "";
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:14693:2: note: suggested alternative: 'use_custom_status_font'
  custom_status_font = "";
  ^~~~~~~~~~~~~~~~~~
  use_custom_status_font
callbacks.cc:14694:2: error: 'status_error_color' was not declared in this scope
  status_error_color = "#FF0000";
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:14694:2: note: suggested alternative: 'status_error_color_set'
  status_error_color = "#FF0000";
  ^~~~~~~~~~~~~~~~~~
  status_error_color_set
callbacks.cc:14695:2: error: 'status_warning_color' was not declared in this scope
  status_warning_color = "#0000FF";
  ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:14695:2: note: suggested alternative: 'status_warning_color_set'
  status_warning_color = "#0000FF";
  ^~~~~~~~~~~~~~~~~~~~
  status_warning_color_set
callbacks.cc:14715:2: error: 'expression_history' was not declared in this scope
  expression_history.clear();
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:14715:2: note: suggested alternative: 'expression_redo'
  expression_history.clear();
  ^~~~~~~~~~~~~~~~~~
  expression_redo
callbacks.cc:14754:3: error: 'string' was not declared in this scope
   string stmp, svalue, svar;
   ^~~~~~
callbacks.cc:14754:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:14759:4: error: 'stmp' was not declared in this scope
    stmp = line;
    ^~~~
callbacks.cc:14759:4: note: suggested alternative: 's2p'
    stmp = line;
    ^~~~
    s2p
callbacks.cc:14761:40: error: 'string' is not a class, namespace, or enumeration
    if((i = stmp.find_first_of("=")) != string::npos) {
                                        ^~~~~~
callbacks.cc:14762:5: error: 'svar' was not declared in this scope
     svar = stmp.substr(0, i);
     ^~~~
callbacks.cc:14762:5: note: suggested alternative: 'stat'
     svar = stmp.substr(0, i);
     ^~~~
     stat
callbacks.cc:14764:5: error: 'svalue' was not declared in this scope
     svalue = stmp.substr(i + 1);
     ^~~~~~
callbacks.cc:14764:5: note: suggested alternative: 'GValue'
     svalue = stmp.substr(i + 1);
     ^~~~~~
     GValue
callbacks.cc:14871:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.min_decimals = v;
           ^~~~~
callbacks.cc:14871:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.min_decimals = v;
           ^~~~~
           mode_t
callbacks.cc:14874:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_min_decimals = v;
           ^~~~~
callbacks.cc:14874:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_min_decimals = v;
           ^~~~~
           mode_t
callbacks.cc:14877:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.max_decimals = v;
           ^~~~~
callbacks.cc:14877:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.max_decimals = v;
           ^~~~~
           mode_t
callbacks.cc:14880:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_max_decimals = v;
           ^~~~~
callbacks.cc:14880:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_max_decimals = v;
           ^~~~~
           mode_t
callbacks.cc:14883:11: error: 'modes' was not declared in this scope
      else modes[mode_index].precision = v;
           ^~~~~
callbacks.cc:14883:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].precision = v;
           ^~~~~
           mode_t
callbacks.cc:14886:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.min_exp = v;
           ^~~~~
callbacks.cc:14886:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.min_exp = v;
           ^~~~~
           mode_t
callbacks.cc:14890:12: error: 'modes' was not declared in this scope
       else modes[mode_index].interval = v;
            ^~~~~
callbacks.cc:14890:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].interval = v;
            ^~~~~
            mode_t
callbacks.cc:14892:7: error: 'modes' was not declared in this scope
       modes[mode_index].interval = true;
       ^~~~~
callbacks.cc:14892:7: note: suggested alternative: 'mode_t'
       modes[mode_index].interval = true;
       ^~~~~
       mode_t
callbacks.cc:14897:13: error: 'modes' was not declared in this scope
       else {modes[mode_index].po.interval_display = INTERVAL_DISPLAY_SIGNIFICANT_DIGITS; modes[mode_index].adaptive_interval_display = true;}
             ^~~~~
callbacks.cc:14897:13: note: suggested alternative: 'mode_t'
       else {modes[mode_index].po.interval_display = INTERVAL_DISPLAY_SIGNIFICANT_DIGITS; modes[mode_index].adaptive_interval_display = true;}
             ^~~~~
             mode_t
callbacks.cc:14902:14: error: 'modes' was not declared in this scope
        else {modes[mode_index].po.interval_display = (IntervalDisplay) v; modes[mode_index].adaptive_interval_display = false;}
              ^~~~~
callbacks.cc:14902:14: note: suggested alternative: 'mode_t'
        else {modes[mode_index].po.interval_display = (IntervalDisplay) v; modes[mode_index].adaptive_interval_display = false;}
              ^~~~~
              mode_t
callbacks.cc:14907:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.negative_exponents = v;
           ^~~~~
callbacks.cc:14907:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.negative_exponents = v;
           ^~~~~
           mode_t
callbacks.cc:14910:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.sort_options.minus_last = v;
           ^~~~~
callbacks.cc:14910:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.sort_options.minus_last = v;
           ^~~~~
           mode_t
callbacks.cc:14913:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.place_units_separately = v;
           ^~~~~
callbacks.cc:14913:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.place_units_separately = v;
           ^~~~~
           mode_t
callbacks.cc:14922:9: error: 'modes' was not declared in this scope
         modes[mode_index].po.min_exp = EXP_PRECISION;
         ^~~~~
callbacks.cc:14922:9: note: suggested alternative: 'mode_t'
         modes[mode_index].po.min_exp = EXP_PRECISION;
         ^~~~~
         mode_t
callbacks.cc:14934:9: error: 'modes' was not declared in this scope
         modes[mode_index].po.min_exp = EXP_SCIENTIFIC;
         ^~~~~
callbacks.cc:14934:9: note: suggested alternative: 'mode_t'
         modes[mode_index].po.min_exp = EXP_SCIENTIFIC;
         ^~~~~
         mode_t
callbacks.cc:14946:9: error: 'modes' was not declared in this scope
         modes[mode_index].po.min_exp = EXP_PURE;
         ^~~~~
callbacks.cc:14946:9: note: suggested alternative: 'mode_t'
         modes[mode_index].po.min_exp = EXP_PURE;
         ^~~~~
         mode_t
callbacks.cc:14958:9: error: 'modes' was not declared in this scope
         modes[mode_index].po.min_exp = EXP_NONE;
         ^~~~~
callbacks.cc:14958:9: note: suggested alternative: 'mode_t'
         modes[mode_index].po.min_exp = EXP_NONE;
         ^~~~~
         mode_t
callbacks.cc:14967:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_unit_prefixes = v;
           ^~~~~
callbacks.cc:14967:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_unit_prefixes = v;
           ^~~~~
           mode_t
callbacks.cc:14970:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_prefixes_for_all_units = v;
           ^~~~~
callbacks.cc:14970:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_prefixes_for_all_units = v;
           ^~~~~
           mode_t
callbacks.cc:14973:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_prefixes_for_currencies = v;
           ^~~~~
callbacks.cc:14973:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_prefixes_for_currencies = v;
           ^~~~~
           mode_t
callbacks.cc:14978:13: error: 'modes' was not declared in this scope
        else modes[mode_index].po.number_fraction_format = FRACTION_DECIMAL;
             ^~~~~
callbacks.cc:14978:13: note: suggested alternative: 'mode_t'
        else modes[mode_index].po.number_fraction_format = FRACTION_DECIMAL;
             ^~~~~
             mode_t
callbacks.cc:14983:13: error: 'modes' was not declared in this scope
        else modes[mode_index].po.number_fraction_format = FRACTION_COMBINED;
             ^~~~~
callbacks.cc:14983:13: note: suggested alternative: 'mode_t'
        else modes[mode_index].po.number_fraction_format = FRACTION_COMBINED;
             ^~~~~
             mode_t
callbacks.cc:14988:13: error: 'modes' was not declared in this scope
        else modes[mode_index].po.number_fraction_format = FRACTION_FRACTIONAL;
             ^~~~~
callbacks.cc:14988:13: note: suggested alternative: 'mode_t'
        else modes[mode_index].po.number_fraction_format = FRACTION_FRACTIONAL;
             ^~~~~
             mode_t
callbacks.cc:14993:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.restrict_fraction_length = (modes[mode_index].po.number_fraction_format == FRACTION_FRACTIONAL);
           ^~~~~
callbacks.cc:14993:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.restrict_fraction_length = (modes[mode_index].po.number_fraction_format == FRACTION_FRACTIONAL);
           ^~~~~
           mode_t
callbacks.cc:14997:12: error: 'modes' was not declared in this scope
       else modes[mode_index].po.number_fraction_format = (NumberFractionFormat) v;
            ^~~~~
callbacks.cc:14997:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].po.number_fraction_format = (NumberFractionFormat) v;
            ^~~~~
            mode_t
callbacks.cc:15000:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.restrict_fraction_length = (modes[mode_index].po.number_fraction_format == FRACTION_FRACTIONAL);
           ^~~~~
callbacks.cc:15000:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.restrict_fraction_length = (modes[mode_index].po.number_fraction_format == FRACTION_FRACTIONAL);
           ^~~~~
           mode_t
callbacks.cc:15009:8: error: 'modes' was not declared in this scope
        modes[mode_index].eo.complex_number_form = COMPLEX_NUMBER_FORM_CIS;
        ^~~~~
callbacks.cc:15009:8: note: suggested alternative: 'mode_t'
        modes[mode_index].eo.complex_number_form = COMPLEX_NUMBER_FORM_CIS;
        ^~~~~
        mode_t
callbacks.cc:15017:8: error: 'modes' was not declared in this scope
        modes[mode_index].eo.complex_number_form = (ComplexNumberForm) v;
        ^~~~~
callbacks.cc:15017:8: note: suggested alternative: 'mode_t'
        modes[mode_index].eo.complex_number_form = (ComplexNumberForm) v;
        ^~~~~
        mode_t
callbacks.cc:15023:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.base = v;
           ^~~~~
callbacks.cc:15023:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.base = v;
           ^~~~~
           mode_t
callbacks.cc:15030:11: error: 'modes' was not declared in this scope
      else modes[mode_index].custom_output_base = m.number();
           ^~~~~
callbacks.cc:15030:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].custom_output_base = m.number();
           ^~~~~
           mode_t
callbacks.cc:15033:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.base = v;
           ^~~~~
callbacks.cc:15033:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.base = v;
           ^~~~~
           mode_t
callbacks.cc:15040:11: error: 'modes' was not declared in this scope
      else modes[mode_index].custom_input_base = m.number();
           ^~~~~
callbacks.cc:15040:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].custom_input_base = m.number();
           ^~~~~
           mode_t
callbacks.cc:15044:12: error: 'modes' was not declared in this scope
       else modes[mode_index].eo.parse_options.read_precision = (ReadPrecisionMode) v;
            ^~~~~
callbacks.cc:15044:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].eo.parse_options.read_precision = (ReadPrecisionMode) v;
            ^~~~~
            mode_t
callbacks.cc:15051:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.assume_denominators_nonzero = v;
           ^~~~~
callbacks.cc:15051:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.assume_denominators_nonzero = v;
           ^~~~~
           mode_t
callbacks.cc:15054:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.warn_about_denominators_assumed_nonzero = v;
           ^~~~~
callbacks.cc:15054:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.warn_about_denominators_assumed_nonzero = v;
           ^~~~~
           mode_t
callbacks.cc:15064:8: error: 'modes' was not declared in this scope
        modes[mode_index].eo.structuring = (StructuringMode) v;
        ^~~~~
callbacks.cc:15064:8: note: suggested alternative: 'mode_t'
        modes[mode_index].eo.structuring = (StructuringMode) v;
        ^~~~~
        mode_t
callbacks.cc:15074:12: error: 'modes' was not declared in this scope
       else modes[mode_index].eo.parse_options.angle_unit = (AngleUnit) v;
            ^~~~~
callbacks.cc:15074:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].eo.parse_options.angle_unit = (AngleUnit) v;
            ^~~~~
            mode_t
callbacks.cc:15078:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.functions_enabled = v;
           ^~~~~
callbacks.cc:15078:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.functions_enabled = v;
           ^~~~~
           mode_t
callbacks.cc:15081:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.variables_enabled = v;
           ^~~~~
callbacks.cc:15081:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.variables_enabled = v;
           ^~~~~
           mode_t
callbacks.cc:15084:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.calculate_variables = !v;
           ^~~~~
callbacks.cc:15084:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.calculate_variables = !v;
           ^~~~~
           mode_t
callbacks.cc:15087:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.calculate_variables = v;
           ^~~~~
callbacks.cc:15087:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.calculate_variables = v;
           ^~~~~
           mode_t
callbacks.cc:15090:11: error: 'modes' was not declared in this scope
      else modes[mode_index].variable_units_enabled = v;
           ^~~~~
callbacks.cc:15090:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].variable_units_enabled = v;
           ^~~~~
           mode_t
callbacks.cc:15093:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.calculate_functions = v;
           ^~~~~
callbacks.cc:15093:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.calculate_functions = v;
           ^~~~~
           mode_t
callbacks.cc:15096:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.sync_units = v;
           ^~~~~
callbacks.cc:15096:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.sync_units = v;
           ^~~~~
           mode_t
callbacks.cc:15099:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.unknowns_enabled = v;
           ^~~~~
callbacks.cc:15099:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.unknowns_enabled = v;
           ^~~~~
           mode_t
callbacks.cc:15102:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.units_enabled = v;
           ^~~~~
callbacks.cc:15102:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.units_enabled = v;
           ^~~~~
           mode_t
callbacks.cc:15105:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.allow_complex = v;
           ^~~~~
callbacks.cc:15105:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.allow_complex = v;
           ^~~~~
           mode_t
callbacks.cc:15108:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.allow_infinite = v;
           ^~~~~
callbacks.cc:15108:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.allow_infinite = v;
           ^~~~~
           mode_t
callbacks.cc:15111:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.abbreviate_names = v;
           ^~~~~
callbacks.cc:15111:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.abbreviate_names = v;
           ^~~~~
           mode_t
callbacks.cc:15114:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.abbreviate_names = v;
           ^~~~~
callbacks.cc:15114:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.abbreviate_names = v;
           ^~~~~
           mode_t
callbacks.cc:15117:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_all_prefixes = v;
           ^~~~~
callbacks.cc:15117:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_all_prefixes = v;
           ^~~~~
           mode_t
callbacks.cc:15120:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.use_denominator_prefix = v;
           ^~~~~
callbacks.cc:15120:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.use_denominator_prefix = v;
           ^~~~~
           mode_t
callbacks.cc:15127:12: error: 'modes' was not declared in this scope
       else modes[mode_index].eo.auto_post_conversion = (AutoPostConversion) v;
            ^~~~~
callbacks.cc:15127:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].eo.auto_post_conversion = (AutoPostConversion) v;
            ^~~~~
            mode_t
callbacks.cc:15132:12: error: 'modes' was not declared in this scope
       else modes[mode_index].eo.mixed_units_conversion = (MixedUnitsConversion) v;
            ^~~~~
callbacks.cc:15132:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].eo.mixed_units_conversion = (MixedUnitsConversion) v;
            ^~~~~
            mode_t
callbacks.cc:15140:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.indicate_infinite_series = v;
           ^~~~~
callbacks.cc:15140:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.indicate_infinite_series = v;
           ^~~~~
           mode_t
callbacks.cc:15144:12: error: 'modes' was not declared in this scope
       else modes[mode_index].po.show_ending_zeroes = v;
            ^~~~~
callbacks.cc:15144:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].po.show_ending_zeroes = v;
            ^~~~~
            mode_t
callbacks.cc:15152:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.round_halfway_to_even = v;
           ^~~~~
callbacks.cc:15152:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.round_halfway_to_even = v;
           ^~~~~
           mode_t
callbacks.cc:15157:7: error: 'modes' was not declared in this scope
       modes[mode_index].eo.approximation = APPROXIMATION_EXACT;
       ^~~~~
callbacks.cc:15157:7: note: suggested alternative: 'mode_t'
       modes[mode_index].eo.approximation = APPROXIMATION_EXACT;
       ^~~~~
       mode_t
callbacks.cc:15165:8: error: 'modes' was not declared in this scope
        modes[mode_index].eo.approximation = (ApproximationMode) v;
        ^~~~~
callbacks.cc:15165:8: note: suggested alternative: 'mode_t'
        modes[mode_index].eo.approximation = (ApproximationMode) v;
        ^~~~~
        mode_t
callbacks.cc:15171:12: error: 'modes' was not declared in this scope
       else modes[mode_index].eo.interval_calculation = (IntervalCalculation) v;
            ^~~~~
callbacks.cc:15171:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].eo.interval_calculation = (IntervalCalculation) v;
            ^~~~~
            mode_t
callbacks.cc:15175:11: error: 'modes' was not declared in this scope
      else modes[mode_index].autocalc = v;
           ^~~~~
callbacks.cc:15175:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].autocalc = v;
           ^~~~~
           mode_t
callbacks.cc:15178:11: error: 'modes' was not declared in this scope
      else modes[mode_index].rpn_mode = v;
           ^~~~~
callbacks.cc:15178:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].rpn_mode = v;
           ^~~~~
           mode_t
callbacks.cc:15183:11: error: 'modes' was not declared in this scope
      else modes[mode_index].eo.parse_options.rpn = v;
           ^~~~~
callbacks.cc:15183:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].eo.parse_options.rpn = v;
           ^~~~~
           mode_t
callbacks.cc:15189:7: error: 'modes' was not declared in this scope
       modes[mode_index].eo.parse_options.limit_implicit_multiplication = v;
       ^~~~~
callbacks.cc:15189:7: note: suggested alternative: 'mode_t'
       modes[mode_index].eo.parse_options.limit_implicit_multiplication = v;
       ^~~~~
       mode_t
callbacks.cc:15197:8: error: 'modes' was not declared in this scope
        modes[mode_index].eo.parse_options.parsing_mode = (ParsingMode) v;
        ^~~~~
callbacks.cc:15197:8: note: suggested alternative: 'mode_t'
        modes[mode_index].eo.parse_options.parsing_mode = (ParsingMode) v;
        ^~~~~
        mode_t
callbacks.cc:15205:12: error: 'modes' was not declared in this scope
       else modes[mode_index].at = (AssumptionType) v;
            ^~~~~
callbacks.cc:15205:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].at = (AssumptionType) v;
            ^~~~~
            mode_t
callbacks.cc:15213:12: error: 'modes' was not declared in this scope
       else modes[mode_index].as = (AssumptionSign) v;
            ^~~~~
callbacks.cc:15213:12: note: suggested alternative: 'mode_t'
       else modes[mode_index].as = (AssumptionSign) v;
            ^~~~~
            mode_t
callbacks.cc:15217:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.spacious = v;
           ^~~~~
callbacks.cc:15217:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.spacious = v;
           ^~~~~
           mode_t
callbacks.cc:15220:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.excessive_parenthesis = v;
           ^~~~~
callbacks.cc:15220:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.excessive_parenthesis = v;
           ^~~~~
           mode_t
callbacks.cc:15223:11: error: 'modes' was not declared in this scope
      else modes[mode_index].po.short_multiplication = v;
           ^~~~~
callbacks.cc:15223:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].po.short_multiplication = v;
           ^~~~~
           mode_t
callbacks.cc:15226:11: error: 'modes' was not declared in this scope
      else modes[mode_index].keypad = v;
           ^~~~~
callbacks.cc:15226:11: note: suggested alternative: 'mode_t'
      else modes[mode_index].keypad = v;
           ^~~~~
           mode_t
callbacks.cc:15306:17: error: 'string' is not a class, namespace, or enumeration
       if(v_i == string::npos) {
                 ^~~~~~
callbacks.cc:15310:9: error: 'recent_functions_pre' was not declared in this scope
         recent_functions_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:15310:9: note: suggested alternative: 'edit_function_simple'
         recent_functions_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
         edit_function_simple
callbacks.cc:15318:9: error: 'recent_functions_pre' was not declared in this scope
         recent_functions_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:15318:9: note: suggested alternative: 'edit_function_simple'
         recent_functions_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
         edit_function_simple
callbacks.cc:15326:17: error: 'string' is not a class, namespace, or enumeration
       if(v_i == string::npos) {
                 ^~~~~~
callbacks.cc:15330:9: error: 'recent_variables_pre' was not declared in this scope
         recent_variables_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:15330:9: note: suggested alternative: 'update_variables_tree'
         recent_variables_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
         update_variables_tree
callbacks.cc:15338:9: error: 'recent_variables_pre' was not declared in this scope
         recent_variables_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:15338:9: note: suggested alternative: 'update_variables_tree'
         recent_variables_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~~~~~
         update_variables_tree
callbacks.cc:15346:17: error: 'string' is not a class, namespace, or enumeration
       if(v_i == string::npos) {
                 ^~~~~~
callbacks.cc:15350:9: error: 'recent_units_pre' was not declared in this scope
         recent_units_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~
callbacks.cc:15350:9: note: suggested alternative: 'update_units_tree'
         recent_units_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~
         update_units_tree
callbacks.cc:15358:9: error: 'recent_units_pre' was not declared in this scope
         recent_units_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~
callbacks.cc:15358:9: note: suggested alternative: 'update_units_tree'
         recent_units_pre.push_back(svar);
         ^~~~~~~~~~~~~~~~
         update_units_tree
callbacks.cc:15363:6: error: 'latest_button_unit_pre' was not declared in this scope
      latest_button_unit_pre = svalue;
      ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:15363:6: note: suggested alternative: 'latest_button_unit'
      latest_button_unit_pre = svalue;
      ^~~~~~~~~~~~~~~~~~~~~~
      latest_button_unit
callbacks.cc:15365:6: error: 'latest_button_currency_pre' was not declared in this scope
      latest_button_currency_pre = svalue;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:15365:6: note: suggested alternative: 'latest_button_currency'
      latest_button_currency_pre = svalue;
      ^~~~~~~~~~~~~~~~~~~~~~~~~~
      latest_button_currency
callbacks.cc:15401:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15401:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15402:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_OLD);
      ^~~~~~~~~~~~~~
callbacks.cc:15402:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_OLD);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15403:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15403:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15404:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15404:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15406:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15406:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15407:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_OLD);
      ^~~~~~~~~~~~~~
callbacks.cc:15407:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_OLD);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15408:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15408:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15409:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15409:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15411:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15411:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15412:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
callbacks.cc:15412:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15413:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15413:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15414:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15414:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15416:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15416:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15417:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
callbacks.cc:15417:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_EXPRESSION);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15418:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15418:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15419:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15419:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15421:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15421:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15422:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_TRANSFORMATION);
      ^~~~~~~~~~~~~~
callbacks.cc:15422:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_TRANSFORMATION);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15423:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15423:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15424:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15424:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15426:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15426:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15427:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_RESULT);
      ^~~~~~~~~~~~~~
callbacks.cc:15427:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_RESULT);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15428:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15428:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15429:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15429:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15431:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15431:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15432:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_RESULT_APPROXIMATE);
      ^~~~~~~~~~~~~~
callbacks.cc:15432:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_RESULT_APPROXIMATE);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15433:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15433:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15434:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15434:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15436:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15436:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15437:29: error: 'inhistory_type' was not declared in this scope
      if(old_history_format) inhistory_type.push_front(QALCULATE_HISTORY_PARSE_WITHEQUALS);
                             ^~~~~~~~~~~~~~
callbacks.cc:15437:29: note: suggested alternative: 'historystore'
      if(old_history_format) inhistory_type.push_front(QALCULATE_HISTORY_PARSE_WITHEQUALS);
                             ^~~~~~~~~~~~~~
                             historystore
callbacks.cc:15438:11: error: 'inhistory_type' was not declared in this scope
      else inhistory_type.push_front(QALCULATE_HISTORY_PARSE);
           ^~~~~~~~~~~~~~
callbacks.cc:15438:11: note: suggested alternative: 'historystore'
      else inhistory_type.push_front(QALCULATE_HISTORY_PARSE);
           ^~~~~~~~~~~~~~
           historystore
callbacks.cc:15439:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15439:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15440:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15440:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15442:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15442:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15443:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_PARSE_WITHEQUALS);
      ^~~~~~~~~~~~~~
callbacks.cc:15443:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_PARSE_WITHEQUALS);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15444:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15444:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15445:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15445:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15447:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15447:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15448:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_PARSE_APPROXIMATE);
      ^~~~~~~~~~~~~~
callbacks.cc:15448:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_PARSE_APPROXIMATE);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15449:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15449:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15450:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15450:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15452:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15452:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15453:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_REGISTER_MOVED);
      ^~~~~~~~~~~~~~
callbacks.cc:15453:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_REGISTER_MOVED);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15454:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15454:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15455:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15455:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15457:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15457:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15458:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
callbacks.cc:15458:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15459:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15459:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15460:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15460:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15462:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15462:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15463:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_REGISTER_MOVED);
      ^~~~~~~~~~~~~~
callbacks.cc:15463:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_REGISTER_MOVED);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15464:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15464:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15465:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15465:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15467:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15467:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15468:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
callbacks.cc:15468:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_RPN_OPERATION);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15469:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15469:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(true);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15470:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15470:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15472:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15472:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15473:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_WARNING);
      ^~~~~~~~~~~~~~
callbacks.cc:15473:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_WARNING);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15474:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15474:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15475:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15475:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15477:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15477:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15478:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_ERROR);
      ^~~~~~~~~~~~~~
callbacks.cc:15478:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_ERROR);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15479:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15479:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15480:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15480:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15482:6: error: 'inhistory' was not declared in this scope
      inhistory.push_front(svalue);
      ^~~~~~~~~
callbacks.cc:15482:6: note: suggested alternative: 'show_history'
      inhistory.push_front(svalue);
      ^~~~~~~~~
      show_history
callbacks.cc:15483:6: error: 'inhistory_type' was not declared in this scope
      inhistory_type.push_front(QALCULATE_HISTORY_BOOKMARK);
      ^~~~~~~~~~~~~~
callbacks.cc:15483:6: note: suggested alternative: 'historystore'
      inhistory_type.push_front(QALCULATE_HISTORY_BOOKMARK);
      ^~~~~~~~~~~~~~
      historystore
callbacks.cc:15484:6: error: 'inhistory_protected' was not declared in this scope
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15484:6: note: suggested alternative: '__dso_protected'
      inhistory_protected.push_front(false);
      ^~~~~~~~~~~~~~~~~~~
      __dso_protected
callbacks.cc:15485:6: error: 'inhistory_value' was not declared in this scope
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
callbacks.cc:15485:6: note: suggested alternative: 'history_column'
      inhistory_value.push_front(0);
      ^~~~~~~~~~~~~~~
      history_column
callbacks.cc:15487:10: error: 'vector' was not declared in this scope
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
          ^~~~~~
callbacks.cc:15487:10: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:15487:26: error: '::iterator' has not been declared
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                          ^~~~~~~~
callbacks.cc:15487:26: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:15487:67: error: 'it' was not declared in this scope
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                   ^~
callbacks.cc:15487:67: note: suggested alternative: 'i'
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                   ^~
                                                                   i
callbacks.cc:15487:73: error: 'history_bookmarks' was not declared in this scope
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                         ^~~~~~~~~~~~~~~~~
callbacks.cc:15487:73: note: suggested alternative: 'history_bookmark_color'
      for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                         ^~~~~~~~~~~~~~~~~
                                                                         history_bookmark_color
callbacks.cc:15488:36: error: 'string_is_less' cannot be used as a function
       if(string_is_less(svalue, *it)) {
                                    ^
callbacks.cc:15494:13: error: 'history_bookmarks' was not declared in this scope
      if(!b) history_bookmarks.push_back(svalue);
             ^~~~~~~~~~~~~~~~~
callbacks.cc:15494:13: note: suggested alternative: 'history_bookmark_color'
      if(!b) history_bookmarks.push_back(svalue);
             ^~~~~~~~~~~~~~~~~
             history_bookmark_color
callbacks.cc:15496:9: error: 'inhistory' was not declared in this scope
      if(inhistory.size() > 0) {
         ^~~~~~~~~
callbacks.cc:15496:9: note: suggested alternative: 'show_history'
      if(inhistory.size() > 0) {
         ^~~~~~~~~
         show_history
callbacks.cc:15507:65: error: 'save_mode_as' cannot be used as a function
      mode_index = save_mode_as(stmp.substr(5, stmp.length() - 5));
                                                                 ^
callbacks.cc:15523:28: error: 'inhistory' was not declared in this scope
  initial_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
callbacks.cc:15523:28: note: suggested alternative: 'show_history'
  initial_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
                            show_history
callbacks.cc: In function 'void save_preferences(bool)':
callbacks.cc:15538:2: error: 'string' was not declared in this scope
  string homedir = getLocalDir();
  ^~~~~~
callbacks.cc:15538:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:15539:19: error: 'homedir' was not declared in this scope
  recursiveMakeDir(homedir);
                   ^~~~~~~
callbacks.cc:15539:19: note: suggested alternative: 'mkdir'
  recursiveMakeDir(homedir);
                   ^~~~~~~
                   mkdir
callbacks.cc:15659:97: error: 'custom_result_font' was not declared in this scope
  if(use_custom_result_font || save_custom_result_font) fprintf(file, "custom_result_font=%s\n", custom_result_font.c_str());
                                                                                                 ^~~~~~~~~~~~~~~~~~
callbacks.cc:15659:97: note: suggested alternative: 'use_custom_result_font'
  if(use_custom_result_font || save_custom_result_font) fprintf(file, "custom_result_font=%s\n", custom_result_font.c_str());
                                                                                                 ^~~~~~~~~~~~~~~~~~
                                                                                                 use_custom_result_font
callbacks.cc:15660:109: error: 'custom_expression_font' was not declared in this scope
  if(use_custom_expression_font || save_custom_expression_font) fprintf(file, "custom_expression_font=%s\n", custom_expression_font.c_str());
                                                                                                             ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:15660:109: note: suggested alternative: 'use_custom_expression_font'
  if(use_custom_expression_font || save_custom_expression_font) fprintf(file, "custom_expression_font=%s\n", custom_expression_font.c_str());
                                                                                                             ^~~~~~~~~~~~~~~~~~~~~~
                                                                                                             use_custom_expression_font
callbacks.cc:15661:97: error: 'custom_status_font' was not declared in this scope
  if(use_custom_status_font || save_custom_status_font) fprintf(file, "custom_status_font=%s\n", custom_status_font.c_str());
                                                                                                 ^~~~~~~~~~~~~~~~~~
callbacks.cc:15661:97: note: suggested alternative: 'use_custom_status_font'
  if(use_custom_status_font || save_custom_status_font) fprintf(file, "custom_status_font=%s\n", custom_status_font.c_str());
                                                                                                 ^~~~~~~~~~~~~~~~~~
                                                                                                 use_custom_status_font
callbacks.cc:15662:70: error: 'status_error_color' was not declared in this scope
  if(status_error_color_set) fprintf(file, "status_error_color=%s\n", status_error_color.c_str());
                                                                      ^~~~~~~~~~~~~~~~~~
callbacks.cc:15662:70: note: suggested alternative: 'status_error_color_set'
  if(status_error_color_set) fprintf(file, "status_error_color=%s\n", status_error_color.c_str());
                                                                      ^~~~~~~~~~~~~~~~~~
                                                                      status_error_color_set
callbacks.cc:15663:74: error: 'status_warning_color' was not declared in this scope
  if(status_warning_color_set) fprintf(file, "status_warning_color=%s\n", status_warning_color.c_str());
                                                                          ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:15663:74: note: suggested alternative: 'status_warning_color_set'
  if(status_warning_color_set) fprintf(file, "status_warning_color=%s\n", status_warning_color.c_str());
                                                                          ^~~~~~~~~~~~~~~~~~~~
                                                                          status_warning_color_set
callbacks.cc:15667:24: error: 'expression_history' was not declared in this scope
  for(size_t i = 0; i < expression_history.size(); i++) {
                        ^~~~~~~~~~~~~~~~~~
callbacks.cc:15667:24: note: suggested alternative: 'expression_redo'
  for(size_t i = 0; i < expression_history.size(); i++) {
                        ^~~~~~~~~~~~~~~~~~
                        expression_redo
callbacks.cc:15674:14: error: 'inhistory' was not declared in this scope
  size_t hi = inhistory.size();
              ^~~~~~~~~
callbacks.cc:15674:14: note: suggested alternative: 'show_history'
  size_t hi = inhistory.size();
              ^~~~~~~~~
              show_history
callbacks.cc:15677:10: error: 'inhistory_type' was not declared in this scope
   switch(inhistory_type[hi]) {
          ^~~~~~~~~~~~~~
callbacks.cc:15677:10: note: suggested alternative: 'historystore'
   switch(inhistory_type[hi]) {
          ^~~~~~~~~~~~~~
          historystore
callbacks.cc:15682:9: error: 'inhistory_protected' was not declared in this scope
      if(inhistory_protected[hi]) fprintf(file, "history_expression*=");
         ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15682:9: note: suggested alternative: 'is_protected'
      if(inhistory_protected[hi]) fprintf(file, "history_expression*=");
         ^~~~~~~~~~~~~~~~~~~
         is_protected
callbacks.cc:15684:21: error: 'inhistory_protected' was not declared in this scope
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15684:21: note: suggested alternative: 'is_protected'
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
                     is_protected
callbacks.cc:15712:18: error: 'inhistory_protected' was not declared in this scope
      if(hi + 1 < inhistory_protected.size() && inhistory_protected[hi + 1]) {
                  ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15712:18: note: suggested alternative: 'is_protected'
      if(hi + 1 < inhistory_protected.size() && inhistory_protected[hi + 1]) {
                  ^~~~~~~~~~~~~~~~~~~
                  is_protected
callbacks.cc:15725:9: error: 'inhistory_protected' was not declared in this scope
      if(inhistory_protected[hi]) fprintf(file, "history_register_moved*=");
         ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15725:9: note: suggested alternative: 'is_protected'
      if(inhistory_protected[hi]) fprintf(file, "history_register_moved*=");
         ^~~~~~~~~~~~~~~~~~~
         is_protected
callbacks.cc:15727:21: error: 'inhistory_protected' was not declared in this scope
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15727:21: note: suggested alternative: 'is_protected'
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
                     is_protected
callbacks.cc:15735:9: error: 'inhistory_protected' was not declared in this scope
      if(inhistory_protected[hi]) fprintf(file, "history_rpn_operation*=");
         ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15735:9: note: suggested alternative: 'is_protected'
      if(inhistory_protected[hi]) fprintf(file, "history_rpn_operation*=");
         ^~~~~~~~~~~~~~~~~~~
         is_protected
callbacks.cc:15737:21: error: 'inhistory_protected' was not declared in this scope
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15737:21: note: suggested alternative: 'is_protected'
      is_protected = inhistory_protected[hi];
                     ^~~~~~~~~~~~~~~~~~~
                     is_protected
callbacks.cc:15769:12: error: 'string' is not a class, namespace, or enumeration
   if(i3 == string::npos) {
            ^~~~~~
callbacks.cc:15785:16: error: 'string' is not a class, namespace, or enumeration
    while(i2 != string::npos) {
                ^~~~~~
callbacks.cc:15796:6: error: 'inhistory_protected' was not declared in this scope
   if(inhistory_protected[hi] || (inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK && hi != 0 && inhistory_type[hi - 1] != QALCULATE_HISTORY_OLD)) {
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:15796:6: note: suggested alternative: 'is_protected'
   if(inhistory_protected[hi] || (inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK && hi != 0 && inhistory_type[hi - 1] != QALCULATE_HISTORY_OLD)) {
      ^~~~~~~~~~~~~~~~~~~
      is_protected
callbacks.cc:15796:34: error: 'inhistory_type' was not declared in this scope
   if(inhistory_protected[hi] || (inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK && hi != 0 && inhistory_type[hi - 1] != QALCULATE_HISTORY_OLD)) {
                                  ^~~~~~~~~~~~~~
callbacks.cc:15796:34: note: suggested alternative: 'historystore'
   if(inhistory_protected[hi] || (inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK && hi != 0 && inhistory_type[hi - 1] != QALCULATE_HISTORY_OLD)) {
                                  ^~~~~~~~~~~~~~
                                  historystore
callbacks.cc:15881:14: error: 'string' is not a class, namespace, or enumeration
     if(i3 == string::npos) {
              ^~~~~~
callbacks.cc:15887:18: error: 'string' is not a class, namespace, or enumeration
      while(i2 != string::npos) {
                  ^~~~~~
callbacks.cc:15904:21: error: 'recent_functions' was not declared in this scope
  for(int i = (int) (recent_functions.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
callbacks.cc:15904:21: note: suggested alternative: 'edit_function'
  for(int i = (int) (recent_functions.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
                     edit_function
callbacks.cc:15910:21: error: 'recent_variables' was not declared in this scope
  for(int i = (int) (recent_variables.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
callbacks.cc:15910:21: note: suggested alternative: 'delete_variable'
  for(int i = (int) (recent_variables.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~~~~~
                     delete_variable
callbacks.cc:15916:21: error: 'recent_units' was not declared in this scope
  for(int i = (int) (recent_units.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~
callbacks.cc:15916:21: note: suggested alternative: 'edit_unit'
  for(int i = (int) (recent_units.size()) - 1; i >= 0; i--) {
                     ^~~~~~~~~~~~
                     edit_unit
callbacks.cc:15924:24: error: 'modes' was not declared in this scope
  for(size_t i = 1; i < modes.size(); i++) {
                        ^~~~~
callbacks.cc:15924:24: note: suggested alternative: 'mode'
  for(size_t i = 1; i < modes.size(); i++) {
                        ^~~~~
                        mode
callbacks.cc:15993:33: error: 'default_plot_min' was not declared in this scope
  fprintf(file, "plot_min=%s\n", default_plot_min.c_str());
                                 ^~~~~~~~~~~~~~~~
callbacks.cc:15993:33: note: suggested alternative: 'default_plot_type'
  fprintf(file, "plot_min=%s\n", default_plot_min.c_str());
                                 ^~~~~~~~~~~~~~~~
                                 default_plot_type
callbacks.cc:15994:33: error: 'default_plot_max' was not declared in this scope
  fprintf(file, "plot_max=%s\n", default_plot_max.c_str());
                                 ^~~~~~~~~~~~~~~~
callbacks.cc:15994:33: note: suggested alternative: 'default_plot_type'
  fprintf(file, "plot_max=%s\n", default_plot_max.c_str());
                                 ^~~~~~~~~~~~~~~~
                                 default_plot_type
callbacks.cc:15995:34: error: 'default_plot_step' was not declared in this scope
  fprintf(file, "plot_step=%s\n", default_plot_step.c_str());
                                  ^~~~~~~~~~~~~~~~~
callbacks.cc:15995:34: note: suggested alternative: 'default_plot_style'
  fprintf(file, "plot_step=%s\n", default_plot_step.c_str());
                                  ^~~~~~~~~~~~~~~~~
                                  default_plot_style
callbacks.cc:15998:38: error: 'default_plot_variable' was not declared in this scope
  fprintf(file, "plot_variable=%s\n", default_plot_variable.c_str());
                                      ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:15998:38: note: suggested alternative: 'default_plot_style'
  fprintf(file, "plot_variable=%s\n", default_plot_variable.c_str());
                                      ^~~~~~~~~~~~~~~~~~~~~
                                      default_plot_style
callbacks.cc: In function 'void on_completion_match_selected(GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer)':
callbacks.cc:16408:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:16408:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:16484:3: error: 'str' was not declared in this scope
   str = ename->name;
   ^~~
callbacks.cc:16484:3: note: suggested alternative: 'iter'
   str = ename->name;
   ^~~
   iter
callbacks.cc:16488:10: error: 'string' does not name a type; did you mean 'GString'?
    const string *pname;
          ^~~~~~
          GString
callbacks.cc:16489:20: error: 'pname' was not declared in this scope
    if(name_i == 0) pname = &prefix->longName(false);
                    ^~~~~
callbacks.cc:16489:20: note: suggested alternative: 'ename'
    if(name_i == 0) pname = &prefix->longName(false);
                    ^~~~~
                    ename
callbacks.cc:16490:25: error: 'pname' was not declared in this scope
    else if(name_i == 1) pname = &prefix->shortName(false);
                         ^~~~~
callbacks.cc:16490:25: note: suggested alternative: 'ename'
    else if(name_i == 1) pname = &prefix->shortName(false);
                         ^~~~~
                         ename
callbacks.cc:16491:9: error: 'pname' was not declared in this scope
    else pname = &prefix->unicodeName(false);
         ^~~~~
callbacks.cc:16491:9: note: suggested alternative: 'ename'
    else pname = &prefix->unicodeName(false);
         ^~~~~
         ename
callbacks.cc:16492:8: error: 'pname' was not declared in this scope
    if(!pname->empty() && strlen(gstr2) <= pname->length()) {
        ^~~~~
callbacks.cc:16492:8: note: suggested alternative: 'ename'
    if(!pname->empty() && strlen(gstr2) <= pname->length()) {
        ^~~~~
        ename
callbacks.cc:16501:52: error: 'str' was not declared in this scope
      if(name_i == 1 && printops.use_unicode_signs) str = prefix->unicodeName();
                                                    ^~~
callbacks.cc:16501:52: note: suggested alternative: 'gstr2'
      if(name_i == 1 && printops.use_unicode_signs) str = prefix->unicodeName();
                                                    ^~~
                                                    gstr2
callbacks.cc:16502:11: error: 'str' was not declared in this scope
      else str = *pname;
           ^~~
callbacks.cc:16502:11: note: suggested alternative: 'gstr2'
      else str = *pname;
           ^~~
           gstr2
callbacks.cc:16507:6: error: 'str' was not declared in this scope
   if(str.empty()) str = prefix->longName();
      ^~~
callbacks.cc:16507:6: note: suggested alternative: 'gstr2'
   if(str.empty()) str = prefix->longName();
      ^~~
      gstr2
callbacks.cc:16512:3: error: 'str' was not declared in this scope
   str = gstr;
   ^~~
callbacks.cc:16512:3: note: suggested alternative: 'gstr'
   str = gstr;
   ^~~
   gstr
callbacks.cc:16514:11: error: 'string' is not a class, namespace, or enumeration
   if(i != string::npos) {str = str.substr(0, i - 1);}
           ^~~~~~
callbacks.cc:16527:52: error: 'str' was not declared in this scope
    gtk_text_buffer_insert(expressionbuffer, &ipos, str.c_str(), -1);
                                                    ^~~
callbacks.cc:16527:52: note: suggested alternative: 'gstr'
    gtk_text_buffer_insert(expressionbuffer, &ipos, str.c_str(), -1);
                                                    ^~~
                                                    gstr
callbacks.cc:16530:4: error: 'str' was not declared in this scope
    str += "()";
    ^~~
callbacks.cc:16530:4: note: suggested alternative: 'gstr'
    str += "()";
    ^~~
    gstr
callbacks.cc:16537:51: error: 'str' was not declared in this scope
   gtk_text_buffer_insert(expressionbuffer, &ipos, str.c_str(), -1);
                                                   ^~~
callbacks.cc:16537:51: note: suggested alternative: 'iter'
   gtk_text_buffer_insert(expressionbuffer, &ipos, str.c_str(), -1);
                                                   ^~~
                                                   iter
callbacks.cc: In function 'void on_colorbutton_status_error_color_color_set(GtkColorButton*, gpointer)':
callbacks.cc:16556:2: error: 'status_error_color' was not declared in this scope
  status_error_color = color_str;
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:16556:2: note: suggested alternative: 'status_error_color_set'
  status_error_color = color_str;
  ^~~~~~~~~~~~~~~~~~
  status_error_color_set
callbacks.cc: In function 'void on_colorbutton_status_warning_color_color_set(GtkColorButton*, gpointer)':
callbacks.cc:16565:2: error: 'status_warning_color' was not declared in this scope
  status_warning_color = color_str;
  ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:16565:2: note: suggested alternative: 'status_warning_color_set'
  status_warning_color = color_str;
  ^~~~~~~~~~~~~~~~~~~~
  status_warning_color_set
callbacks.cc: In function 'void on_preferences_checkbutton_imaginary_j_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16627:85: error: 'string' was not declared in this scope
   gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(main_builder, "label_i")), (string("<i>") + CALCULATOR->v_i->preferredDisplayName(true, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) gtk_builder_get_object(main_builder, "label_i")).name + "</i>").c_str());
                                                                                     ^~~~~~
callbacks.cc:16627:85: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_preferences_checkbutton_caret_as_xor_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16654:113: error: 'string' was not declared in this scope
  if(!caret_as_xor) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(main_builder, "button_xor")), (string(_("Bitwise Exclusive OR")) + " (Ctrl+^)").c_str());
                                                                                                                 ^~~~~~
callbacks.cc:16654:113: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_preferences_checkbutton_display_expression_status_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16721:3: error: 'set_status_text' was not declared in this scope
   set_status_text("");
   ^~~~~~~~~~~~~~~
callbacks.cc:16721:3: note: suggested alternative: 'update_status_text'
   set_status_text("");
   ^~~~~~~~~~~~~~~
   update_status_text
callbacks.cc: In function 'void on_preferences_checkbutton_custom_result_font_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16730:34: error: 'custom_result_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_result_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
callbacks.cc:16730:34: note: suggested alternative: 'use_custom_result_font'
   gchar *gstr = font_name_to_css(custom_result_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
                                  use_custom_result_font
callbacks.cc: In function 'void on_preferences_checkbutton_custom_expression_font_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16749:34: error: 'custom_expression_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_expression_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:16749:34: note: suggested alternative: 'use_custom_expression_font'
   gchar *gstr = font_name_to_css(custom_expression_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~~~~~
                                  use_custom_expression_font
callbacks.cc: In function 'void on_preferences_checkbutton_custom_status_font_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:16767:34: error: 'custom_status_font' was not declared in this scope
   gchar *gstr = font_name_to_css(custom_status_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
callbacks.cc:16767:34: note: suggested alternative: 'use_custom_status_font'
   gchar *gstr = font_name_to_css(custom_status_font.c_str());
                                  ^~~~~~~~~~~~~~~~~~
                                  use_custom_status_font
callbacks.cc: In function 'void on_preferences_button_result_font_font_set(GtkFontButton*, gpointer)':
callbacks.cc:16879:2: error: 'custom_result_font' was not declared in this scope
  custom_result_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:16879:2: note: suggested alternative: 'use_custom_result_font'
  custom_result_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~
  use_custom_result_font
callbacks.cc: In function 'void on_preferences_button_expression_font_font_set(GtkFontButton*, gpointer)':
callbacks.cc:16894:2: error: 'custom_expression_font' was not declared in this scope
  custom_expression_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:16894:2: note: suggested alternative: 'use_custom_expression_font'
  custom_expression_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~~~~~
  use_custom_expression_font
callbacks.cc: In function 'void on_preferences_button_status_font_font_set(GtkFontButton*, gpointer)':
callbacks.cc:16909:2: error: 'custom_status_font' was not declared in this scope
  custom_status_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~
callbacks.cc:16909:2: note: suggested alternative: 'use_custom_status_font'
  custom_status_font = gtk_font_chooser_get_font(GTK_FONT_CHOOSER(w));
  ^~~~~~~~~~~~~~~~~~
  use_custom_status_font
callbacks.cc: In function 'void update_resultview_popup()':
callbacks.cc:17202:3: error: 'vector' was not declared in this scope
   vector<Unit*> to_us;
   ^~~~~~
callbacks.cc:17202:3: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:17202:14: error: expected primary-expression before '*' token
   vector<Unit*> to_us;
              ^
callbacks.cc:17202:15: error: expected primary-expression before '>' token
   vector<Unit*> to_us;
               ^
callbacks.cc:17202:17: error: 'to_us' was not declared in this scope
   vector<Unit*> to_us;
                 ^~~~~
callbacks.cc:17202:17: note: suggested alternative: 'to_base'
   vector<Unit*> to_us;
                 ^~~~~
                 to_base
callbacks.cc:17214:63: error: 'string_is_less' cannot be used as a function
       if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                               ^
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:17224:5: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
     MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
     ^
callbacks.cc:17226:15: error: expected primary-expression before '*' token
    vector<Unit*> to_us2;
               ^
callbacks.cc:17226:16: error: expected primary-expression before '>' token
    vector<Unit*> to_us2;
                ^
callbacks.cc:17226:18: error: 'to_us2' was not declared in this scope
    vector<Unit*> to_us2;
                  ^~~~~~
callbacks.cc:17226:18: note: suggested alternative: 'to_base'
    vector<Unit*> to_us2;
                  ^~~~~~
                  to_base
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:124: error: 'string' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:124: note: suggested alternatives:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                            ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:17248:6: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
      MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
      ^
callbacks.cc:17253:4: error: 'string' was not declared in this scope
    string s_cat = u_result->category();
    ^~~~~~
callbacks.cc:17253:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:17255:44: error: 's_cat' was not declared in this scope
     if(CALCULATOR->units[i]->category() == s_cat) {
                                            ^~~~~
callbacks.cc:17255:44: note: suggested alternative: 'stat'
     if(CALCULATOR->units[i]->category() == s_cat) {
                                            ^~~~~
                                            stat
callbacks.cc:17260:64: error: 'string_is_less' cannot be used as a function
        if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                                ^
callbacks.cc: In function 'gboolean on_units_entry_from_val_focus_out_event(GtkEntry*, GdkEventFocus*, gpointer)':
callbacks.cc:17650:5: error: 'old_fromValue' was not declared in this scope
  if(old_fromValue != gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(units_builder, "units_entry_from_val")))) convert_in_wUnits(0);
     ^~~~~~~~~~~~~
callbacks.cc: In function 'gboolean on_units_entry_to_val_focus_out_event(GtkEntry*, GdkEventFocus*, gpointer)':
callbacks.cc:17654:5: error: 'old_toValue' was not declared in this scope
  if(old_toValue != gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(units_builder, "units_entry_to_val")))) convert_in_wUnits(1);
     ^~~~~~~~~~~
callbacks.cc:17654:5: note: suggested alternative: 'AtkValue'
  if(old_toValue != gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(units_builder, "units_entry_to_val")))) convert_in_wUnits(1);
     ^~~~~~~~~~~
     AtkValue
callbacks.cc: In function 'gboolean on_gcalc_exit(GtkWidget*, GdkEvent*, gpointer)':
callbacks.cc:17702:24: error: 'history_parsed' was not declared in this scope
  for(size_t i = 0; i < history_parsed.size(); i++) {
                        ^~~~~~~~~~~~~~
callbacks.cc:17702:24: note: suggested alternative: 'history_index'
  for(size_t i = 0; i < history_parsed.size(); i++) {
                        ^~~~~~~~~~~~~~
                        history_index
callbacks.cc:17704:6: error: 'history_answer' was not declared in this scope
   if(history_answer[i]) history_answer[i]->unref();
      ^~~~~~~~~~~~~~
callbacks.cc:17704:6: note: suggested alternative: 'history_index'
   if(history_answer[i]) history_answer[i]->unref();
      ^~~~~~~~~~~~~~
      history_index
callbacks.cc: In function 'void do_completion()':
callbacks.cc:18081:2: error: 'string' was not declared in this scope
  string str = gstr2;
  ^~~~~~
callbacks.cc:18081:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18083:5: error: 'str' was not declared in this scope
  if(str.length() < (size_t) completion_min) {gtk_widget_hide(completion_window); return;}
     ^~~
callbacks.cc:18083:5: note: suggested alternative: 'gstr2'
  if(str.length() < (size_t) completion_min) {gtk_widget_hide(completion_window); return;}
     ^~~
     gstr2
callbacks.cc:18087:5: error: 'str' was not declared in this scope
  if(str.length() > 0 && is_not_in(NUMBERS NOT_IN_NAMES "%", str[0]) && gtk_tree_model_get_iter_first(GTK_TREE_MODEL(completion_store), &iter)) {
     ^~~
callbacks.cc:18087:5: note: suggested alternative: 'iter'
  if(str.length() > 0 && is_not_in(NUMBERS NOT_IN_NAMES "%", str[0]) && gtk_tree_model_get_iter_first(GTK_TREE_MODEL(completion_store), &iter)) {
     ^~~
     iter
callbacks.cc:18088:10: error: expected ';' before 'str2'
   string str2, str3, str4;
          ^~~~
callbacks.cc:18095:12: error: 'string' does not name a type; did you mean 'GString'?
      const string *pname;
            ^~~~~~
            GString
callbacks.cc:18096:22: error: 'pname' was not declared in this scope
      if(name_i == 0) pname = &prefix->shortName(false);
                      ^~~~~
callbacks.cc:18096:22: note: suggested alternative: 'rename'
      if(name_i == 0) pname = &prefix->shortName(false);
                      ^~~~~
                      rename
callbacks.cc:18097:27: error: 'pname' was not declared in this scope
      else if(name_i == 1) pname = &prefix->longName(false);
                           ^~~~~
callbacks.cc:18097:27: note: suggested alternative: 'rename'
      else if(name_i == 1) pname = &prefix->longName(false);
                           ^~~~~
                           rename
callbacks.cc:18098:11: error: 'pname' was not declared in this scope
      else pname = &prefix->unicodeName(false);
           ^~~~~
callbacks.cc:18098:11: note: suggested alternative: 'rename'
      else pname = &prefix->unicodeName(false);
           ^~~~~
           rename
callbacks.cc:18099:10: error: 'pname' was not declared in this scope
      if(!pname->empty() && pname->length() < str.length() - completion_min + 1) {
          ^~~~~
callbacks.cc:18099:10: note: suggested alternative: 'rename'
      if(!pname->empty() && pname->length() < str.length() - completion_min + 1) {
          ^~~~~
          rename
callbacks.cc:18108:11: error: 'str2' was not declared in this scope
        if(str2.empty()) {p2 = prefix; str2 = str.substr(pname->length());}
           ^~~~
callbacks.cc:18108:11: note: suggested alternative: 'gstr2'
        if(str2.empty()) {p2 = prefix; str2 = str.substr(pname->length());}
           ^~~~
           gstr2
callbacks.cc:18109:16: error: 'str3' was not declared in this scope
        else if(str3.empty()) {p3 = prefix; str3 = str.substr(pname->length());}
                ^~~~
callbacks.cc:18109:16: note: suggested alternative: 'gstr2'
        else if(str3.empty()) {p3 = prefix; str3 = str.substr(pname->length());}
                ^~~~
                gstr2
callbacks.cc:18110:16: error: 'str4' was not declared in this scope
        else if(str4.empty()) {p4 = prefix; str4 = str.substr(pname->length());}
                ^~~~
callbacks.cc:18110:16: note: suggested alternative: 'gstr2'
        else if(str4.empty()) {p4 = prefix; str4 = str.substr(pname->length());}
                ^~~~
                gstr2
callbacks.cc:18134:56: error: 'str2' was not declared in this scope
          if(icmp == 1 && (item->type() != TYPE_UNIT || str2.empty() || !((Unit*) item)->useWithPrefixesByDefault())) break;
                                                        ^~~~
callbacks.cc:18134:56: note: suggested alternative: 'gstr2'
          if(icmp == 1 && (item->type() != TYPE_UNIT || str2.empty() || !((Unit*) item)->useWithPrefixesByDefault())) break;
                                                        ^~~~
                                                        gstr2
callbacks.cc:18135:16: error: 'string' does not name a type; did you mean 'GString'?
          const string *cmpstr;
                ^~~~~~
                GString
callbacks.cc:18136:24: error: 'cmpstr' was not declared in this scope
          if(icmp == 0) cmpstr = &str;
                        ^~~~~~
callbacks.cc:18136:24: note: suggested alternative: 'mp_ptr'
          if(icmp == 0) cmpstr = &str;
                        ^~~~~~
                        mp_ptr
callbacks.cc:18137:29: error: 'cmpstr' was not declared in this scope
          else if(icmp == 1) cmpstr = &str2;
                             ^~~~~~
callbacks.cc:18137:29: note: suggested alternative: 'mp_ptr'
          else if(icmp == 1) cmpstr = &str2;
                             ^~~~~~
                             mp_ptr
callbacks.cc:18137:39: error: 'str2' was not declared in this scope
          else if(icmp == 1) cmpstr = &str2;
                                       ^~~~
callbacks.cc:18137:39: note: suggested alternative: 'gstr2'
          else if(icmp == 1) cmpstr = &str2;
                                       ^~~~
                                       gstr2
callbacks.cc:18138:29: error: 'cmpstr' was not declared in this scope
          else if(icmp == 2) cmpstr = &str3;
                             ^~~~~~
callbacks.cc:18138:29: note: suggested alternative: 'mp_ptr'
          else if(icmp == 2) cmpstr = &str3;
                             ^~~~~~
                             mp_ptr
callbacks.cc:18138:39: error: 'str3' was not declared in this scope
          else if(icmp == 2) cmpstr = &str3;
                                       ^~~~
callbacks.cc:18138:39: note: suggested alternative: 'gstr2'
          else if(icmp == 2) cmpstr = &str3;
                                       ^~~~
                                       gstr2
callbacks.cc:18139:15: error: 'cmpstr' was not declared in this scope
          else cmpstr = &str4;
               ^~~~~~
callbacks.cc:18139:15: note: suggested alternative: 'mp_ptr'
          else cmpstr = &str4;
               ^~~~~~
               mp_ptr
callbacks.cc:18139:25: error: 'str4' was not declared in this scope
          else cmpstr = &str4;
                         ^~~~
callbacks.cc:18139:25: note: suggested alternative: 'gstr2'
          else cmpstr = &str4;
                         ^~~~
                         gstr2
callbacks.cc:18140:13: error: 'cmpstr' was not declared in this scope
          if(cmpstr->empty()) break;
             ^~~~~~
callbacks.cc:18140:13: note: suggested alternative: 'mp_ptr'
          if(cmpstr->empty()) break;
             ^~~~~~
             mp_ptr
callbacks.cc:18141:13: error: 'cmpstr' was not declared in this scope
          if(cmpstr->length() <= ename->name.length()) {
             ^~~~~~
callbacks.cc:18141:13: note: suggested alternative: 'mp_ptr'
          if(cmpstr->length() <= ename->name.length()) {
             ^~~~~~
             mp_ptr
callbacks.cc:18166:54: error: 'str2' was not declared in this scope
        if(icmp == 1 && (item->type() != TYPE_UNIT || str2.empty() || !((Unit*) item)->useWithPrefixesByDefault())) break;
                                                      ^~~~
callbacks.cc:18166:54: note: suggested alternative: 'gstr2'
        if(icmp == 1 && (item->type() != TYPE_UNIT || str2.empty() || !((Unit*) item)->useWithPrefixesByDefault())) break;
                                                      ^~~~
                                                      gstr2
callbacks.cc:18167:14: error: 'string' does not name a type; did you mean 'GString'?
        const string *cmpstr;
              ^~~~~~
              GString
callbacks.cc:18168:22: error: 'cmpstr' was not declared in this scope
        if(icmp == 0) cmpstr = &str;
                      ^~~~~~
callbacks.cc:18168:22: note: suggested alternative: 'mp_ptr'
        if(icmp == 0) cmpstr = &str;
                      ^~~~~~
                      mp_ptr
callbacks.cc:18169:27: error: 'cmpstr' was not declared in this scope
        else if(icmp == 1) cmpstr = &str2;
                           ^~~~~~
callbacks.cc:18169:27: note: suggested alternative: 'mp_ptr'
        else if(icmp == 1) cmpstr = &str2;
                           ^~~~~~
                           mp_ptr
callbacks.cc:18169:37: error: 'str2' was not declared in this scope
        else if(icmp == 1) cmpstr = &str2;
                                     ^~~~
callbacks.cc:18169:37: note: suggested alternative: 'gstr2'
        else if(icmp == 1) cmpstr = &str2;
                                     ^~~~
                                     gstr2
callbacks.cc:18170:27: error: 'cmpstr' was not declared in this scope
        else if(icmp == 2) cmpstr = &str3;
                           ^~~~~~
callbacks.cc:18170:27: note: suggested alternative: 'mp_ptr'
        else if(icmp == 2) cmpstr = &str3;
                           ^~~~~~
                           mp_ptr
callbacks.cc:18170:37: error: 'str3' was not declared in this scope
        else if(icmp == 2) cmpstr = &str3;
                                     ^~~~
callbacks.cc:18170:37: note: suggested alternative: 'gstr2'
        else if(icmp == 2) cmpstr = &str3;
                                     ^~~~
                                     gstr2
callbacks.cc:18171:13: error: 'cmpstr' was not declared in this scope
        else cmpstr = &str4;
             ^~~~~~
callbacks.cc:18171:13: note: suggested alternative: 'mp_ptr'
        else cmpstr = &str4;
             ^~~~~~
             mp_ptr
callbacks.cc:18171:23: error: 'str4' was not declared in this scope
        else cmpstr = &str4;
                       ^~~~
callbacks.cc:18171:23: note: suggested alternative: 'gstr2'
        else cmpstr = &str4;
                       ^~~~
                       gstr2
callbacks.cc:18172:11: error: 'cmpstr' was not declared in this scope
        if(cmpstr->empty()) break;
           ^~~~~~
callbacks.cc:18172:11: note: suggested alternative: 'mp_ptr'
        if(cmpstr->empty()) break;
           ^~~~~~
           mp_ptr
callbacks.cc:18174:43: error: 'cmpstr' was not declared in this scope
         if(item->getName(name_i).name == *cmpstr) {
                                           ^~~~~~
callbacks.cc:18174:43: note: suggested alternative: 'mp_ptr'
         if(item->getName(name_i).name == *cmpstr) {
                                           ^~~~~~
                                           mp_ptr
callbacks.cc:18193:14: error: expected ';' before 'nstr'
       string nstr;
              ^~~~
callbacks.cc:18195:8: error: 'nstr' was not declared in this scope
        nstr = gstr;
        ^~~~
callbacks.cc:18195:8: note: suggested alternative: 'gstr'
        nstr = gstr;
        ^~~~
        gstr
callbacks.cc:18197:16: error: 'string' is not a class, namespace, or enumeration
        if(i != string::npos && i > 2) {
                ^~~~~~
callbacks.cc:18207:11: error: 'nstr' was not declared in this scope
        if(nstr.empty()) nstr = gstr;
           ^~~~
callbacks.cc:18207:11: note: suggested alternative: 'gstr'
        if(nstr.empty()) nstr = gstr;
           ^~~~
           gstr
callbacks.cc:18208:8: error: 'nstr' was not declared in this scope
        nstr.insert(0, "-) </small>");
        ^~~~
callbacks.cc:18208:8: note: suggested alternative: 'gstr'
        nstr.insert(0, "-) </small>");
        ^~~~
        gstr
callbacks.cc:18218:12: error: 'string' does not name a type; did you mean 'GString'?
      const string *pname;
            ^~~~~~
            GString
callbacks.cc:18219:22: error: 'pname' was not declared in this scope
      if(name_i == 0) pname = &prefix->shortName(false);
                      ^~~~~
callbacks.cc:18219:22: note: suggested alternative: 'rename'
      if(name_i == 0) pname = &prefix->shortName(false);
                      ^~~~~
                      rename
callbacks.cc:18220:27: error: 'pname' was not declared in this scope
      else if(name_i == 1) pname = &prefix->unicodeName(false);
                           ^~~~~
callbacks.cc:18220:27: note: suggested alternative: 'rename'
      else if(name_i == 1) pname = &prefix->unicodeName(false);
                           ^~~~~
                           rename
callbacks.cc:18221:11: error: 'pname' was not declared in this scope
      else pname = &prefix->longName(false);
           ^~~~~
callbacks.cc:18221:11: note: suggested alternative: 'rename'
      else pname = &prefix->longName(false);
           ^~~~~
           rename
callbacks.cc:18222:10: error: 'pname' was not declared in this scope
      if(!pname->empty() && str.length() <= pname->length()) {
          ^~~~~
callbacks.cc:18222:10: note: suggested alternative: 'rename'
      if(!pname->empty() && str.length() <= pname->length()) {
          ^~~~~
          rename
callbacks.cc:18237:40: error: 'completion_names_match' cannot be used as a function
     if(completion_names_match(gstr, str)) {
                                        ^
callbacks.cc: In function 'void on_expressionbuffer_changed(GtkTextBuffer*, gpointer)':
callbacks.cc:18294:5: error: 'result_text' was not declared in this scope
  if(result_text.empty()) return;
     ^~~~~~~~~~~
callbacks.cc:18294:5: note: suggested alternative: 'resultview'
  if(result_text.empty()) return;
     ^~~~~~~~~~~
     resultview
callbacks.cc: In function 'gboolean on_keypad_button_alt(GtkWidget*, bool)':
callbacks.cc:18335:4: error: 'string' was not declared in this scope
    string str = "[";
    ^~~~~~
callbacks.cc:18335:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18336:4: error: 'str' was not declared in this scope
    str += gstr;
    ^~~
callbacks.cc:18336:4: note: suggested alternative: 'gstr'
    str += gstr;
    ^~~
    gstr
callbacks.cc:18378:6: error: 'history_answer' was not declared in this scope
   if(history_answer.size() > 0) {
      ^~~~~~~~~~~~~~
callbacks.cc:18378:6: note: suggested alternative: 'history_index'
   if(history_answer.size() > 0) {
      ^~~~~~~~~~~~~~
      history_index
callbacks.cc:18379:4: error: 'string' was not declared in this scope
    string str = f_answer->preferredInputName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
    ^~~~~~
callbacks.cc:18379:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18381:4: error: 'str' was not declared in this scope
    str += '(';
    ^~~
callbacks.cc:18382:11: error: 'print_with_evalops' was not declared in this scope
    str += print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:18382:11: note: suggested alternative: 'print_auto_calc'
    str += print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc:18442:8: error: 'get_expression_text' was not declared in this scope
     if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
        ^~~~~~~~~~~~~~~~~~~
callbacks.cc:18442:8: note: suggested alternative: 'set_expression_text'
     if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
        ^~~~~~~~~~~~~~~~~~~
        set_expression_text
callbacks.cc:18442:59: error: 'string' has not been declared
     if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
                                                           ^~~~~~
callbacks.cc:18446:70: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
    execute_expression(true, false, OPERATION_ADD, NULL, false, 0, "!");
                                                                      ^
callbacks.cc:9170:6: note:   initializing argument 7 of 'void execute_expression(bool, bool, MathOperation, MathFunction*, bool, size_t, int, int, bool)'
 void execute_expression(bool force, bool do_mathoperation, MathOperation op, MathFunction *f, bool do_stack, size_t stack_index, string execute_str, string str, bool check_exrates) {
      ^~~~~~~~~~~~~~~~~~
callbacks.cc:18497:4: error: 'string' was not declared in this scope
    string str = "(";
    ^~~~~~
callbacks.cc:18497:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18498:4: error: 'str' was not declared in this scope
    str += print_with_evalops(Number(1, 1));
    ^~~
callbacks.cc:18498:11: error: 'print_with_evalops' was not declared in this scope
    str += print_with_evalops(Number(1, 1));
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:18498:11: note: suggested alternative: 'print_auto_calc'
    str += print_with_evalops(Number(1, 1));
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc:18504:4: error: 'string' was not declared in this scope
    string str = "^";
    ^~~~~~
callbacks.cc:18504:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18505:4: error: 'str' was not declared in this scope
    str += print_with_evalops(Number(i, 1));
    ^~~
callbacks.cc:18505:11: error: 'print_with_evalops' was not declared in this scope
    str += print_with_evalops(Number(i, 1));
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:18505:11: note: suggested alternative: 'print_auto_calc'
    str += print_with_evalops(Number(i, 1));
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc: In function 'gboolean keypad_long_press_timeout(gpointer)':
callbacks.cc:18558:26: error: 'expression_history' was not declared in this scope
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
callbacks.cc:18558:26: note: suggested alternative: 'expression_redo'
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
                          expression_redo
callbacks.cc:18564:44: error: 'expression_history' was not declared in this scope
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
callbacks.cc:18564:44: note: suggested alternative: 'expression_redo'
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
                                            expression_redo
callbacks.cc: In function 'gboolean on_button_move_button_event(GtkWidget*, GdkEventButton*, gpointer)':
callbacks.cc:18681:26: error: 'expression_history' was not declared in this scope
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
callbacks.cc:18681:26: note: suggested alternative: 'expression_redo'
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
                          expression_redo
callbacks.cc:18687:44: error: 'expression_history' was not declared in this scope
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
callbacks.cc:18687:44: note: suggested alternative: 'expression_redo'
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
                                            expression_redo
callbacks.cc: In function 'void on_button_brace_wrap_clicked(GtkButton*, gpointer)':
callbacks.cc:18824:2: error: 'string' was not declared in this scope
  string expr = get_expression_text();
  ^~~~~~
callbacks.cc:18824:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18826:12: error: 'expr' was not declared in this scope
  gint il = expr.length();
            ^~~~
callbacks.cc:18826:12: note: suggested alternative: 'expl'
  gint il = expr.length();
            ^~~~
            expl
callbacks.cc:18852:11: error: expected ';' before 'str'
    string str = CALCULATOR->unlocalizeExpression(gstr, evalops.parse_options);
           ^~~
callbacks.cc:18854:27: error: 'str' was not declared in this scope
    CALCULATOR->parseSigns(str);
                           ^~~
callbacks.cc:18854:27: note: suggested alternative: 'gstr'
    CALCULATOR->parseSigns(str);
                           ^~~
                           gstr
callbacks.cc:18872:11: error: expected ';' before 'str'
    string str = CALCULATOR->unlocalizeExpression(gstr, evalops.parse_options);
           ^~~
callbacks.cc:18874:27: error: 'str' was not declared in this scope
    CALCULATOR->parseSigns(str);
                           ^~~
callbacks.cc:18874:27: note: suggested alternative: 'gstr'
    CALCULATOR->parseSigns(str);
                           ^~~
                           gstr
callbacks.cc:18897:9: error: expected ';' before 'str'
  string str = CALCULATOR->unlocalizeExpression(gstr, evalops.parse_options);
         ^~~
callbacks.cc:18899:25: error: 'str' was not declared in this scope
  CALCULATOR->parseSigns(str);
                         ^~~
callbacks.cc:18899:25: note: suggested alternative: 'gstr'
  CALCULATOR->parseSigns(str);
                         ^~~
                         gstr
callbacks.cc: In function 'void on_button_to_clicked(GtkButton*, gpointer)':
callbacks.cc:18936:2: error: 'string' was not declared in this scope
  string to_str = CALCULATOR->localToString();
  ^~~~~~
callbacks.cc:18936:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:18937:20: error: 'to_str' was not declared in this scope
  remove_blank_ends(to_str);
                    ^~~~~~
callbacks.cc:18937:20: note: suggested alternative: 'gstr'
  remove_blank_ends(to_str);
                    ^~~~~~
                    gstr
callbacks.cc: In function 'void on_button_factorize_clicked(GtkButton*, gpointer)':
callbacks.cc:18974:80: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  if(evalops.structuring == STRUCTURING_FACTORIZE) executeCommand(COMMAND_EXPAND);
                                                                                ^
callbacks.cc:18975:39: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  else executeCommand(COMMAND_FACTORIZE);
                                       ^
callbacks.cc: In function 'void on_button_factorize2_clicked(GtkButton*, gpointer)':
callbacks.cc:18978:34: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_FACTORIZE);
                                  ^
callbacks.cc: In function 'void insert_bitwise_not()':
callbacks.cc:19009:7: error: 'get_expression_text' was not declared in this scope
    if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
       ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19009:7: note: suggested alternative: 'set_expression_text'
    if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
       ^~~~~~~~~~~~~~~~~~~
       set_expression_text
callbacks.cc:19009:58: error: 'string' has not been declared
    if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
                                                          ^~~~~~
callbacks.cc:19013:69: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   execute_expression(true, false, OPERATION_ADD, NULL, false, 0, "~");
                                                                     ^
callbacks.cc:9170:6: note:   initializing argument 7 of 'void execute_expression(bool, bool, MathOperation, MathFunction*, bool, size_t, int, int, bool)'
 void execute_expression(bool force, bool do_mathoperation, MathOperation op, MathFunction *f, bool do_stack, size_t stack_index, string execute_str, string str, bool check_exrates) {
      ^~~~~~~~~~~~~~~~~~
callbacks.cc: At global scope:
callbacks.cc:19151:32: error: variable or field 'process_history_selection' declared void
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                ^~~~~~
callbacks.cc:19151:32: error: 'vector' was not declared in this scope
callbacks.cc:19151:32: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19151:45: error: expected primary-expression before '>' token
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                             ^
callbacks.cc:19151:48: error: 'selected_rows' was not declared in this scope
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                ^~~~~~~~~~~~~
callbacks.cc:19151:48: note: suggested alternative: 'selected_unit'
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                ^~~~~~~~~~~~~
                                                selected_unit
callbacks.cc:19151:63: error: 'vector' was not declared in this scope
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                               ^~~~~~
callbacks.cc:19151:63: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19151:76: error: expected primary-expression before '>' token
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                            ^
callbacks.cc:19151:79: error: 'selected_indeces' was not declared in this scope
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                               ^~~~~~~~~~~~~~~~
callbacks.cc:19151:79: note: suggested alternative: 'selected_unit'
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                               ^~~~~~~~~~~~~~~~
                                                                               selected_unit
callbacks.cc:19151:97: error: 'vector' was not declared in this scope
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                                                 ^~~~~~
callbacks.cc:19151:97: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19151:104: error: expected primary-expression before 'int'
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                                                        ^~~
callbacks.cc:19151:131: error: expected primary-expression before 'bool'
 void process_history_selection(vector<size_t> *selected_rows, vector<size_t> *selected_indeces, vector<int> *selected_index_type, bool ans_priority = false) {
                                                                                                                                   ^~~~
callbacks.cc:19200:23: error: variable or field 'history_operator' declared void
 void history_operator(string str_sign) {
                       ^~~~~~
callbacks.cc:19200:23: error: 'string' was not declared in this scope
callbacks.cc:19200:23: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_button_history_add_clicked(GtkButton*, gpointer)':
callbacks.cc:19294:2: error: 'history_operator' was not declared in this scope
  history_operator(expression_add_sign());
  ^~~~~~~~~~~~~~~~
callbacks.cc:19294:2: note: suggested alternative: 'last_is_operator'
  history_operator(expression_add_sign());
  ^~~~~~~~~~~~~~~~
  last_is_operator
callbacks.cc: In function 'void on_button_history_sub_clicked(GtkButton*, gpointer)':
callbacks.cc:19297:2: error: 'history_operator' was not declared in this scope
  history_operator(expression_sub_sign());
  ^~~~~~~~~~~~~~~~
callbacks.cc:19297:2: note: suggested alternative: 'last_is_operator'
  history_operator(expression_sub_sign());
  ^~~~~~~~~~~~~~~~
  last_is_operator
callbacks.cc: In function 'void on_button_history_times_clicked(GtkButton*, gpointer)':
callbacks.cc:19300:2: error: 'history_operator' was not declared in this scope
  history_operator(expression_times_sign());
  ^~~~~~~~~~~~~~~~
callbacks.cc:19300:2: note: suggested alternative: 'last_is_operator'
  history_operator(expression_times_sign());
  ^~~~~~~~~~~~~~~~
  last_is_operator
callbacks.cc: In function 'void on_button_history_divide_clicked(GtkButton*, gpointer)':
callbacks.cc:19303:2: error: 'history_operator' was not declared in this scope
  history_operator(expression_divide_sign());
  ^~~~~~~~~~~~~~~~
callbacks.cc:19303:2: note: suggested alternative: 'last_is_operator'
  history_operator(expression_divide_sign());
  ^~~~~~~~~~~~~~~~
  last_is_operator
callbacks.cc: In function 'void on_button_history_xy_clicked(GtkButton*, gpointer)':
callbacks.cc:19306:2: error: 'history_operator' was not declared in this scope
  history_operator("^");
  ^~~~~~~~~~~~~~~~
callbacks.cc:19306:2: note: suggested alternative: 'last_is_operator'
  history_operator("^");
  ^~~~~~~~~~~~~~~~
  last_is_operator
callbacks.cc: In function 'void on_button_history_sqrt_clicked(GtkButton*, gpointer)':
callbacks.cc:19310:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_indeces;
  ^~~~~~
callbacks.cc:19310:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19310:15: error: expected primary-expression before '>' token
  vector<size_t> selected_indeces;
               ^
callbacks.cc:19310:17: error: 'selected_indeces' was not declared in this scope
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
callbacks.cc:19310:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
                 selected_unit
callbacks.cc:19311:9: error: expected primary-expression before 'int'
  vector<int> selected_index_type;
         ^~~
callbacks.cc:19312:54: error: 'selected_index_type' was not declared in this scope
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
                                                      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19312:54: note: suggested alternative: 'selected_unit'
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
                                                      ^~~~~~~~~~~~~~~~~~~
                                                      selected_unit
callbacks.cc:19312:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19312:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:19318:2: error: 'string' was not declared in this scope
  string str = ename2->name;
  ^~~~~~
callbacks.cc:19318:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19319:2: error: 'str' was not declared in this scope
  str += "(";
  ^~~
callbacks.cc:19322:19: error: 'inhistory_type' was not declared in this scope
   if(index > 0 && inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION) index--;
                   ^~~~~~~~~~~~~~
callbacks.cc:19322:19: note: suggested alternative: 'historystore'
   if(index > 0 && inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION) index--;
                   ^~~~~~~~~~~~~~
                   historystore
callbacks.cc:19323:10: error: 'inhistory' was not declared in this scope
   str += inhistory[index];
          ^~~~~~~~~
callbacks.cc:19323:10: note: suggested alternative: 'show_history'
   str += inhistory[index];
          ^~~~~~~~~
          show_history
callbacks.cc:19331:10: error: 'print_with_evalops' was not declared in this scope
   str += print_with_evalops(nr);
          ^~~~~~~~~~~~~~~~~~
callbacks.cc:19331:10: note: suggested alternative: 'print_auto_calc'
   str += print_with_evalops(nr);
          ^~~~~~~~~~~~~~~~~~
          print_auto_calc
callbacks.cc: In function 'void on_button_history_insert_value_clicked(GtkButton*, gpointer)':
callbacks.cc:19343:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_indeces;
  ^~~~~~
callbacks.cc:19343:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19343:15: error: expected primary-expression before '>' token
  vector<size_t> selected_indeces;
               ^
callbacks.cc:19343:17: error: 'selected_indeces' was not declared in this scope
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
callbacks.cc:19343:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
                 selected_unit
callbacks.cc:19344:9: error: expected primary-expression before 'int'
  vector<int> selected_index_type;
         ^~~
callbacks.cc:19345:54: error: 'selected_index_type' was not declared in this scope
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
                                                      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19345:54: note: suggested alternative: 'selected_unit'
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
                                                      ^~~~~~~~~~~~~~~~~~~
                                                      selected_unit
callbacks.cc:19345:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19345:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(NULL, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:19355:2: error: 'string' was not declared in this scope
  string str = ename->name;
  ^~~~~~
callbacks.cc:19355:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19356:2: error: 'str' was not declared in this scope
  str += "(";
  ^~~
callbacks.cc:19361:11: error: 'print_with_evalops' was not declared in this scope
    str += print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
callbacks.cc:19361:11: note: suggested alternative: 'print_auto_calc'
    str += print_with_evalops(nr);
           ^~~~~~~~~~~~~~~~~~
           print_auto_calc
callbacks.cc: In function 'void on_button_history_insert_text_clicked(GtkButton*, gpointer)':
callbacks.cc:19376:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:19376:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19376:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:19376:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:19376:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:19377:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19377:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:19380:20: error: 'inhistory_type' was not declared in this scope
  if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                    ^~~~~~~~~~~~~~
callbacks.cc:19380:20: note: suggested alternative: 'historystore'
  if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                    ^~~~~~~~~~~~~~
                    historystore
callbacks.cc:19382:14: error: 'inhistory' was not declared in this scope
  insert_text(inhistory[index].c_str());
              ^~~~~~~~~
callbacks.cc:19382:14: note: suggested alternative: 'show_history'
  insert_text(inhistory[index].c_str());
              ^~~~~~~~~
              show_history
callbacks.cc: In function 'void on_button_history_insert_parsed_text_clicked(GtkButton*, gpointer)':
callbacks.cc:19386:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:19386:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19386:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:19386:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:19386:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:19387:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19387:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:19390:20: error: 'inhistory_type' was not declared in this scope
  if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                    ^~~~~~~~~~~~~~
callbacks.cc:19390:20: note: suggested alternative: 'historystore'
  if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                    ^~~~~~~~~~~~~~
                    historystore
callbacks.cc:19392:14: error: 'inhistory' was not declared in this scope
  insert_text(inhistory[index].c_str());
              ^~~~~~~~~
callbacks.cc:19392:14: note: suggested alternative: 'show_history'
  insert_text(inhistory[index].c_str());
              ^~~~~~~~~
              show_history
callbacks.cc: In function 'void history_copy(bool)':
callbacks.cc:19396:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:19396:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19396:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:19396:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:19396:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:19397:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19397:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:19401:21: error: 'inhistory_type' was not declared in this scope
   if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                     ^~~~~~~~~~~~~~
callbacks.cc:19401:21: note: suggested alternative: 'history_copy'
   if(index > 0 && ((inhistory_type[index] == QALCULATE_HISTORY_TRANSFORMATION && (inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT || inhistory_type[index - 1] == QALCULATE_HISTORY_RESULT_APPROXIMATE)) || inhistory_type[index] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[index] == QALCULATE_HISTORY_REGISTER_MOVED)) index--;
                     ^~~~~~~~~~~~~~
                     history_copy
callbacks.cc:19403:3: error: 'string' was not declared in this scope
   string copy_text = inhistory[index];
   ^~~~~~
callbacks.cc:19403:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19405:21: error: 'copy_text' was not declared in this scope
    remove_separator(copy_text);
                     ^~~~~~~~~
callbacks.cc:19405:21: note: suggested alternative: 'full_text'
    remove_separator(copy_text);
                     ^~~~~~~~~
                     full_text
callbacks.cc:19405:4: error: 'remove_separator' was not declared in this scope
    remove_separator(copy_text);
    ^~~~~~~~~~~~~~~~
callbacks.cc:19405:4: note: suggested alternative: 'copy_separator'
    remove_separator(copy_text);
    ^~~~~~~~~~~~~~~~
    copy_separator
callbacks.cc:19407:82: error: 'copy_text' was not declared in this scope
   gtk_clipboard_set_text(gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)), copy_text.c_str(), -1);
                                                                                  ^~~~~~~~~
callbacks.cc:19407:82: note: suggested alternative: 'full_text'
   gtk_clipboard_set_text(gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)), copy_text.c_str(), -1);
                                                                                  ^~~~~~~~~
                                                                                  full_text
callbacks.cc:19409:3: error: 'string' was not declared in this scope
   string str;
   ^~~~~~
callbacks.cc:19409:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19412:14: error: 'str' was not declared in this scope
    if(i > 0) str += '\n';
              ^~~
callbacks.cc:19414:25: error: 'inhistory_type' was not declared in this scope
    if((size_t) hindex < inhistory_type.size() - 1 && (inhistory_type[hindex] == QALCULATE_HISTORY_PARSE || inhistory_type[hindex] == QALCULATE_HISTORY_PARSE_WITHEQUALS || inhistory_type[hindex] == QALCULATE_HISTORY_PARSE_APPROXIMATE) && (inhistory_type[hindex + 1] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[hindex + 1] == QALCULATE_HISTORY_REGISTER_MOVED || inhistory_type[hindex + 1] == QALCULATE_HISTORY_RPN_OPERATION)) hindex++;
                         ^~~~~~~~~~~~~~
callbacks.cc:19414:25: note: suggested alternative: 'history_copy'
    if((size_t) hindex < inhistory_type.size() - 1 && (inhistory_type[hindex] == QALCULATE_HISTORY_PARSE || inhistory_type[hindex] == QALCULATE_HISTORY_PARSE_WITHEQUALS || inhistory_type[hindex] == QALCULATE_HISTORY_PARSE_APPROXIMATE) && (inhistory_type[hindex + 1] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[hindex + 1] == QALCULATE_HISTORY_REGISTER_MOVED || inhistory_type[hindex + 1] == QALCULATE_HISTORY_RPN_OPERATION)) hindex++;
                         ^~~~~~~~~~~~~~
                         history_copy
callbacks.cc:19417:11: error: 'inhistory_type' was not declared in this scope
    switch(inhistory_type[hindex]) {
           ^~~~~~~~~~~~~~
callbacks.cc:19417:11: note: suggested alternative: 'history_copy'
    switch(inhistory_type[hindex]) {
           ^~~~~~~~~~~~~~
           history_copy
callbacks.cc:19419:16: error: 'str' was not declared in this scope
      if(i > 0) str += '\n';
                ^~~
callbacks.cc:19420:6: error: 'str' was not declared in this scope
      str += inhistory[hindex];
      ^~~
callbacks.cc:19420:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19420:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19425:16: error: 'str' was not declared in this scope
      if(i > 0) str += '\n';
                ^~~
callbacks.cc:19426:6: error: 'str' was not declared in this scope
      str += _("RPN Register Moved");
      ^~~
callbacks.cc:19431:16: error: 'str' was not declared in this scope
      if(i > 0) str += '\n';
                ^~~
callbacks.cc:19432:6: error: 'str' was not declared in this scope
      str += _("RPN Operation");
      ^~~
callbacks.cc:19437:6: error: 'str' was not declared in this scope
      str += inhistory[hindex];
      ^~~
callbacks.cc:19437:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19437:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19445:36: error: 'str' was not declared in this scope
     case QALCULATE_HISTORY_PARSE: {str += " ";}
                                    ^~~
callbacks.cc:19447:6: error: 'str' was not declared in this scope
      str += "= ";
      ^~~
callbacks.cc:19448:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19448:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19451:48: error: 'str' was not declared in this scope
     case QALCULATE_HISTORY_PARSE_APPROXIMATE: {str += " ";}
                                                ^~~
callbacks.cc:19454:7: error: 'str' was not declared in this scope
       str += SIGN_ALMOST_EQUAL " ";
       ^~~
callbacks.cc:19456:7: error: 'str' was not declared in this scope
       str += "= ";
       ^~~
callbacks.cc:19460:6: error: 'str' was not declared in this scope
      str += inhistory[hindex];
      ^~~
callbacks.cc:19460:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19460:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19464:6: error: 'str' was not declared in this scope
      str += " ";
      ^~~
callbacks.cc:19465:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19465:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19471:6: error: 'str' was not declared in this scope
      str += inhistory[hindex];
      ^~~
callbacks.cc:19471:13: error: 'inhistory' was not declared in this scope
      str += inhistory[hindex];
             ^~~~~~~~~
callbacks.cc:19471:13: note: suggested alternative: 'show_history'
      str += inhistory[hindex];
             ^~~~~~~~~
             show_history
callbacks.cc:19476:35: error: 'inhistory_type' was not declared in this scope
    if(add_parse && hindex > 0 && (inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE || inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE_WITHEQUALS)) {
                                   ^~~~~~~~~~~~~~
callbacks.cc:19476:35: note: suggested alternative: 'history_copy'
    if(add_parse && hindex > 0 && (inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE || inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[hindex - 1] == QALCULATE_HISTORY_PARSE_WITHEQUALS)) {
                                   ^~~~~~~~~~~~~~
                                   history_copy
callbacks.cc:19482:21: error: 'str' was not declared in this scope
    remove_separator(str);
                     ^~~
callbacks.cc:19482:4: error: 'remove_separator' was not declared in this scope
    remove_separator(str);
    ^~~~~~~~~~~~~~~~
callbacks.cc:19482:4: note: suggested alternative: 'copy_separator'
    remove_separator(str);
    ^~~~~~~~~~~~~~~~
    copy_separator
callbacks.cc:19484:82: error: 'str' was not declared in this scope
   gtk_clipboard_set_text(gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)), str.c_str(), -1);
                                                                                  ^~~
callbacks.cc: In function 'void on_popup_menu_item_history_clear_activate(GtkMenuItem*, gpointer)':
callbacks.cc:19496:17: error: 'inhistory' was not declared in this scope
  for(size_t i = inhistory.size(); i > 0;) {
                 ^~~~~~~~~
callbacks.cc:19496:17: note: suggested alternative: 'show_history'
  for(size_t i = inhistory.size(); i > 0;) {
                 ^~~~~~~~~
                 show_history
callbacks.cc:19498:6: error: 'inhistory_type' was not declared in this scope
   if(inhistory_type[i] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[i] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[i] == QALCULATE_HISTORY_REGISTER_MOVED || inhistory_type[i] == QALCULATE_HISTORY_OLD) {
      ^~~~~~~~~~~~~~
callbacks.cc:19498:6: note: suggested alternative: 'history_copy'
   if(inhistory_type[i] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[i] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[i] == QALCULATE_HISTORY_REGISTER_MOVED || inhistory_type[i] == QALCULATE_HISTORY_OLD) {
      ^~~~~~~~~~~~~~
      history_copy
callbacks.cc:19499:66: error: 'inhistory_protected' was not declared in this scope
    b_protected = (inhistory_type[i] != QALCULATE_HISTORY_OLD && (inhistory_protected[i] || history_protected_by_bookmark(i)));
                                                                  ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19499:66: note: suggested alternative: 'history_protected'
    b_protected = (inhistory_type[i] != QALCULATE_HISTORY_OLD && (inhistory_protected[i] || history_protected_by_bookmark(i)));
                                                                  ^~~~~~~~~~~~~~~~~~~
                                                                  history_protected
callbacks.cc:19501:22: error: 'inhistory_type' was not declared in this scope
   if(!b_protected && inhistory_type[i] != QALCULATE_HISTORY_BOOKMARK) {
                      ^~~~~~~~~~~~~~
callbacks.cc:19501:22: note: suggested alternative: 'history_copy'
   if(!b_protected && inhistory_type[i] != QALCULATE_HISTORY_BOOKMARK) {
                      ^~~~~~~~~~~~~~
                      history_copy
callbacks.cc:19504:4: error: 'inhistory_protected' was not declared in this scope
    inhistory_protected.erase(inhistory_protected.begin() + i);
    ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19504:4: note: suggested alternative: 'history_protected'
    inhistory_protected.erase(inhistory_protected.begin() + i);
    ^~~~~~~~~~~~~~~~~~~
    history_protected
callbacks.cc:19505:4: error: 'inhistory_value' was not declared in this scope
    inhistory_value.erase(inhistory_value.begin() + i);
    ^~~~~~~~~~~~~~~
callbacks.cc:19505:4: note: suggested alternative: 'history_column'
    inhistory_value.erase(inhistory_value.begin() + i);
    ^~~~~~~~~~~~~~~
    history_column
callbacks.cc:19508:28: error: 'inhistory' was not declared in this scope
  current_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
callbacks.cc:19508:28: note: suggested alternative: 'show_history'
  current_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
                            show_history
callbacks.cc: In function 'void on_popup_menu_item_history_movetotop_activate(GtkMenuItem*, gpointer)':
callbacks.cc:19524:2: error: 'vector' was not declared in this scope
  vector<int> indexes;
  ^~~~~~
callbacks.cc:19524:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19524:9: error: expected primary-expression before 'int'
  vector<int> indexes;
         ^~~
callbacks.cc:19530:7: error: 'inhistory_type' was not declared in this scope
    if(inhistory_type[hindex] == QALCULATE_HISTORY_OLD) {
       ^~~~~~~~~~~~~~
callbacks.cc:19530:7: note: suggested alternative: 'history_copy'
    if(inhistory_type[hindex] == QALCULATE_HISTORY_OLD) {
       ^~~~~~~~~~~~~~
       history_copy
callbacks.cc:19531:5: error: 'indexes' was not declared in this scope
     indexes.push_back(hindex);
     ^~~~~~~
callbacks.cc:19531:5: note: suggested alternative: 'index'
     indexes.push_back(hindex);
     ^~~~~~~
     index
callbacks.cc:19553:69: error: 'indexes' was not declared in this scope
      if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
                                                                     ^~~~~~~
callbacks.cc:19553:69: note: suggested alternative: 'index'
      if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
                                                                     ^~~~~~~
                                                                     index
callbacks.cc:19554:6: error: 'indexes' was not declared in this scope
      indexes.push_back(hindex);
      ^~~~~~~
callbacks.cc:19554:6: note: suggested alternative: 'index'
      indexes.push_back(hindex);
      ^~~~~~~
      index
callbacks.cc:19575:2: error: 'unordered_map' was not declared in this scope
  unordered_map<int, int> new_indexes;
  ^~~~~~~~~~~~~
callbacks.cc:19575:2: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:19575:16: error: expected primary-expression before 'int'
  unordered_map<int, int> new_indexes;
                ^~~
callbacks.cc:19578:24: error: 'indexes' was not declared in this scope
  for(size_t i = 0; i < indexes.size(); i++) {
                        ^~~~~~~
callbacks.cc:19578:24: note: suggested alternative: 'index'
  for(size_t i = 0; i < indexes.size(); i++) {
                        ^~~~~~~
                        index
callbacks.cc:19582:5: error: 'new_indexes' was not declared in this scope
     new_indexes[hindex2] = hindex2 - n;
     ^~~~~~~~~~~
callbacks.cc:19582:5: note: suggested alternative: 'undo_index'
     new_indexes[hindex2] = hindex2 - n;
     ^~~~~~~~~~~
     undo_index
callbacks.cc:19589:41: error: 'inhistory' was not declared in this scope
  while(hindex2 >= 0 && hindex2 < (gint) inhistory.size()) {
                                         ^~~~~~~~~
callbacks.cc:19589:41: note: suggested alternative: 'show_history'
  while(hindex2 >= 0 && hindex2 < (gint) inhistory.size()) {
                                         ^~~~~~~~~
                                         show_history
callbacks.cc:19590:3: error: 'new_indexes' was not declared in this scope
   new_indexes[hindex2] = hindex2 - n;
   ^~~~~~~~~~~
callbacks.cc:19590:3: note: suggested alternative: 'undo_index'
   new_indexes[hindex2] = hindex2 - n;
   ^~~~~~~~~~~
   undo_index
callbacks.cc:19593:12: error: 'indexes' was not declared in this scope
  hindex2 = indexes[0];
            ^~~~~~~
callbacks.cc:19593:12: note: suggested alternative: 'index'
  hindex2 = indexes[0];
            ^~~~~~~
            index
callbacks.cc:19599:57: error: 'new_indexes' was not declared in this scope
     gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_indexes[hindex], -1);
                                                         ^~~~~~~~~~~
callbacks.cc:19599:57: note: suggested alternative: 'undo_index'
     gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_indexes[hindex], -1);
                                                         ^~~~~~~~~~~
                                                         undo_index
callbacks.cc:19603:19: error: 'inhistory' was not declared in this scope
  hindex2 = (gint) inhistory.size() - indexes.size() + 1;
                   ^~~~~~~~~
callbacks.cc:19603:19: note: suggested alternative: 'show_history'
  hindex2 = (gint) inhistory.size() - indexes.size() + 1;
                   ^~~~~~~~~
                   show_history
callbacks.cc:19607:3: error: 'inhistory_protected' was not declared in this scope
   inhistory_protected.push_back(inhistory_protected[hindex]);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19607:3: note: suggested alternative: 'history_protected'
   inhistory_protected.push_back(inhistory_protected[hindex]);
   ^~~~~~~~~~~~~~~~~~~
   history_protected
callbacks.cc:19608:3: error: 'inhistory_type' was not declared in this scope
   inhistory_type.push_back(inhistory_type[hindex]);
   ^~~~~~~~~~~~~~
callbacks.cc:19608:3: note: suggested alternative: 'history_copy'
   inhistory_type.push_back(inhistory_type[hindex]);
   ^~~~~~~~~~~~~~
   history_copy
callbacks.cc:19609:3: error: 'inhistory_value' was not declared in this scope
   inhistory_value.push_back(inhistory_value[hindex]);
   ^~~~~~~~~~~~~~~
callbacks.cc:19609:3: note: suggested alternative: 'history_column'
   inhistory_value.push_back(inhistory_value[hindex]);
   ^~~~~~~~~~~~~~~
   history_column
callbacks.cc:19614:3: error: 'inhistory_protected' was not declared in this scope
   inhistory_protected.erase(inhistory_protected.begin() + hindex);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19614:3: note: suggested alternative: 'history_protected'
   inhistory_protected.erase(inhistory_protected.begin() + hindex);
   ^~~~~~~~~~~~~~~~~~~
   history_protected
callbacks.cc:19615:3: error: 'inhistory_type' was not declared in this scope
   inhistory_type.erase(inhistory_type.begin() + hindex);
   ^~~~~~~~~~~~~~
callbacks.cc:19615:3: note: suggested alternative: 'history_copy'
   inhistory_type.erase(inhistory_type.begin() + hindex);
   ^~~~~~~~~~~~~~
   history_copy
callbacks.cc:19616:3: error: 'inhistory_value' was not declared in this scope
   inhistory_value.erase(inhistory_value.begin() + hindex);
   ^~~~~~~~~~~~~~~
callbacks.cc:19616:3: note: suggested alternative: 'history_column'
   inhistory_value.erase(inhistory_value.begin() + hindex);
   ^~~~~~~~~~~~~~~
   history_column
callbacks.cc: In function 'void on_popup_menu_item_history_delete_activate(GtkMenuItem*, gpointer)':
callbacks.cc:19637:2: error: 'vector' was not declared in this scope
  vector<int> indexes;
  ^~~~~~
callbacks.cc:19637:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19637:9: error: expected primary-expression before 'int'
  vector<int> indexes;
         ^~~
callbacks.cc:369:35: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^
callbacks.cc:369:35: note: in definition of macro 'HISTORY_IS_EXPRESSION'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^~~~~~~~~~~~~~
callbacks.cc:369:35: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^
callbacks.cc:369:35: note: in definition of macro 'HISTORY_IS_EXPRESSION'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^~~~~~~~~~~~~~
callbacks.cc:19645:39: error: 'indexes' was not declared in this scope
    if(HISTORY_IS_EXPRESSION(hindex2)) indexes.push_back(hindex2 - 1);
                                       ^~~~~~~
callbacks.cc:19645:39: note: suggested alternative: 'index'
    if(HISTORY_IS_EXPRESSION(hindex2)) indexes.push_back(hindex2 - 1);
                                       ^~~~~~~
                                       index
callbacks.cc:19646:4: error: 'indexes' was not declared in this scope
    indexes.push_back(hindex2);
    ^~~~~~~
callbacks.cc:19646:4: note: suggested alternative: 'index'
    indexes.push_back(hindex2);
    ^~~~~~~
    index
callbacks.cc:370:30: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:370:30: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:19648:55: error: 'inhistory' was not declared in this scope
    if(hindex2 + 1 != hindex && (size_t) hindex2 + 1 < inhistory.size() && inhistory_type[hindex2 + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                       ^~~~~~~~~
callbacks.cc:19648:55: note: suggested alternative: 'show_history'
    if(hindex2 + 1 != hindex && (size_t) hindex2 + 1 < inhistory.size() && inhistory_type[hindex2 + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                       ^~~~~~~~~
                                                       show_history
callbacks.cc:19648:75: error: 'inhistory_type' was not declared in this scope
    if(hindex2 + 1 != hindex && (size_t) hindex2 + 1 < inhistory.size() && inhistory_type[hindex2 + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                                           ^~~~~~~~~~~~~~
callbacks.cc:19648:75: note: suggested alternative: 'history_copy'
    if(hindex2 + 1 != hindex && (size_t) hindex2 + 1 < inhistory.size() && inhistory_type[hindex2 + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                                           ^~~~~~~~~~~~~~
                                                                           history_copy
callbacks.cc:369:35: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^
callbacks.cc:369:35: note: in definition of macro 'HISTORY_IS_EXPRESSION'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^~~~~~~~~~~~~~
callbacks.cc:19657:22: note: in expansion of macro 'ITEM_IS_EXPRESSION'
   if(hindex >= 0 && (ITEM_IS_EXPRESSION(hindex) || inhistory_type[hindex] == QALCULATE_HISTORY_BOOKMARK)) {
                      ^
callbacks.cc:369:35: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^
callbacks.cc:369:35: note: in definition of macro 'HISTORY_IS_EXPRESSION'
 #define HISTORY_IS_EXPRESSION(x) (inhistory_type[x] == QALCULATE_HISTORY_EXPRESSION || inhistory_type[x] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[x] == QALCULATE_HISTORY_REGISTER_MOVED)
                                   ^~~~~~~~~~~~~~
callbacks.cc:19657:22: note: in expansion of macro 'ITEM_IS_EXPRESSION'
   if(hindex >= 0 && (ITEM_IS_EXPRESSION(hindex) || inhistory_type[hindex] == QALCULATE_HISTORY_BOOKMARK)) {
                      ^
callbacks.cc:19672:71: error: 'indexes' was not declared in this scope
       if(inhistory_type[hindex2] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex2 - 1);
                                                                       ^~~~~~~
callbacks.cc:19672:71: note: suggested alternative: 'index'
       if(inhistory_type[hindex2] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex2 - 1);
                                                                       ^~~~~~~
                                                                       index
callbacks.cc:19673:7: error: 'indexes' was not declared in this scope
       indexes.push_back(hindex2);
       ^~~~~~~
callbacks.cc:19673:7: note: suggested alternative: 'index'
       indexes.push_back(hindex2);
       ^~~~~~~
       index
callbacks.cc:19680:38: error: 'indexes' was not declared in this scope
    if(HISTORY_IS_EXPRESSION(hindex)) indexes.push_back(hindex - 1);
                                      ^~~~~~~
callbacks.cc:19680:38: note: suggested alternative: 'index'
    if(HISTORY_IS_EXPRESSION(hindex)) indexes.push_back(hindex - 1);
                                      ^~~~~~~
                                      index
callbacks.cc:19698:7: error: 'inhistory_type' was not declared in this scope
    if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
       ^~~~~~~~~~~~~~
callbacks.cc:19698:7: note: suggested alternative: 'history_copy'
    if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
       ^~~~~~~~~~~~~~
       history_copy
callbacks.cc:19698:67: error: 'indexes' was not declared in this scope
    if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
                                                                   ^~~~~~~
callbacks.cc:19698:67: note: suggested alternative: 'index'
    if(inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION) indexes.push_back(hindex - 1);
                                                                   ^~~~~~~
                                                                   index
callbacks.cc:19699:4: error: 'indexes' was not declared in this scope
    indexes.push_back(hindex);
    ^~~~~~~
callbacks.cc:19699:4: note: suggested alternative: 'index'
    indexes.push_back(hindex);
    ^~~~~~~
    index
callbacks.cc:370:30: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:370:30: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:19701:42: error: 'inhistory' was not declared in this scope
    if(!del_prev && (size_t) hindex + 1 < inhistory.size() && inhistory_type[hindex + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                          ^~~~~~~~~
callbacks.cc:19701:42: note: suggested alternative: 'show_history'
    if(!del_prev && (size_t) hindex + 1 < inhistory.size() && inhistory_type[hindex + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                          ^~~~~~~~~
                                          show_history
callbacks.cc:19701:62: error: 'inhistory_type' was not declared in this scope
    if(!del_prev && (size_t) hindex + 1 < inhistory.size() && inhistory_type[hindex + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                              ^~~~~~~~~~~~~~
callbacks.cc:19701:62: note: suggested alternative: 'history_copy'
    if(!del_prev && (size_t) hindex + 1 < inhistory.size() && inhistory_type[hindex + 1] == QALCULATE_HISTORY_BOOKMARK) {
                                                              ^~~~~~~~~~~~~~
                                                              history_copy
callbacks.cc:19711:2: error: 'unordered_map' was not declared in this scope
  unordered_map<int, int> new_indexes;
  ^~~~~~~~~~~~~
callbacks.cc:19711:2: note: suggested alternative:
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
callbacks.cc:19711:16: error: expected primary-expression before 'int'
  unordered_map<int, int> new_indexes;
                ^~~
callbacks.cc:19714:24: error: 'indexes' was not declared in this scope
  for(size_t i = 0; i < indexes.size(); i++) {
                        ^~~~~~~
callbacks.cc:19714:24: note: suggested alternative: 'index'
  for(size_t i = 0; i < indexes.size(); i++) {
                        ^~~~~~~
                        index
callbacks.cc:19718:5: error: 'new_indexes' was not declared in this scope
     new_indexes[hindex2] = hindex2 - n;
     ^~~~~~~~~~~
callbacks.cc:19718:5: note: suggested alternative: 'undo_index'
     new_indexes[hindex2] = hindex2 - n;
     ^~~~~~~~~~~
     undo_index
callbacks.cc:19725:41: error: 'inhistory' was not declared in this scope
  while(hindex2 >= 0 && hindex2 < (gint) inhistory.size()) {
                                         ^~~~~~~~~
callbacks.cc:19725:41: note: suggested alternative: 'show_history'
  while(hindex2 >= 0 && hindex2 < (gint) inhistory.size()) {
                                         ^~~~~~~~~
                                         show_history
callbacks.cc:19726:3: error: 'new_indexes' was not declared in this scope
   new_indexes[hindex2] = hindex2 - n;
   ^~~~~~~~~~~
callbacks.cc:19726:3: note: suggested alternative: 'undo_index'
   new_indexes[hindex2] = hindex2 - n;
   ^~~~~~~~~~~
   undo_index
callbacks.cc:19729:12: error: 'indexes' was not declared in this scope
  hindex2 = indexes[0];
            ^~~~~~~
callbacks.cc:19729:12: note: suggested alternative: 'index'
  hindex2 = indexes[0];
            ^~~~~~~
            index
callbacks.cc:19735:57: error: 'new_indexes' was not declared in this scope
     gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_indexes[hindex], -1);
                                                         ^~~~~~~~~~~
callbacks.cc:19735:57: note: suggested alternative: 'undo_index'
     gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_indexes[hindex], -1);
                                                         ^~~~~~~~~~~
                                                         undo_index
callbacks.cc:19741:3: error: 'inhistory' was not declared in this scope
   inhistory.erase(inhistory.begin() + hindex);
   ^~~~~~~~~
callbacks.cc:19741:3: note: suggested alternative: 'show_history'
   inhistory.erase(inhistory.begin() + hindex);
   ^~~~~~~~~
   show_history
callbacks.cc:19742:3: error: 'inhistory_protected' was not declared in this scope
   inhistory_protected.erase(inhistory_protected.begin() + hindex);
   ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19742:3: note: suggested alternative: 'history_protected'
   inhistory_protected.erase(inhistory_protected.begin() + hindex);
   ^~~~~~~~~~~~~~~~~~~
   history_protected
callbacks.cc:19743:3: error: 'inhistory_type' was not declared in this scope
   inhistory_type.erase(inhistory_type.begin() + hindex);
   ^~~~~~~~~~~~~~
callbacks.cc:19743:3: note: suggested alternative: 'history_copy'
   inhistory_type.erase(inhistory_type.begin() + hindex);
   ^~~~~~~~~~~~~~
   history_copy
callbacks.cc:19744:3: error: 'inhistory_value' was not declared in this scope
   inhistory_value.erase(inhistory_value.begin() + hindex);
   ^~~~~~~~~~~~~~~
callbacks.cc:19744:3: note: suggested alternative: 'history_column'
   inhistory_value.erase(inhistory_value.begin() + hindex);
   ^~~~~~~~~~~~~~~
   history_column
callbacks.cc:19747:28: error: 'inhistory' was not declared in this scope
  current_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
callbacks.cc:19747:28: note: suggested alternative: 'show_history'
  current_inhistory_index = inhistory.size() - 1;
                            ^~~~~~~~~
                            show_history
callbacks.cc: At global scope:
callbacks.cc:19768:28: error: 'string' was not declared in this scope
 bool find_history_bookmark(string str, GtkTreeIter *iter2) {
                            ^~~~~~
callbacks.cc:19768:28: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19768:52: error: expected primary-expression before '*' token
 bool find_history_bookmark(string str, GtkTreeIter *iter2) {
                                                    ^
callbacks.cc:19768:53: error: 'iter2' was not declared in this scope
 bool find_history_bookmark(string str, GtkTreeIter *iter2) {
                                                     ^~~~~
callbacks.cc:19768:58: error: expression list treated as compound expression in initializer [-fpermissive]
 bool find_history_bookmark(string str, GtkTreeIter *iter2) {
                                                          ^
callbacks.cc: In function 'void goto_history_bookmark(GtkMenuItem*, gpointer)':
callbacks.cc:19783:2: error: 'string' was not declared in this scope
  string str = gtk_menu_item_get_label(w);
  ^~~~~~
callbacks.cc:19783:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19785:27: error: 'str' was not declared in this scope
  if(find_history_bookmark(str, &iter)) {
                           ^~~
callbacks.cc:19785:27: note: suggested alternative: 'iter'
  if(find_history_bookmark(str, &iter)) {
                           ^~~
                           iter
callbacks.cc:19785:37: error: 'find_history_bookmark' cannot be used as a function
  if(find_history_bookmark(str, &iter)) {
                                     ^
callbacks.cc: At global scope:
callbacks.cc:19791:30: error: variable or field 'remove_history_bookmark' declared void
 void remove_history_bookmark(string str) {
                              ^~~~~~
callbacks.cc:19791:30: error: 'string' was not declared in this scope
callbacks.cc:19791:30: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19827:27: error: variable or field 'add_history_bookmark' declared void
 void add_history_bookmark(string history_message) {
                           ^~~~~~
callbacks.cc:19827:27: error: 'string' was not declared in this scope
callbacks.cc:19827:27: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_popup_menu_item_history_bookmark_activate(GtkMenuItem*, gpointer)':
callbacks.cc:19903:22: error: 'inhistory_type' was not declared in this scope
    if(hindex >= 0 && inhistory_type[hindex] == QALCULATE_HISTORY_BOOKMARK) break;
                      ^~~~~~~~~~~~~~
callbacks.cc:19903:22: note: suggested alternative: 'history_copy'
    if(hindex >= 0 && inhistory_type[hindex] == QALCULATE_HISTORY_BOOKMARK) break;
                      ^~~~~~~~~~~~~~
                      history_copy
callbacks.cc:19910:8: error: 'vector' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
        ^~~~~~
callbacks.cc:19910:8: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19910:15: error: 'string' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
               ^~~~~~
callbacks.cc:19910:15: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19910:24: error: '::iterator' has not been declared
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                        ^~~~~~~~
callbacks.cc:19910:24: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:19910:65: error: 'it' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                 ^~
callbacks.cc:19910:65: note: suggested alternative: 'int'
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                 ^~
                                                                 int
callbacks.cc:19910:71: error: 'history_bookmarks' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                       ^~~~~~~~~~~~~~~~~
callbacks.cc:19910:71: note: suggested alternative: 'goto_history_bookmark'
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                       ^~~~~~~~~~~~~~~~~
                                                                       goto_history_bookmark
callbacks.cc:19911:25: error: 'inhistory' was not declared in this scope
     if(equalsIgnoreCase(inhistory[hindex], *it)) {
                         ^~~~~~~~~
callbacks.cc:19911:25: note: suggested alternative: 'show_history'
     if(equalsIgnoreCase(inhistory[hindex], *it)) {
                         ^~~~~~~~~
                         show_history
callbacks.cc:19916:4: error: 'inhistory' was not declared in this scope
    inhistory.erase(inhistory.begin() + hindex);
    ^~~~~~~~~
callbacks.cc:19916:4: note: suggested alternative: 'show_history'
    inhistory.erase(inhistory.begin() + hindex);
    ^~~~~~~~~
    show_history
callbacks.cc:19917:4: error: 'inhistory_protected' was not declared in this scope
    inhistory_protected.erase(inhistory_protected.begin() + hindex);
    ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19917:4: note: suggested alternative: 'history_protected'
    inhistory_protected.erase(inhistory_protected.begin() + hindex);
    ^~~~~~~~~~~~~~~~~~~
    history_protected
callbacks.cc:19918:4: error: 'inhistory_type' was not declared in this scope
    inhistory_type.erase(inhistory_type.begin() + hindex);
    ^~~~~~~~~~~~~~
callbacks.cc:19918:4: note: suggested alternative: 'history_copy'
    inhistory_type.erase(inhistory_type.begin() + hindex);
    ^~~~~~~~~~~~~~
    history_copy
callbacks.cc:19919:4: error: 'inhistory_value' was not declared in this scope
    inhistory_value.erase(inhistory_value.begin() + hindex);
    ^~~~~~~~~~~~~~~
callbacks.cc:19919:4: note: suggested alternative: 'history_column'
    inhistory_value.erase(inhistory_value.begin() + hindex);
    ^~~~~~~~~~~~~~~
    history_column
callbacks.cc:19926:6: error: 'string' was not declared in this scope
      string str = gstr;
      ^~~~~~
callbacks.cc:19926:6: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19927:17: error: 'str' was not declared in this scope
      size_t i = str.rfind("<span size=\"small\"><sup> ");
                 ^~~
callbacks.cc:19927:17: note: suggested alternative: 'gstr'
      size_t i = str.rfind("<span size=\"small\"><sup> ");
                 ^~~
                 gstr
callbacks.cc:19928:14: error: 'string' is not a class, namespace, or enumeration
      if(i == string::npos) i = str.rfind("<span size=\"x-small\"><sup> ");
              ^~~~~~
callbacks.cc:19929:14: error: 'string' is not a class, namespace, or enumeration
      if(i != string::npos) str = str.substr(0, i);
              ^~~~~~
callbacks.cc:19944:3: error: 'string' was not declared in this scope
   string history_message;
   ^~~~~~
callbacks.cc:19944:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:19960:11: error: expected ';' before 'history_message'
    string history_message = gtk_entry_get_text(GTK_ENTRY(entry));
           ^~~~~~~~~~~~~~~
callbacks.cc:19961:22: error: 'history_message' was not declared in this scope
    remove_blank_ends(history_message);
                      ^~~~~~~~~~~~~~~
callbacks.cc:19961:22: note: suggested alternative: 'show_message'
    remove_blank_ends(history_message);
                      ^~~~~~~~~~~~~~~
                      show_message
callbacks.cc:19963:8: error: 'vector' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
        ^~~~~~
callbacks.cc:19963:8: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:19963:24: error: '::iterator' has not been declared
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                        ^~~~~~~~
callbacks.cc:19963:24: note: suggested alternatives:
In file included from /usr/include/g++/bits/stl_algobase.h:65:0,
                 from /usr/include/g++/bits/char_traits.h:39,
                 from /usr/include/g++/ios:40,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
     struct iterator
            ^~~~~~~~
/usr/include/g++/bits/stl_iterator_base_types.h:118:12: note:   'std::iterator'
callbacks.cc:19963:65: error: 'it' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                 ^~
callbacks.cc:19963:65: note: suggested alternative: 'int'
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                 ^~
                                                                 int
callbacks.cc:19963:71: error: 'history_bookmarks' was not declared in this scope
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                       ^~~~~~~~~~~~~~~~~
callbacks.cc:19963:71: note: suggested alternative: 'goto_history_bookmark'
    for(vector<string>::iterator it = history_bookmarks.begin(); it != history_bookmarks.end(); ++it) {
                                                                       ^~~~~~~~~~~~~~~~~
                                                                       goto_history_bookmark
callbacks.cc:19971:6: error: 'remove_history_bookmark' was not declared in this scope
      remove_history_bookmark(history_message);
      ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:19971:6: note: suggested alternative: 'goto_history_bookmark'
      remove_history_bookmark(history_message);
      ^~~~~~~~~~~~~~~~~~~~~~~
      goto_history_bookmark
callbacks.cc:19977:5: error: 'add_history_bookmark' was not declared in this scope
     add_history_bookmark(history_message);
     ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:19977:5: note: suggested alternative: 'find_history_bookmark'
     add_history_bookmark(history_message);
     ^~~~~~~~~~~~~~~~~~~~
     find_history_bookmark
callbacks.cc: In function 'bool history_protected_by_bookmark(size_t)':
callbacks.cc:19984:5: error: 'inhistory_type' was not declared in this scope
  if(inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK) return true;
     ^~~~~~~~~~~~~~
callbacks.cc:19984:5: note: suggested alternative: 'history_copy'
  if(inhistory_type[hi] == QALCULATE_HISTORY_BOOKMARK) return true;
     ^~~~~~~~~~~~~~
     history_copy
callbacks.cc:19985:17: error: 'inhistory_type' was not declared in this scope
  while(hi + 1 < inhistory_type.size() && HISTORY_NOT_EXPRESSION(hi)) {
                 ^~~~~~~~~~~~~~
callbacks.cc:19985:17: note: suggested alternative: 'history_copy'
  while(hi + 1 < inhistory_type.size() && HISTORY_NOT_EXPRESSION(hi)) {
                 ^~~~~~~~~~~~~~
                 history_copy
callbacks.cc:19989:14: error: 'inhistory_type' was not declared in this scope
  if(hi + 1 < inhistory_type.size() && inhistory_type[hi + 1] == QALCULATE_HISTORY_BOOKMARK) return true;
              ^~~~~~~~~~~~~~
callbacks.cc:19989:14: note: suggested alternative: 'history_copy'
  if(hi + 1 < inhistory_type.size() && inhistory_type[hi + 1] == QALCULATE_HISTORY_BOOKMARK) return true;
              ^~~~~~~~~~~~~~
              history_copy
callbacks.cc: In function 'bool history_protected(size_t)':
callbacks.cc:19993:5: error: 'inhistory_protected' was not declared in this scope
  if(inhistory_protected[hi]) return true;
     ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19993:5: note: suggested alternative: 'history_protected'
  if(inhistory_protected[hi]) return true;
     ^~~~~~~~~~~~~~~~~~~
     history_protected
callbacks.cc:19994:17: error: 'inhistory_type' was not declared in this scope
  while(hi + 1 < inhistory_type.size() && HISTORY_NOT_EXPRESSION(hi) && inhistory_type[hi] != QALCULATE_HISTORY_OLD) {
                 ^~~~~~~~~~~~~~
callbacks.cc:19994:17: note: suggested alternative: 'history_copy'
  while(hi + 1 < inhistory_type.size() && HISTORY_NOT_EXPRESSION(hi) && inhistory_type[hi] != QALCULATE_HISTORY_OLD) {
                 ^~~~~~~~~~~~~~
                 history_copy
callbacks.cc:19997:9: error: 'inhistory_protected' was not declared in this scope
  return inhistory_protected[hi];
         ^~~~~~~~~~~~~~~~~~~
callbacks.cc:19997:9: note: suggested alternative: 'history_protected'
  return inhistory_protected[hi];
         ^~~~~~~~~~~~~~~~~~~
         history_protected
callbacks.cc: In function 'void on_popup_menu_item_history_protect_toggled(GtkCheckMenuItem*, gpointer)':
callbacks.cc:20014:38: error: 'inhistory_type' was not declared in this scope
   while(hi >= 0 && (size_t) hi + 1 < inhistory_type.size() && ITEM_NOT_EXPRESSION(hi)) {
                                      ^~~~~~~~~~~~~~
callbacks.cc:20014:38: note: suggested alternative: 'history_copy'
   while(hi >= 0 && (size_t) hi + 1 < inhistory_type.size() && ITEM_NOT_EXPRESSION(hi)) {
                                      ^~~~~~~~~~~~~~
                                      history_copy
callbacks.cc:370:30: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:370:30: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:20027:12: error: 'inhistory_protected' was not declared in this scope
    if(b != inhistory_protected[hi]) {
            ^~~~~~~~~~~~~~~~~~~
callbacks.cc:20027:12: note: suggested alternative: 'history_protected'
    if(b != inhistory_protected[hi]) {
            ^~~~~~~~~~~~~~~~~~~
            history_protected
callbacks.cc:20031:5: error: 'string' was not declared in this scope
     string str = gstr;
     ^~~~~~
callbacks.cc:20031:5: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20032:27: error: 'inhistory_type' was not declared in this scope
     if((size_t) hi + 1 >= inhistory_type.size() || inhistory_type[hi + 1] != QALCULATE_HISTORY_BOOKMARK) {
                           ^~~~~~~~~~~~~~
callbacks.cc:20032:27: note: suggested alternative: 'history_copy'
     if((size_t) hi + 1 >= inhistory_type.size() || inhistory_type[hi + 1] != QALCULATE_HISTORY_BOOKMARK) {
                           ^~~~~~~~~~~~~~
                           history_copy
callbacks.cc:20034:10: error: 'str' was not declared in this scope
       if(str.find("<span size=\"x-small\"><sup> ") == string::npos && str.find("<span size=\"small\"><sup> ") == string::npos) {
          ^~~
callbacks.cc:20034:10: note: suggested alternative: 'gstr'
       if(str.find("<span size=\"x-small\"><sup> ") == string::npos && str.find("<span size=\"small\"><sup> ") == string::npos) {
          ^~~
          gstr
callbacks.cc:20034:55: error: 'string' is not a class, namespace, or enumeration
       if(str.find("<span size=\"x-small\"><sup> ") == string::npos && str.find("<span size=\"small\"><sup> ") == string::npos) {
                                                       ^~~~~~
callbacks.cc:20034:114: error: 'string' is not a class, namespace, or enumeration
       if(str.find("<span size=\"x-small\"><sup> ") == string::npos && str.find("<span size=\"small\"><sup> ") == string::npos) {
                                                                                                                  ^~~~~~
callbacks.cc:20039:18: error: 'str' was not declared in this scope
       size_t i = str.rfind("<span size=\"small\"><sup> ");
                  ^~~
callbacks.cc:20039:18: note: suggested alternative: 'gstr'
       size_t i = str.rfind("<span size=\"small\"><sup> ");
                  ^~~
                  gstr
callbacks.cc:20040:15: error: 'string' is not a class, namespace, or enumeration
       if(i == string::npos) i = str.rfind("<span size=\"x-small\"><sup> ");
               ^~~~~~
callbacks.cc:20041:15: error: 'string' is not a class, namespace, or enumeration
       if(i != string::npos) str = str.substr(0, i);
               ^~~~~~
callbacks.cc:20043:58: error: 'str' was not declared in this scope
      gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, str.c_str(), -1);
                                                          ^~~
callbacks.cc:20043:58: note: suggested alternative: 'gstr'
      gtk_list_store_set(GTK_LIST_STORE(model), &iter, 0, str.c_str(), -1);
                                                          ^~~
                                                          gstr
callbacks.cc: In function 'void on_popup_menu_history_bookmark_update_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20054:2: error: 'remove_history_bookmark' was not declared in this scope
  remove_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:20054:2: note: suggested alternative: 'goto_history_bookmark'
  remove_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~~~~
  goto_history_bookmark
callbacks.cc:20055:2: error: 'add_history_bookmark' was not declared in this scope
  add_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:20055:2: note: suggested alternative: 'find_history_bookmark'
  add_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~
  find_history_bookmark
callbacks.cc: In function 'void on_popup_menu_history_bookmark_delete_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20059:2: error: 'remove_history_bookmark' was not declared in this scope
  remove_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:20059:2: note: suggested alternative: 'goto_history_bookmark'
  remove_history_bookmark(gtk_menu_item_get_label(GTK_MENU_ITEM(data)));
  ^~~~~~~~~~~~~~~~~~~~~~~
  goto_history_bookmark
callbacks.cc: In function 'gboolean on_menu_history_bookmark_popup_menu(GtkWidget*, gpointer)':
callbacks.cc:20067:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:20067:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:20067:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:20067:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:20067:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:20068:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:20068:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:20069:144: error: 'inhistory_type' was not declared in this scope
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "popup_menu_history_bookmark_update")), selected_rows.size() == 1 && inhistory_type[selected_rows[0]] != QALCULATE_HISTORY_OLD);
                                                                                                                                                ^~~~~~~~~~~~~~
callbacks.cc:20069:144: note: suggested alternative: 'history_copy'
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "popup_menu_history_bookmark_update")), selected_rows.size() == 1 && inhistory_type[selected_rows[0]] != QALCULATE_HISTORY_OLD);
                                                                                                                                                ^~~~~~~~~~~~~~
                                                                                                                                                history_copy
callbacks.cc: In function 'void update_historyview_popup()':
callbacks.cc:20093:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:20093:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:20093:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:20093:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:20093:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:20094:15: error: expected primary-expression before '>' token
  vector<size_t> selected_indeces;
               ^
callbacks.cc:20094:17: error: 'selected_indeces' was not declared in this scope
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
callbacks.cc:20094:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
                 selected_unit
callbacks.cc:20095:9: error: expected primary-expression before 'int'
  vector<int> selected_index_type;
         ^~~
callbacks.cc:20097:64: error: 'selected_index_type' was not declared in this scope
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
                                                                ^~~~~~~~~~~~~~~~~~~
callbacks.cc:20097:64: note: suggested alternative: 'selected_unit'
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
                                                                ^~~~~~~~~~~~~~~~~~~
                                                                selected_unit
callbacks.cc:20097:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:20097:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc:370:30: error: 'inhistory_type' was not declared in this scope
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:370:30: note: suggested alternative: 'history_copy'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^
callbacks.cc:370:30: note: in definition of macro 'HISTORY_IS_PARSE'
 #define HISTORY_IS_PARSE(x) (inhistory_type[x] == QALCULATE_HISTORY_PARSE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_APPROXIMATE || inhistory_type[x] == QALCULATE_HISTORY_PARSE_WITHEQUALS)
                              ^~~~~~~~~~~~~~
callbacks.cc:20112:146: error: 'inhistory_type' was not declared in this scope
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "popup_menu_item_history_copy_text")), selected_indeces.size() == 1 && inhistory_type[hi] != QALCULATE_HISTORY_BOOKMARK);
                                                                                                                                                  ^~~~~~~~~~~~~~
callbacks.cc:20112:146: note: suggested alternative: 'history_copy'
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(main_builder, "popup_menu_item_history_copy_text")), selected_indeces.size() == 1 && inhistory_type[hi] != QALCULATE_HISTORY_BOOKMARK);
                                                                                                                                                  ^~~~~~~~~~~~~~
                                                                                                                                                  history_copy
callbacks.cc:20139:24: error: 'history_bookmarks' was not declared in this scope
  for(size_t i = 0; i < history_bookmarks.size(); i++) {
                        ^~~~~~~~~~~~~~~~~
callbacks.cc:20139:24: note: suggested alternative: 'goto_history_bookmark'
  for(size_t i = 0; i < history_bookmarks.size(); i++) {
                        ^~~~~~~~~~~~~~~~~
                        goto_history_bookmark
callbacks.cc:20144:5: error: 'history_bookmarks' was not declared in this scope
  if(history_bookmarks.empty()) {MENU_NO_ITEMS(_("No items found"))}
     ^~~~~~~~~~~~~~~~~
callbacks.cc:20144:5: note: suggested alternative: 'goto_history_bookmark'
  if(history_bookmarks.empty()) {MENU_NO_ITEMS(_("No items found"))}
     ^~~~~~~~~~~~~~~~~
     goto_history_bookmark
callbacks.cc: In function 'void on_historyview_selection_changed(GtkTreeSelection*, gpointer)':
callbacks.cc:20281:2: error: 'vector' was not declared in this scope
  vector<size_t> selected_rows;
  ^~~~~~
callbacks.cc:20281:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:20281:15: error: expected primary-expression before '>' token
  vector<size_t> selected_rows;
               ^
callbacks.cc:20281:17: error: 'selected_rows' was not declared in this scope
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
callbacks.cc:20281:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_rows;
                 ^~~~~~~~~~~~~
                 selected_unit
callbacks.cc:20282:15: error: expected primary-expression before '>' token
  vector<size_t> selected_indeces;
               ^
callbacks.cc:20282:17: error: 'selected_indeces' was not declared in this scope
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
callbacks.cc:20282:17: note: suggested alternative: 'selected_unit'
  vector<size_t> selected_indeces;
                 ^~~~~~~~~~~~~~~~
                 selected_unit
callbacks.cc:20283:9: error: expected primary-expression before 'int'
  vector<int> selected_index_type;
         ^~~
callbacks.cc:20284:64: error: 'selected_index_type' was not declared in this scope
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
                                                                ^~~~~~~~~~~~~~~~~~~
callbacks.cc:20284:64: note: suggested alternative: 'selected_unit'
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
                                                                ^~~~~~~~~~~~~~~~~~~
                                                                selected_unit
callbacks.cc:20284:2: error: 'process_history_selection' was not declared in this scope
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:20284:2: note: suggested alternative: 'focus_keeping_selection'
  process_history_selection(&selected_rows, &selected_indeces, &selected_index_type);
  ^~~~~~~~~~~~~~~~~~~~~~~~~
  focus_keeping_selection
callbacks.cc: In function 'void on_historyview_row_activated(GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer)':
callbacks.cc:20298:10: error: 'inhistory_type' was not declared in this scope
   switch(inhistory_type[(size_t) hindex]) {
          ^~~~~~~~~~~~~~
callbacks.cc:20298:10: note: suggested alternative: 'history_copy'
   switch(inhistory_type[(size_t) hindex]) {
          ^~~~~~~~~~~~~~
          history_copy
callbacks.cc:20304:18: error: 'inhistory' was not declared in this scope
      insert_text(inhistory[(size_t) hindex - 1].c_str());
                  ^~~~~~~~~
callbacks.cc:20304:18: note: suggested alternative: 'show_history'
      insert_text(inhistory[(size_t) hindex - 1].c_str());
                  ^~~~~~~~~
                  show_history
callbacks.cc:20317:18: error: 'inhistory' was not declared in this scope
      insert_text(inhistory[(size_t) hindex].c_str());
                  ^~~~~~~~~
callbacks.cc:20317:18: note: suggested alternative: 'show_history'
      insert_text(inhistory[(size_t) hindex].c_str());
                  ^~~~~~~~~
                  show_history
callbacks.cc:20326:3: error: 'string' was not declared in this scope
   string str = ename->name;
   ^~~~~~
callbacks.cc:20326:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20327:3: error: 'str' was not declared in this scope
   str += "(";
   ^~~
callbacks.cc:20327:3: note: suggested alternative: 'iter'
   str += "(";
   ^~~
   iter
callbacks.cc:20329:10: error: 'print_with_evalops' was not declared in this scope
   str += print_with_evalops(nr);
          ^~~~~~~~~~~~~~~~~~
callbacks.cc:20329:10: note: suggested alternative: 'print_auto_calc'
   str += print_with_evalops(nr);
          ^~~~~~~~~~~~~~~~~~
          print_auto_calc
callbacks.cc:20340:21: error: 'inhistory_type' was not declared in this scope
   if(hindex > 0 && (inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION || inhistory_type[hindex] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[hindex] == QALCULATE_HISTORY_REGISTER_MOVED)) hindex--;
                     ^~~~~~~~~~~~~~
callbacks.cc:20340:21: note: suggested alternative: 'history_copy'
   if(hindex > 0 && (inhistory_type[hindex] == QALCULATE_HISTORY_TRANSFORMATION || inhistory_type[hindex] == QALCULATE_HISTORY_RPN_OPERATION || inhistory_type[hindex] == QALCULATE_HISTORY_REGISTER_MOVED)) hindex--;
                     ^~~~~~~~~~~~~~
                     history_copy
callbacks.cc:20342:6: error: 'inhistory_type' was not declared in this scope
   if(inhistory_type[hindex] != QALCULATE_HISTORY_WARNING && inhistory_type[hindex] != QALCULATE_HISTORY_ERROR && inhistory_type[hindex] != QALCULATE_HISTORY_BOOKMARK) {
      ^~~~~~~~~~~~~~
callbacks.cc:20342:6: note: suggested alternative: 'history_copy'
   if(inhistory_type[hindex] != QALCULATE_HISTORY_WARNING && inhistory_type[hindex] != QALCULATE_HISTORY_ERROR && inhistory_type[hindex] != QALCULATE_HISTORY_BOOKMARK) {
      ^~~~~~~~~~~~~~
      history_copy
callbacks.cc:20345:17: error: 'inhistory' was not declared in this scope
     insert_text(inhistory[(size_t) hindex].c_str());
                 ^~~~~~~~~
callbacks.cc:20345:17: note: suggested alternative: 'show_history'
     insert_text(inhistory[(size_t) hindex].c_str());
                 ^~~~~~~~~
                 show_history
callbacks.cc:20349:17: error: 'inhistory' was not declared in this scope
     insert_text(inhistory[(size_t) hindex].c_str());
                 ^~~~~~~~~
callbacks.cc:20349:17: note: suggested alternative: 'show_history'
     insert_text(inhistory[(size_t) hindex].c_str());
                 ^~~~~~~~~
                 show_history
callbacks.cc: In function 'void on_menu_item_convert_to_best_unit_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20388:40: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_CONVERT_OPTIMAL);
                                        ^
callbacks.cc: In function 'void on_menu_item_convert_to_base_units_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20391:37: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_CONVERT_BASE);
                                     ^
callbacks.cc: In function 'void on_menu_item_insert_date_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20402:2: error: 'string' was not declared in this scope
  string str = get_selected_expression_text();
  ^~~~~~
callbacks.cc:20402:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20403:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void on_menu_item_insert_matrix_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20433:2: error: 'string' was not declared in this scope
  string str = get_selected_expression_text();
  ^~~~~~
callbacks.cc:20433:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20434:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void on_menu_item_insert_vector_activate(GtkMenuItem*, gpointer)':
callbacks.cc:20448:2: error: 'string' was not declared in this scope
  string str = get_selected_expression_text();
  ^~~~~~
callbacks.cc:20448:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20449:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void menu_to_rectangular(GtkMenuItem*, gpointer)':
callbacks.cc:20896:29: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EVAL);
                             ^
callbacks.cc: In function 'void menu_to_exponential(GtkMenuItem*, gpointer)':
callbacks.cc:20905:29: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EVAL);
                             ^
callbacks.cc: In function 'void menu_to_polar(GtkMenuItem*, gpointer)':
callbacks.cc:20914:29: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EVAL);
                             ^
callbacks.cc: In function 'void menu_to_angle(GtkMenuItem*, gpointer)':
callbacks.cc:20923:29: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EVAL);
                             ^
callbacks.cc: In function 'void update_mb_to_menu()':
callbacks.cc:20984:2: error: 'string' was not declared in this scope
  string s_cat;
  ^~~~~~
callbacks.cc:20984:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:20989:15: error: 's_cat' was not declared in this scope
  if(u_result) s_cat = u_result->category();
               ^~~~~
callbacks.cc:20989:15: note: suggested alternative: 'stat'
  if(u_result) s_cat = u_result->category();
               ^~~~~
               stat
callbacks.cc:20990:2: error: 'vector' was not declared in this scope
  vector<Unit*> to_us;
  ^~~~~~
callbacks.cc:20990:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:20990:13: error: expected primary-expression before '*' token
  vector<Unit*> to_us;
             ^
callbacks.cc:20990:14: error: expected primary-expression before '>' token
  vector<Unit*> to_us;
              ^
callbacks.cc:20990:16: error: 'to_us' was not declared in this scope
  vector<Unit*> to_us;
                ^~~~~
callbacks.cc:20990:16: note: suggested alternative: 'to_base'
  vector<Unit*> to_us;
                ^~~~~
                to_base
callbacks.cc:21009:62: error: 'string_is_less' cannot be used as a function
      if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                              ^
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:21019:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
callbacks.cc:21022:14: error: expected primary-expression before '*' token
   vector<Unit*> to_us2;
              ^
callbacks.cc:21022:15: error: expected primary-expression before '>' token
   vector<Unit*> to_us2;
               ^
callbacks.cc:21022:17: error: 'to_us2' was not declared in this scope
   vector<Unit*> to_us2;
                 ^~~~~~
callbacks.cc:21022:17: note: suggested alternative: 'to_base'
   vector<Unit*> to_us2;
                 ^~~~~~
                 to_base
In file included from callbacks.cc:29:0:
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:21060:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us[i]->title(true).c_str(), convert_to_unit, to_us[i])
    ^
interface.h:18:110: error: 'unordered_map' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:110: note: suggested alternative:
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                              ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
In file included from /usr/include/g++/unordered_map:48:0,
                 from callbacks.cc:35:
/usr/include/g++/bits/unordered_map.h:101:11: note:   'std::unordered_map'
     class unordered_map
           ^~~~~~~~~~~~~
In file included from callbacks.cc:29:0:
interface.h:18:141: error: expected primary-expression before '*' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                             ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:142: error: expected primary-expression before '>' token
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                              ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:145: error: '::const_iterator' has not been declared
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:145: note: suggested alternative: 'last_is_operator'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                 ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:211: error: 'it_flag' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:211: note: suggested alternative: 'to_float'
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                   ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
interface.h:18:222: error: 'flag_images' was not declared in this scope
 #define MENU_ITEM_WITH_POINTER_AND_FLAG(x,y,z) {GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); unordered_map<string, GdkPixbuf*>::const_iterator it_flag = flag_images.find(z->referenceName()); if(it_flag != flag_images.end()) {GtkWidget *image_w = gtk_image_new_from_pixbuf(it_flag->second); gtk_widget_set_size_request(image_w, 32, -1); gtk_container_add(GTK_CONTAINER(box), image_w);} gtk_container_add(GTK_CONTAINER(box), gtk_label_new(x)); item = gtk_menu_item_new(); gtk_container_add(GTK_CONTAINER(item), box); gtk_widget_show_all(item); g_signal_connect(G_OBJECT (item), "activate", G_CALLBACK(y), (gpointer) z); gtk_menu_shell_append(GTK_MENU_SHELL(sub), item);}
                                                                                                                                                                                                                              ^
callbacks.cc:21065:4: note: in expansion of macro 'MENU_ITEM_WITH_POINTER_AND_FLAG'
    MENU_ITEM_WITH_POINTER_AND_FLAG(to_us2[i]->title(true).c_str(), convert_to_unit, to_us2[i])
    ^
callbacks.cc:21067:13: error: 's_cat' was not declared in this scope
  } else if(!s_cat.empty()) {
             ^~~~~
callbacks.cc:21067:13: note: suggested alternative: 'stat'
  } else if(!s_cat.empty()) {
             ^~~~~
             stat
callbacks.cc:21074:63: error: 'string_is_less' cannot be used as a function
       if(string_is_less(u->title(true), to_us[i2]->title(true))) {
                                                               ^
callbacks.cc:21092:14: error: expected primary-expression before '*' token
   vector<Unit*> to_us2;
              ^
callbacks.cc:21092:15: error: expected primary-expression before '>' token
   vector<Unit*> to_us2;
               ^
callbacks.cc:21092:17: error: 'to_us2' was not declared in this scope
   vector<Unit*> to_us2;
                 ^~~~~~
callbacks.cc:21092:17: note: suggested alternative: 'to_base'
   vector<Unit*> to_us2;
                 ^~~~~~
                 to_base
callbacks.cc:21104:63: error: 'string_is_less' cannot be used as a function
      if(string_is_less(u->title(true), to_us2[i2]->title(true))) {
                                                               ^
callbacks.cc: In function 'void update_mb_units_menu()':
callbacks.cc:21138:17: error: 'recent_units' was not declared in this scope
  for(size_t i = recent_units.size(); i > 0; i--) {
                 ^~~~~~~~~~~~
callbacks.cc:21138:17: note: suggested alternative: 'edit_unit'
  for(size_t i = recent_units.size(); i > 0; i--) {
                 ^~~~~~~~~~~~
                 edit_unit
callbacks.cc: In function 'void update_mb_fx_menu()':
callbacks.cc:21219:17: error: 'recent_functions' was not declared in this scope
  for(size_t i = recent_functions.size(); i > 0; i--) {
                 ^~~~~~~~~~~~~~~~
callbacks.cc:21219:17: note: suggested alternative: 'edit_function'
  for(size_t i = recent_functions.size(); i > 0; i--) {
                 ^~~~~~~~~~~~~~~~
                 edit_function
callbacks.cc: In function 'void update_mb_pi_menu()':
callbacks.cc:21251:17: error: 'recent_variables' was not declared in this scope
  for(size_t i = recent_variables.size(); i > 0; i--) {
                 ^~~~~~~~~~~~~~~~
callbacks.cc:21251:17: note: suggested alternative: 'delete_variable'
  for(size_t i = recent_variables.size(); i > 0; i--) {
                 ^~~~~~~~~~~~~~~~
                 delete_variable
callbacks.cc: In function 'void on_menu_item_algebraic_mode_simplify_activate(GtkMenuItem*, gpointer)':
callbacks.cc:21401:92: error: 'string' was not declared in this scope
  gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(main_builder, "label_factorize")), (string("a(x)") + SUP_STRING("b")).c_str());
                                                                                            ^~~~~~
callbacks.cc:21401:92: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_menu_item_algebraic_mode_factorize_activate(GtkMenuItem*, gpointer)':
callbacks.cc:21414:92: error: 'string' was not declared in this scope
  gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(main_builder, "label_factorize")), (string("x+x") + SUP_STRING("b")).c_str());
                                                                                            ^~~~~~
callbacks.cc:21414:92: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc: In function 'void on_menu_item_import_definitions_activate(GtkMenuItem*, gpointer)':
callbacks.cc:21506:3: error: 'string' was not declared in this scope
   string homedir = buildPath(getLocalDataDir(), "definitions");
   ^~~~~~
callbacks.cc:21506:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:21507:20: error: 'homedir' was not declared in this scope
   recursiveMakeDir(homedir);
                    ^~~~~~~
callbacks.cc:21507:20: note: suggested alternative: 'mkdir'
   recursiveMakeDir(homedir);
                    ^~~~~~~
                    mkdir
callbacks.cc:21520:3: error: 'ifstream' was not declared in this scope
   ifstream source(from_file);
   ^~~~~~~~
callbacks.cc:21520:3: note: suggested alternative:
In file included from /usr/include/g++/ios:38:0,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/iosfwd:162:34: note:   'std::ifstream'
   typedef basic_ifstream<char>   ifstream;
                                  ^~~~~~~~
callbacks.cc:21521:6: error: 'source' was not declared in this scope
   if(source.fail()) {
      ^~~~~~
callbacks.cc:21521:6: note: suggested alternative: 'GSource'
   if(source.fail()) {
      ^~~~~~
      GSource
callbacks.cc:21527:4: error: 'ofstream' was not declared in this scope
    ofstream dest(buildPath(homedir, str).c_str());
    ^~~~~~~~
callbacks.cc:21527:4: note: suggested alternative:
In file included from /usr/include/g++/ios:38:0,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/iosfwd:165:34: note:   'std::ofstream'
   typedef basic_ofstream<char>   ofstream;
                                  ^~~~~~~~
callbacks.cc:21528:7: error: 'dest' was not declared in this scope
    if(dest.fail()) {
       ^~~~
callbacks.cc:21528:7: note: suggested alternative: 'd2s'
    if(dest.fail()) {
       ^~~~
       d2s
callbacks.cc: In function 'void on_set_base_combo_output_other_changed(GtkComboBox*, gpointer)':
callbacks.cc:22010:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(setbase_builder, "set_base_entry_output_other")));
  ^~~~~~
callbacks.cc:22010:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22011:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void on_set_base_entry_output_other_activate(GtkEntry*, gpointer)':
callbacks.cc:22015:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:22015:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22016:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:22017:27: error: 'prev_output_base' was not declared in this scope
  if(str.empty() || str == prev_output_base) {prev_output_base = str; return;}
                           ^~~~~~~~~~~~~~~~
callbacks.cc:22017:27: note: suggested alternative: 'result_bases'
  if(str.empty() || str == prev_output_base) {prev_output_base = str; return;}
                           ^~~~~~~~~~~~~~~~
                           result_bases
callbacks.cc:22033:3: error: 'prev_output_base' was not declared in this scope
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
callbacks.cc:22033:3: note: suggested alternative: 'result_bases'
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
   result_bases
callbacks.cc:22042:3: error: 'prev_output_base' was not declared in this scope
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
callbacks.cc:22042:3: note: suggested alternative: 'result_bases'
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
   result_bases
callbacks.cc: In function 'void on_set_base_radiobutton_output_other_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:22090:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(setbase_builder, "set_base_entry_output_other")));
  ^~~~~~
callbacks.cc:22090:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22091:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:22092:19: error: 'prev_output_base' was not declared in this scope
  if(str.empty()) {prev_output_base = str; return;}
                   ^~~~~~~~~~~~~~~~
callbacks.cc:22092:19: note: suggested alternative: 'result_bases'
  if(str.empty()) {prev_output_base = str; return;}
                   ^~~~~~~~~~~~~~~~
                   result_bases
callbacks.cc:22108:3: error: 'prev_output_base' was not declared in this scope
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
callbacks.cc:22108:3: note: suggested alternative: 'result_bases'
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
   result_bases
callbacks.cc:22117:3: error: 'prev_output_base' was not declared in this scope
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
callbacks.cc:22117:3: note: suggested alternative: 'result_bases'
   prev_output_base = str;
   ^~~~~~~~~~~~~~~~
   result_bases
callbacks.cc: In function 'void on_set_base_radiobutton_input_other_toggled(GtkToggleButton*, gpointer)':
callbacks.cc:22170:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(setbase_builder, "set_base_entry_input_other")));
  ^~~~~~
callbacks.cc:22170:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22171:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:22172:27: error: 'prev_input_base' was not declared in this scope
  if(str.empty() || str == prev_input_base) {prev_input_base = str; return;}
                           ^~~~~~~~~~~~~~~
callbacks.cc:22188:4: error: 'prev_input_base' was not declared in this scope
    prev_input_base = str;
    ^~~~~~~~~~~~~~~
callbacks.cc:22200:2: error: 'prev_input_base' was not declared in this scope
  prev_input_base = str;
  ^~~~~~~~~~~~~~~
callbacks.cc: In function 'void on_set_base_combo_input_other_changed(GtkComboBox*, gpointer)':
callbacks.cc:22211:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(setbase_builder, "set_base_entry_input_other")));
  ^~~~~~
callbacks.cc:22211:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22212:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void on_set_base_entry_input_other_activate(GtkEntry*, gpointer)':
callbacks.cc:22216:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(w);
  ^~~~~~
callbacks.cc:22216:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22217:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:22218:27: error: 'prev_input_base' was not declared in this scope
  if(str.empty() || str == prev_input_base) {prev_input_base = str; return;}
                           ^~~~~~~~~~~~~~~
callbacks.cc:22219:27: error: 'prev_input_base' was not declared in this scope
  if(str.empty() || str == prev_input_base) {prev_input_base = str; return;}
                           ^~~~~~~~~~~~~~~
callbacks.cc:22235:4: error: 'prev_input_base' was not declared in this scope
    prev_input_base = str;
    ^~~~~~~~~~~~~~~
callbacks.cc:22257:2: error: 'prev_input_base' was not declared in this scope
  prev_input_base = str;
  ^~~~~~~~~~~~~~~
callbacks.cc: In function 'void on_menu_item_factorize_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22317:34: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_FACTORIZE);
                                  ^
callbacks.cc: In function 'void on_menu_item_expand_partial_fractions_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22320:49: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EXPAND_PARTIAL_FRACTIONS);
                                                 ^
callbacks.cc: In function 'void on_menu_item_simplify_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22323:31: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  executeCommand(COMMAND_EXPAND);
                               ^
callbacks.cc: In function 'void on_menu_item_convert_number_bases_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22364:6: error: 'result_text' was not declared in this scope
  if(!result_text.empty()) return convert_number_bases(result_text.c_str(), true);
      ^~~~~~~~~~~
callbacks.cc:22364:6: note: suggested alternative: 'resultview'
  if(!result_text.empty()) return convert_number_bases(result_text.c_str(), true);
      ^~~~~~~~~~~
      resultview
callbacks.cc:22364:80: error: return-statement with a value, in function returning 'void' [-fpermissive]
  if(!result_text.empty()) return convert_number_bases(result_text.c_str(), true);
                                                                                ^
callbacks.cc:22365:2: error: 'string' was not declared in this scope
  string str = get_selected_expression_text(true), str2;
  ^~~~~~
callbacks.cc:22365:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22366:35: error: 'str' was not declared in this scope
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                   ^~~
callbacks.cc:22366:40: error: 'str2' was not declared in this scope
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                        ^~~~
callbacks.cc:22366:40: note: suggested alternative: 'stat'
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                        ^~~~
                                        stat
callbacks.cc: In function 'void on_menu_item_show_percentage_dialog_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22378:6: error: 'result_text' was not declared in this scope
  if(!result_text.empty()) return show_percentage_dialog(result_text.c_str());
      ^~~~~~~~~~~
callbacks.cc:22378:6: note: suggested alternative: 'resultview'
  if(!result_text.empty()) return show_percentage_dialog(result_text.c_str());
      ^~~~~~~~~~~
      resultview
callbacks.cc:22378:76: error: return-statement with a value, in function returning 'void' [-fpermissive]
  if(!result_text.empty()) return show_percentage_dialog(result_text.c_str());
                                                                            ^
callbacks.cc:22379:2: error: 'string' was not declared in this scope
  string str = get_selected_expression_text(true), str2;
  ^~~~~~
callbacks.cc:22379:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:22380:35: error: 'str' was not declared in this scope
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                   ^~~
callbacks.cc:22380:40: error: 'str2' was not declared in this scope
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                        ^~~~
callbacks.cc:22380:40: note: suggested alternative: 'stat'
  CALCULATOR->separateToExpression(str, str2, evalops, true);
                                        ^~~~
                                        stat
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc: In function 'void calendar_changed(GtkWidget*, gpointer)':
callbacks.cc:22404:56: error: 'cal_year' was not declared in this scope
   y = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(cal_year[(size_t) i]));
                                                        ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22404:40: note: in expansion of macro 'GTK_SPIN_BUTTON'
   y = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(cal_year[(size_t) i]));
                                        ^
callbacks.cc:22406:54: error: 'cal_month' was not declared in this scope
  long int m = gtk_combo_box_get_active(GTK_COMBO_BOX(cal_month[(size_t) i])) + 1;
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22406:40: note: in expansion of macro 'GTK_COMBO_BOX'
  long int m = gtk_combo_box_get_active(GTK_COMBO_BOX(cal_month[(size_t) i])) + 1;
                                        ^
callbacks.cc:22407:54: error: 'cal_day' was not declared in this scope
  long int d = gtk_combo_box_get_active(GTK_COMBO_BOX(cal_day[(size_t) i])) + 1;
                                                      ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22407:40: note: in expansion of macro 'GTK_COMBO_BOX'
  long int d = gtk_combo_box_get_active(GTK_COMBO_BOX(cal_day[(size_t) i])) + 1;
                                        ^
callbacks.cc:22414:2: error: 'string' was not declared in this scope
  string failed_str;
  ^~~~~~
callbacks.cc:22414:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:22424:48: error: 'cal_year' was not declared in this scope
      gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[i2]), y);
                                                ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22424:32: note: in expansion of macro 'GTK_SPIN_BUTTON'
      gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[i2]), y);
                                ^
callbacks.cc:22429:9: error: 'failed_str' was not declared in this scope
     if(!failed_str.empty()) failed_str += ", ";
         ^~~~~~~~~~
callbacks.cc:22429:9: note: suggested alternative: 'fileExists'
     if(!failed_str.empty()) failed_str += ", ";
         ^~~~~~~~~~
         fileExists
callbacks.cc:22430:5: error: 'failed_str' was not declared in this scope
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
     ^~~~~~~~~~
callbacks.cc:22430:5: note: suggested alternative: 'fileExists'
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
     ^~~~~~~~~~
     fileExists
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc:22430:48: error: 'cal_label' was not declared in this scope
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
                                                ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtklabel.h:39:28: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_LABEL(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LABEL, GtkLabel))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22430:38: note: in expansion of macro 'GTK_LABEL'
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
                                      ^
callbacks.cc:22430:48: note: suggested alternative: 'calculate'
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
                                                ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtklabel.h:39:28: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_LABEL(obj)    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LABEL, GtkLabel))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22430:38: note: in expansion of macro 'GTK_LABEL'
     failed_str += gtk_label_get_text(GTK_LABEL(cal_label[i2]));
                                      ^
callbacks.cc:22434:6: error: 'failed_str' was not declared in this scope
  if(!failed_str.empty()) {
      ^~~~~~~~~~
callbacks.cc:22434:6: note: suggested alternative: 'fileExists'
  if(!failed_str.empty()) {
      ^~~~~~~~~~
      fileExists
In file included from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gobject.h:26:0,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gbinding.h:31,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/glib-object.h:24,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gioenums.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/giotypes.h:30,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gio/gio.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdkapplaunchcontext.h:28,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gdk/gdk.h:32,
                 from /pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtk.h:30,
                 from callbacks.cc:17:
callbacks.cc: In function 'void on_menu_item_show_calendarconversion_dialog_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22445:45: error: 'cal_year' was not declared in this scope
   gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[CALENDAR_GREGORIAN]), mstruct->datetime()->year());
                                             ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22445:29: note: in expansion of macro 'GTK_SPIN_BUTTON'
   gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[CALENDAR_GREGORIAN]), mstruct->datetime()->year());
                             ^
callbacks.cc:22446:42: error: 'cal_month' was not declared in this scope
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_month[CALENDAR_GREGORIAN]), mstruct->datetime()->month() - 1);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22446:28: note: in expansion of macro 'GTK_COMBO_BOX'
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_month[CALENDAR_GREGORIAN]), mstruct->datetime()->month() - 1);
                            ^
callbacks.cc:22447:42: error: 'cal_day' was not declared in this scope
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_day[CALENDAR_GREGORIAN]), mstruct->datetime()->day() - 1);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22447:28: note: in expansion of macro 'GTK_COMBO_BOX'
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_day[CALENDAR_GREGORIAN]), mstruct->datetime()->day() - 1);
                            ^
callbacks.cc: In function 'void on_popup_menu_item_calendarconversion_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22453:45: error: 'cal_year' was not declared in this scope
   gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[CALENDAR_GREGORIAN]), mstruct->datetime()->year());
                                             ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkspinbutton.h:42:48: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_SPIN_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON, GtkSpinButton))
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22453:29: note: in expansion of macro 'GTK_SPIN_BUTTON'
   gtk_spin_button_set_value(GTK_SPIN_BUTTON(cal_year[CALENDAR_GREGORIAN]), mstruct->datetime()->year());
                             ^
callbacks.cc:22454:42: error: 'cal_month' was not declared in this scope
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_month[CALENDAR_GREGORIAN]), mstruct->datetime()->month() - 1);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22454:28: note: in expansion of macro 'GTK_COMBO_BOX'
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_month[CALENDAR_GREGORIAN]), mstruct->datetime()->month() - 1);
                            ^
callbacks.cc:22455:42: error: 'cal_day' was not declared in this scope
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_day[CALENDAR_GREGORIAN]), mstruct->datetime()->day() - 1);
                                          ^
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/glib-2.0/gobject/gtype.h:2644:57: note: in definition of macro '_G_TYPE_CIC'
 #  define _G_TYPE_CIC(ip, gt, ct)       ((ct*) (void *) ip)
                                                         ^~
/pbulk/work/math/qalculate-gtk/work/.buildlink/include/gtk-3.0/gtk/gtkcombobox.h:32:41: note: in expansion of macro 'G_TYPE_CHECK_INSTANCE_CAST'
 #define GTK_COMBO_BOX(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX, GtkComboBox))
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22455:28: note: in expansion of macro 'GTK_COMBO_BOX'
   gtk_combo_box_set_active(GTK_COMBO_BOX(cal_day[CALENDAR_GREGORIAN]), mstruct->datetime()->day() - 1);
                            ^
callbacks.cc: In function 'void on_menu_item_plot_functions_activate(GtkMenuItem*, gpointer)':
callbacks.cc:22470:95: error: 'get_selected_expression_text' was not declared in this scope
  gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_expression")), get_selected_expression_text(true).c_str());
                                                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22470:95: note: suggested alternative: 'set_expression_text'
  gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_expression")), get_selected_expression_text(true).c_str());
                                                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                               set_expression_text
callbacks.cc:22481:89: error: 'default_plot_min' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_min")), default_plot_min.c_str());
                                                                                         ^~~~~~~~~~~~~~~~
callbacks.cc:22481:89: note: suggested alternative: 'default_plot_type'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_min")), default_plot_min.c_str());
                                                                                         ^~~~~~~~~~~~~~~~
                                                                                         default_plot_type
callbacks.cc:22482:89: error: 'default_plot_max' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_max")), default_plot_max.c_str());
                                                                                         ^~~~~~~~~~~~~~~~
callbacks.cc:22482:89: note: suggested alternative: 'default_plot_type'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_max")), default_plot_max.c_str());
                                                                                         ^~~~~~~~~~~~~~~~
                                                                                         default_plot_type
callbacks.cc:22483:90: error: 'default_plot_step' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_step")), default_plot_step.c_str());
                                                                                          ^~~~~~~~~~~~~~~~~
callbacks.cc:22483:90: note: suggested alternative: 'default_plot_style'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_step")), default_plot_step.c_str());
                                                                                          ^~~~~~~~~~~~~~~~~
                                                                                          default_plot_style
callbacks.cc:22484:94: error: 'default_plot_variable' was not declared in this scope
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")), default_plot_variable.c_str());
                                                                                              ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22484:94: note: suggested alternative: 'default_plot_style'
   gtk_entry_set_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")), default_plot_variable.c_str());
                                                                                              ^~~~~~~~~~~~~~~~~~~~~
                                                                                              default_plot_style
callbacks.cc: In function 'void on_plot_dialog_hide(GtkWidget*, gpointer)':
callbacks.cc:22538:2: error: 'default_plot_min' was not declared in this scope
  default_plot_min = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_min")));
  ^~~~~~~~~~~~~~~~
callbacks.cc:22538:2: note: suggested alternative: 'default_plot_type'
  default_plot_min = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_min")));
  ^~~~~~~~~~~~~~~~
  default_plot_type
callbacks.cc:22539:2: error: 'default_plot_max' was not declared in this scope
  default_plot_max = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_max")));
  ^~~~~~~~~~~~~~~~
callbacks.cc:22539:2: note: suggested alternative: 'default_plot_type'
  default_plot_max = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_max")));
  ^~~~~~~~~~~~~~~~
  default_plot_type
callbacks.cc:22540:2: error: 'default_plot_step' was not declared in this scope
  default_plot_step = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_step")));
  ^~~~~~~~~~~~~~~~~
callbacks.cc:22540:2: note: suggested alternative: 'default_plot_style'
  default_plot_step = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_step")));
  ^~~~~~~~~~~~~~~~~
  default_plot_style
callbacks.cc:22541:2: error: 'default_plot_variable' was not declared in this scope
  default_plot_variable = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")));
  ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:22541:2: note: suggested alternative: 'default_plot_style'
  default_plot_variable = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")));
  ^~~~~~~~~~~~~~~~~~~~~
  default_plot_style
callbacks.cc: In function 'void on_menu_item_copy_activate(GtkMenuItem*, gpointer)':
callbacks.cc:23073:2: error: 'string' was not declared in this scope
  string copy_text = result_text;
  ^~~~~~
callbacks.cc:23073:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23075:20: error: 'copy_text' was not declared in this scope
   remove_separator(copy_text);
                    ^~~~~~~~~
callbacks.cc:23075:20: note: suggested alternative: 'dcnpgettext'
   remove_separator(copy_text);
                    ^~~~~~~~~
                    dcnpgettext
callbacks.cc:23075:3: error: 'remove_separator' was not declared in this scope
   remove_separator(copy_text);
   ^~~~~~~~~~~~~~~~
callbacks.cc:23075:3: note: suggested alternative: 'copy_separator'
   remove_separator(copy_text);
   ^~~~~~~~~~~~~~~~
   copy_separator
callbacks.cc:23077:81: error: 'copy_text' was not declared in this scope
  gtk_clipboard_set_text(gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)), copy_text.c_str(), -1);
                                                                                 ^~~~~~~~~
callbacks.cc:23077:81: note: suggested alternative: 'dcnpgettext'
  gtk_clipboard_set_text(gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)), copy_text.c_str(), -1);
                                                                                 ^~~~~~~~~
                                                                                 dcnpgettext
callbacks.cc: In function 'void on_button_registerup_clicked(GtkButton*, gpointer)':
callbacks.cc:23142:50: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   setResult(NULL, true, false, false, "", 0, true);
                                                  ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_button_registerdown_clicked(GtkButton*, gpointer)':
callbacks.cc:23176:50: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   setResult(NULL, true, false, false, "", 0, true);
                                                  ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_button_registerswap_clicked(GtkButton*, gpointer)':
callbacks.cc:23208:49: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, false, false, "", 0, true);
                                                 ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_button_lastx_clicked(GtkButton*, gpointer)':
callbacks.cc:23213:6: error: 'get_expression_text' was not declared in this scope
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
callbacks.cc:23213:6: note: suggested alternative: 'set_expression_text'
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
      ^~~~~~~~~~~~~~~~~~~
      set_expression_text
callbacks.cc:23213:57: error: 'string' has not been declared
   if(get_expression_text().find_first_not_of(SPACES) != string::npos) {
                                                         ^~~~~~
callbacks.cc:23218:2: error: 'RPNRegisterAdded' was not declared in this scope
  RPNRegisterAdded("", 0);
  ^~~~~~~~~~~~~~~~
callbacks.cc:23218:2: note: suggested alternative: 'RPNRegisterRemoved'
  RPNRegisterAdded("", 0);
  ^~~~~~~~~~~~~~~~
  RPNRegisterRemoved
callbacks.cc:23222:49: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, true, false, "", 0, false);
                                                 ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_button_copyregister_clicked(GtkButton*, gpointer)':
callbacks.cc:23239:2: error: 'RPNRegisterAdded' was not declared in this scope
  RPNRegisterAdded(text_copy, 0);
  ^~~~~~~~~~~~~~~~
callbacks.cc:23239:2: note: suggested alternative: 'RPNRegisterRemoved'
  RPNRegisterAdded(text_copy, 0);
  ^~~~~~~~~~~~~~~~
  RPNRegisterRemoved
callbacks.cc:23244:49: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, false, false, "", 0, true);
                                                 ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_button_deleteregister_clicked(GtkButton*, gpointer)':
callbacks.cc:23277:50: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   setResult(NULL, true, false, false, "", 0, true);
                                                  ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_popup_menu_item_stack_movetotop_activate(GtkMenuItem*, gpointer)':
callbacks.cc:23400:49: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  setResult(NULL, true, false, false, "", 0, true);
                                                 ^
callbacks.cc:8268:6: note:   initializing argument 5 of 'void setResult(Prefix*, bool, bool, bool, int, size_t, bool)'
 void setResult(Prefix *prefix, bool update_history, bool update_parse, bool force, string transformation, size_t stack_index, bool register_moved) {
      ^~~~~~~~~
callbacks.cc: In function 'void on_unit_edit_entry_relation_changed(GtkEditable*, gpointer)':
callbacks.cc:23480:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(w));
  ^~~~~~
callbacks.cc:23480:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23481:107: error: 'str' was not declared in this scope
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(unitedit_builder, "unit_edit_box_reversed")), str.find("\\x") != string::npos);
                                                                                                           ^~~
callbacks.cc:23481:126: error: 'string' is not a class, namespace, or enumeration
  gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(unitedit_builder, "unit_edit_box_reversed")), str.find("\\x") != string::npos);
                                                                                                                              ^~~~~~
callbacks.cc: In function 'void correct_name_entry(GtkEditable*, ExpressionItemType, gpointer)':
callbacks.cc:23485:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:23485:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23486:5: error: 'str' was not declared in this scope
  if(str.empty()) return;
     ^~~
callbacks.cc:23487:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc: In function 'void on_unit_edit_combo_system_changed(GtkComboBox*, gpointer)':
callbacks.cc:23566:2: error: 'string' was not declared in this scope
  string str = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(om));
  ^~~~~~
callbacks.cc:23566:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23567:5: error: 'str' was not declared in this scope
  if(str == "SI" || str == "CGS") {
     ^~~
callbacks.cc: In function 'void on_units_button_new_clicked(GtkButton*, gpointer)':
callbacks.cc:23576:5: error: 'selected_unit_category' was not declared in this scope
  if(selected_unit_category.empty() || selected_unit_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23576:5: note: suggested alternative: 'selected_unit'
  if(selected_unit_category.empty() || selected_unit_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~
     selected_unit
callbacks.cc: In function 'void on_units_button_convert_to_clicked(GtkButton*, gpointer)':
callbacks.cc:23615:51: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
   executeCommand(COMMAND_CONVERT_UNIT, true, "", u);
                                                   ^
callbacks.cc:8869:6: note:   initializing argument 3 of 'void executeCommand(int, bool, int, Unit*, int)'
 void executeCommand(int command_type, bool show_result, string ceu_str, Unit *u, int run) {
      ^~~~~~~~~~~~~~
callbacks.cc: In function 'void on_units_button_delete_clicked(GtkButton*, gpointer)':
callbacks.cc:23633:25: error: 'recent_units' was not declared in this scope
   for(size_t i = 0; i < recent_units.size(); i++) {
                         ^~~~~~~~~~~~
callbacks.cc:23633:25: note: suggested alternative: 'edit_unit'
   for(size_t i = 0; i < recent_units.size(); i++) {
                         ^~~~~~~~~~~~
                         edit_unit
callbacks.cc:23636:24: error: 'recent_unit_items' was not declared in this scope
     gtk_widget_destroy(recent_unit_items[i]);
                        ^~~~~~~~~~~~~~~~~
callbacks.cc:23636:24: note: suggested alternative: 'set_mode_items'
     gtk_widget_destroy(recent_unit_items[i]);
                        ^~~~~~~~~~~~~~~~~
                        set_mode_items
callbacks.cc:23647:4: error: 'string' was not declared in this scope
    string str = selected_unit_category;
    ^~~~~~
callbacks.cc:23647:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23649:7: error: 'str' was not declared in this scope
    if(str == selected_unit_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tUnits)), path);
       ^~~
callbacks.cc:23649:7: note: suggested alternative: 'iter'
    if(str == selected_unit_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tUnits)), path);
       ^~~
       iter
callbacks.cc:23649:14: error: 'selected_unit_category' was not declared in this scope
    if(str == selected_unit_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tUnits)), path);
              ^~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23649:14: note: suggested alternative: 'selected_unit'
    if(str == selected_unit_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tUnits)), path);
              ^~~~~~~~~~~~~~~~~~~~~~
              selected_unit
callbacks.cc: In function 'void on_variables_button_new_clicked(GtkButton*, gpointer)':
callbacks.cc:23661:5: error: 'selected_variable_category' was not declared in this scope
  if(selected_variable_category.empty() || selected_variable_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23661:5: note: suggested alternative: 'selected_variable'
  if(selected_variable_category.empty() || selected_variable_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_variable
callbacks.cc: In function 'void on_variables_button_delete_clicked(GtkButton*, gpointer)':
callbacks.cc:23714:25: error: 'recent_variables' was not declared in this scope
   for(size_t i = 0; i < recent_variables.size(); i++) {
                         ^~~~~~~~~~~~~~~~
callbacks.cc:23714:25: note: suggested alternative: 'delete_variable'
   for(size_t i = 0; i < recent_variables.size(); i++) {
                         ^~~~~~~~~~~~~~~~
                         delete_variable
callbacks.cc:23717:24: error: 'recent_variable_items' was not declared in this scope
     gtk_widget_destroy(recent_variable_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23717:24: note: suggested alternative: 'set_angle_item'
     gtk_widget_destroy(recent_variable_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
                        set_angle_item
callbacks.cc:23729:4: error: 'string' was not declared in this scope
    string str = selected_variable_category;
    ^~~~~~
callbacks.cc:23729:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23731:7: error: 'str' was not declared in this scope
    if(str == selected_variable_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tVariables)), path);
       ^~~
callbacks.cc:23731:7: note: suggested alternative: 'iter'
    if(str == selected_variable_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tVariables)), path);
       ^~~
       iter
callbacks.cc:23731:14: error: 'selected_variable_category' was not declared in this scope
    if(str == selected_variable_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tVariables)), path);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23731:14: note: suggested alternative: 'selected_variable'
    if(str == selected_variable_category) gtk_tree_selection_select_path(gtk_tree_view_get_selection(GTK_TREE_VIEW(tVariables)), path);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
              selected_variable
callbacks.cc: In function 'void on_functions_button_new_clicked(GtkButton*, gpointer)':
callbacks.cc:23762:5: error: 'selected_function_category' was not declared in this scope
  if(selected_function_category.empty() || selected_function_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23762:5: note: suggested alternative: 'selected_function'
  if(selected_function_category.empty() || selected_function_category[0] != '/') {
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     selected_function
callbacks.cc: In function 'void on_functions_button_delete_clicked(GtkButton*, gpointer)':
callbacks.cc:23802:25: error: 'recent_functions' was not declared in this scope
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
callbacks.cc:23802:25: note: suggested alternative: 'edit_function'
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
                         edit_function
callbacks.cc:23805:24: error: 'recent_function_items' was not declared in this scope
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23805:24: note: suggested alternative: 'edit_function_simple'
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
                        edit_function_simple
callbacks.cc:23816:4: error: 'string' was not declared in this scope
    string str = selected_function_category;
    ^~~~~~
callbacks.cc:23816:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:23818:7: error: 'str' was not declared in this scope
    if(str == selected_function_category) {
       ^~~
callbacks.cc:23818:7: note: suggested alternative: 'iter'
    if(str == selected_function_category) {
       ^~~
       iter
callbacks.cc:23818:14: error: 'selected_function_category' was not declared in this scope
    if(str == selected_function_category) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23818:14: note: suggested alternative: 'selected_function'
    if(str == selected_function_category) {
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
              selected_function
callbacks.cc: In function 'void on_datasets_button_delset_clicked(GtkButton*, gpointer)':
callbacks.cc:23843:25: error: 'recent_functions' was not declared in this scope
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
callbacks.cc:23843:25: note: suggested alternative: 'edit_function'
   for(size_t i = 0; i < recent_functions.size(); i++) {
                         ^~~~~~~~~~~~~~~~
                         edit_function
callbacks.cc:23846:24: error: 'recent_function_items' was not declared in this scope
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
callbacks.cc:23846:24: note: suggested alternative: 'edit_function_simple'
     gtk_widget_destroy(recent_function_items[i]);
                        ^~~~~~~~~~~~~~~~~~~~~
                        edit_function_simple
callbacks.cc: In function 'gboolean on_tMatrixEdit_editable_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:23940:28: error: 'matrix_edit_columns' was not declared in this scope
      for(size_t i = 0; i < matrix_edit_columns.size(); i++) {
                            ^~~~~~~~~~~~~~~~~~~
callbacks.cc:23940:28: note: suggested alternative: 'matrixedit_builder'
      for(size_t i = 0; i < matrix_edit_columns.size(); i++) {
                            ^~~~~~~~~~~~~~~~~~~
                            matrixedit_builder
callbacks.cc: In function 'gboolean on_tMatrixEdit_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:23996:28: error: 'matrix_edit_columns' was not declared in this scope
      for(size_t i = 0; i < matrix_edit_columns.size(); i++) {
                            ^~~~~~~~~~~~~~~~~~~
callbacks.cc:23996:28: note: suggested alternative: 'matrixedit_builder'
      for(size_t i = 0; i < matrix_edit_columns.size(); i++) {
                            ^~~~~~~~~~~~~~~~~~~
                            matrixedit_builder
callbacks.cc: In function 'gboolean on_tMatrixEdit_cursor_changed(GtkTreeView*, gpointer)':
callbacks.cc:24076:60: error: 'matrix_edit_columns' was not declared in this scope
      pos_str = g_strdup_printf("%i", (int) (i_column + 1 + matrix_edit_columns.size() * gtk_tree_path_get_indices(path)[0]));
                                                            ^~~~~~~~~~~~~~~~~~~
callbacks.cc:24076:60: note: suggested alternative: 'matrix_edit_prev_column'
      pos_str = g_strdup_printf("%i", (int) (i_column + 1 + matrix_edit_columns.size() * gtk_tree_path_get_indices(path)[0]));
                                                            ^~~~~~~~~~~~~~~~~~~
                                                            matrix_edit_prev_column
callbacks.cc: In function 'void on_matrix_edit_spinbutton_columns_value_changed(GtkSpinButton*, gpointer)':
callbacks.cc:24090:11: error: 'matrix_edit_columns' was not declared in this scope
  gint c = matrix_edit_columns.size();
           ^~~~~~~~~~~~~~~~~~~
callbacks.cc:24090:11: note: suggested alternative: 'matrix_edit_prev_column'
  gint c = matrix_edit_columns.size();
           ^~~~~~~~~~~~~~~~~~~
           matrix_edit_prev_column
callbacks.cc: In function 'void on_matrix_edit_spinbutton_rows_value_changed(GtkSpinButton*, gpointer)':
callbacks.cc:24129:11: error: 'matrix_edit_columns' was not declared in this scope
  gint c = matrix_edit_columns.size();
           ^~~~~~~~~~~~~~~~~~~
callbacks.cc:24129:11: note: suggested alternative: 'matrix_edit_prev_column'
  gint c = matrix_edit_columns.size();
           ^~~~~~~~~~~~~~~~~~~
           matrix_edit_prev_column
callbacks.cc: In function 'gboolean on_tMatrix_editable_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:24169:28: error: 'matrix_columns' was not declared in this scope
      for(size_t i = 0; i < matrix_columns.size(); i++) {
                            ^~~~~~~~~~~~~~
callbacks.cc:24169:28: note: suggested alternative: 'flag_column'
      for(size_t i = 0; i < matrix_columns.size(); i++) {
                            ^~~~~~~~~~~~~~
                            flag_column
callbacks.cc: In function 'gboolean on_tMatrix_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:24225:28: error: 'matrix_columns' was not declared in this scope
      for(size_t i = 0; i < matrix_columns.size(); i++) {
                            ^~~~~~~~~~~~~~
callbacks.cc:24225:28: note: suggested alternative: 'flag_column'
      for(size_t i = 0; i < matrix_columns.size(); i++) {
                            ^~~~~~~~~~~~~~
                            flag_column
callbacks.cc: In function 'gboolean on_tMatrix_cursor_changed(GtkTreeView*, gpointer)':
callbacks.cc:24305:60: error: 'matrix_columns' was not declared in this scope
      pos_str = g_strdup_printf("%i", (int) (i_column + 1 + matrix_columns.size() * gtk_tree_path_get_indices(path)[0]));
                                                            ^~~~~~~~~~~~~~
callbacks.cc:24305:60: note: suggested alternative: 'i_column'
      pos_str = g_strdup_printf("%i", (int) (i_column + 1 + matrix_columns.size() * gtk_tree_path_get_indices(path)[0]));
                                                            ^~~~~~~~~~~~~~
                                                            i_column
callbacks.cc: In function 'void on_matrix_spinbutton_columns_value_changed(GtkSpinButton*, gpointer)':
callbacks.cc:24319:11: error: 'matrix_columns' was not declared in this scope
  gint c = matrix_columns.size();
           ^~~~~~~~~~~~~~
callbacks.cc:24319:11: note: suggested alternative: 'matrix_prev_column'
  gint c = matrix_columns.size();
           ^~~~~~~~~~~~~~
           matrix_prev_column
callbacks.cc: In function 'void on_matrix_spinbutton_rows_value_changed(GtkSpinButton*, gpointer)':
callbacks.cc:24357:11: error: 'matrix_columns' was not declared in this scope
  gint c = matrix_columns.size();
           ^~~~~~~~~~~~~~
callbacks.cc:24357:11: note: suggested alternative: 'matrix_prev_column'
  gint c = matrix_columns.size();
           ^~~~~~~~~~~~~~
           matrix_prev_column
callbacks.cc: At global scope:
callbacks.cc:24379:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<int> percentage_entries_changes;
 ^~~~~~
 Vector
callbacks.cc: In function 'void on_percentage_button_clear_clicked(GtkWidget*, gpointer)':
callbacks.cc:24384:2: error: 'percentage_entries_changes' was not declared in this scope
  percentage_entries_changes.clear();
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:24384:2: note: suggested alternative: 'current_object_has_changed'
  percentage_entries_changes.clear();
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
  current_object_has_changed
callbacks.cc: In function 'void percentage_entry_changed(int, GtkEntry*)':
callbacks.cc:24394:24: error: 'percentage_entries_changes' was not declared in this scope
  for(size_t i = 0; i < percentage_entries_changes.size(); i++) {
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:24394:24: note: suggested alternative: 'percentage_entry_changed'
  for(size_t i = 0; i < percentage_entries_changes.size(); i++) {
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~
                        percentage_entry_changed
callbacks.cc:24401:2: error: 'percentage_entries_changes' was not declared in this scope
  percentage_entries_changes.push_back(entry_id);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:24401:2: note: suggested alternative: 'percentage_entry_changed'
  percentage_entries_changes.push_back(entry_id);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~
  percentage_entry_changed
callbacks.cc: In function 'void update_percentage_entries()':
callbacks.cc:24419:5: error: 'percentage_entries_changes' was not declared in this scope
  if(percentage_entries_changes.size() < 2) return;
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:24419:5: note: suggested alternative: 'percentage_entry_changed'
  if(percentage_entries_changes.size() < 2) return;
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
     percentage_entry_changed
callbacks.cc:24420:16: error: 'percentage_entries_changes' was not declared in this scope
  int variant = percentage_entries_changes[percentage_entries_changes.size() - 1];
                ^~~~~~~~~~~~~~~~~~~~~~~~~~
callbacks.cc:24420:16: note: suggested alternative: 'percentage_entry_changed'
  int variant = percentage_entries_changes[percentage_entries_changes.size() - 1];
                ^~~~~~~~~~~~~~~~~~~~~~~~~~
                percentage_entry_changed
callbacks.cc:24445:2: error: 'string' was not declared in this scope
  string str1, str2;
  ^~~~~~
callbacks.cc:24445:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24447:12: error: 'str1' was not declared in this scope
   case 3: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w2)); break;}
            ^~~~
callbacks.cc:24447:12: note: suggested alternative: 'stat'
   case 3: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w2)); break;}
            ^~~~
            stat
callbacks.cc:24447:54: error: 'str2' was not declared in this scope
   case 3: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w2)); break;}
                                                      ^~~~
callbacks.cc:24447:54: note: suggested alternative: 'stat'
   case 3: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w2)); break;}
                                                      ^~~~
                                                      stat
callbacks.cc:24448:12: error: 'str1' was not declared in this scope
   case 5: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
            ^~~~
callbacks.cc:24448:12: note: suggested alternative: 'stat'
   case 5: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
            ^~~~
            stat
callbacks.cc:24448:54: error: 'str2' was not declared in this scope
   case 5: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
                                                      ^~~~
callbacks.cc:24448:54: note: suggested alternative: 'stat'
   case 5: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
                                                      ^~~~
                                                      stat
callbacks.cc:24449:12: error: 'str1' was not declared in this scope
   case 9: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
            ^~~~
callbacks.cc:24449:12: note: suggested alternative: 'stat'
   case 9: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
            ^~~~
            stat
callbacks.cc:24449:54: error: 'str2' was not declared in this scope
   case 9: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                      ^~~~
callbacks.cc:24449:54: note: suggested alternative: 'stat'
   case 9: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                      ^~~~
                                                      stat
callbacks.cc:24450:13: error: 'str1' was not declared in this scope
   case 17: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
callbacks.cc:24450:13: note: suggested alternative: 'stat'
   case 17: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
             stat
callbacks.cc:24450:55: error: 'str2' was not declared in this scope
   case 17: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
callbacks.cc:24450:55: note: suggested alternative: 'stat'
   case 17: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24451:13: error: 'str1' was not declared in this scope
   case 33: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
callbacks.cc:24451:13: note: suggested alternative: 'stat'
   case 33: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
             stat
callbacks.cc:24451:55: error: 'str2' was not declared in this scope
   case 33: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
callbacks.cc:24451:55: note: suggested alternative: 'stat'
   case 33: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24452:13: error: 'str1' was not declared in this scope
   case 65: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
callbacks.cc:24452:13: note: suggested alternative: 'stat'
   case 65: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
             stat
callbacks.cc:24452:55: error: 'str2' was not declared in this scope
   case 65: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
callbacks.cc:24452:55: note: suggested alternative: 'stat'
   case 65: {str1 = gtk_entry_get_text(GTK_ENTRY(w1)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24453:12: error: 'str1' was not declared in this scope
   case 6: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
            ^~~~
callbacks.cc:24453:12: note: suggested alternative: 'stat'
   case 6: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
            ^~~~
            stat
callbacks.cc:24453:54: error: 'str2' was not declared in this scope
   case 6: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
                                                      ^~~~
callbacks.cc:24453:54: note: suggested alternative: 'stat'
   case 6: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w3)); break;}
                                                      ^~~~
                                                      stat
callbacks.cc:24454:13: error: 'str1' was not declared in this scope
   case 10: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
             ^~~~
callbacks.cc:24454:13: note: suggested alternative: 'stat'
   case 10: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
             ^~~~
             stat
callbacks.cc:24454:55: error: 'str2' was not declared in this scope
   case 10: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                       ^~~~
callbacks.cc:24454:55: note: suggested alternative: 'stat'
   case 10: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24455:13: error: 'str1' was not declared in this scope
   case 18: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
callbacks.cc:24455:13: note: suggested alternative: 'stat'
   case 18: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
             stat
callbacks.cc:24455:55: error: 'str2' was not declared in this scope
   case 18: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
callbacks.cc:24455:55: note: suggested alternative: 'stat'
   case 18: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24456:13: error: 'str1' was not declared in this scope
   case 34: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
callbacks.cc:24456:13: note: suggested alternative: 'stat'
   case 34: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
             stat
callbacks.cc:24456:55: error: 'str2' was not declared in this scope
   case 34: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
callbacks.cc:24456:55: note: suggested alternative: 'stat'
   case 34: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24457:13: error: 'str1' was not declared in this scope
   case 66: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
callbacks.cc:24457:13: note: suggested alternative: 'stat'
   case 66: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
             stat
callbacks.cc:24457:55: error: 'str2' was not declared in this scope
   case 66: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
callbacks.cc:24457:55: note: suggested alternative: 'stat'
   case 66: {str1 = gtk_entry_get_text(GTK_ENTRY(w2)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24458:13: error: 'str1' was not declared in this scope
   case 12: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
             ^~~~
callbacks.cc:24458:13: note: suggested alternative: 'stat'
   case 12: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
             ^~~~
             stat
callbacks.cc:24458:55: error: 'str2' was not declared in this scope
   case 12: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                       ^~~~
callbacks.cc:24458:55: note: suggested alternative: 'stat'
   case 12: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w4)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24459:13: error: 'str1' was not declared in this scope
   case 20: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
callbacks.cc:24459:13: note: suggested alternative: 'stat'
   case 20: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
             ^~~~
             stat
callbacks.cc:24459:55: error: 'str2' was not declared in this scope
   case 20: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
callbacks.cc:24459:55: note: suggested alternative: 'stat'
   case 20: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w5)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24460:13: error: 'str1' was not declared in this scope
   case 36: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
callbacks.cc:24460:13: note: suggested alternative: 'stat'
   case 36: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
             ^~~~
             stat
callbacks.cc:24460:55: error: 'str2' was not declared in this scope
   case 36: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
callbacks.cc:24460:55: note: suggested alternative: 'stat'
   case 36: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w6)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24461:13: error: 'str1' was not declared in this scope
   case 68: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
callbacks.cc:24461:13: note: suggested alternative: 'stat'
   case 68: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
             ^~~~
             stat
callbacks.cc:24461:55: error: 'str2' was not declared in this scope
   case 68: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
callbacks.cc:24461:55: note: suggested alternative: 'stat'
   case 68: {str1 = gtk_entry_get_text(GTK_ENTRY(w3)); str2 = gtk_entry_get_text(GTK_ENTRY(w7)); break;}
                                                       ^~~~
                                                       stat
callbacks.cc:24466:65: error: 'str1' was not declared in this scope
   m1_pre.set(CALCULATOR->parse(CALCULATOR->unlocalizeExpression(str1)));
                                                                 ^~~~
callbacks.cc:24466:65: note: suggested alternative: 'stat'
   m1_pre.set(CALCULATOR->parse(CALCULATOR->unlocalizeExpression(str1)));
                                                                 ^~~~
                                                                 stat
callbacks.cc:24467:65: error: 'str2' was not declared in this scope
   m2_pre.set(CALCULATOR->parse(CALCULATOR->unlocalizeExpression(str2)));
                                                                 ^~~~
callbacks.cc:24467:65: note: suggested alternative: 'stat'
   m2_pre.set(CALCULATOR->parse(CALCULATOR->unlocalizeExpression(str2)));
                                                                 ^~~~
                                                                 stat
callbacks.cc: In function 'void update_nbases_entries(const MathStructure&, int)':
callbacks.cc:24583:2: error: 'string' was not declared in this scope
  string str;
  ^~~~~~
callbacks.cc:24583:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24584:32: error: 'str' was not declared in this scope
  if(base != 10) {po.base = 10; str = value.isAborted() ? CALCULATOR->timedOutString().c_str() : CALCULATOR->print(value, 200, po); if(str.length() > 1000) {str = _("result is too long");} gtk_entry_set_text(GTK_ENTRY(w_dec), str.c_str());}
                                ^~~
callbacks.cc:24585:30: error: 'str' was not declared in this scope
  if(base != 8) {po.base = 8; str = value.isAborted() ? CALCULATOR->timedOutString().c_str() : CALCULATOR->print(value, 200, po); if(str.length() > 1000) {str = _("result is too long");} gtk_entry_set_text(GTK_ENTRY(w_oct), str.c_str());}
                              ^~~
callbacks.cc:24586:32: error: 'str' was not declared in this scope
  if(base != 12) {po.base = 12; str = value.isAborted() ? CALCULATOR->timedOutString().c_str() : CALCULATOR->print(value, 200, po); if(str.length() > 1000) {str = _("result is too long");} gtk_entry_set_text(GTK_ENTRY(w_duo), str.c_str());}
                                ^~~
callbacks.cc:24587:32: error: 'str' was not declared in this scope
  if(base != 16) {po.base = 16; str = value.isAborted() ? CALCULATOR->timedOutString().c_str() : CALCULATOR->print(value, 200, po); if(str.length() > 1000) {str = _("result is too long");} gtk_entry_set_text(GTK_ENTRY(w_hex), str.c_str());}
                                ^~~
callbacks.cc:24599:69: error: 'str' was not declared in this scope
  if(base != 2) {po.base = 2; po.base_display = BASE_DISPLAY_NORMAL; str = value.isAborted() ? CALCULATOR->timedOutString().c_str() : CALCULATOR->print(value, 200, po); if(str.length() > 1000) {str = _("result is too long");} gtk_entry_set_text(GTK_ENTRY(w_bin), str.c_str());}
                                                                     ^~~
callbacks.cc:24625:10: error: expected ';' before 'sfull'
   string sfull;
          ^~~~~
callbacks.cc:24631:20: error: 'sfull' was not declared in this scope
     if(index == 1) sfull = "• " + sfull;
                    ^~~~~
callbacks.cc:24632:5: error: 'sfull' was not declared in this scope
     sfull += "\n• ";
     ^~~~~
callbacks.cc:24634:4: error: 'sfull' was not declared in this scope
    sfull += CALCULATOR->message()->message();
    ^~~~~
callbacks.cc:24641:120: error: 'sfull' was not declared in this scope
   if(base == 2) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_binary")), sfull.c_str());
                                                                                                                        ^~~~~
callbacks.cc:24642:124: error: 'sfull' was not declared in this scope
   else if(base == 8) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_octal")), sfull.c_str());
                                                                                                                            ^~~~~
callbacks.cc:24643:127: error: 'sfull' was not declared in this scope
   else if(base == 10) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_decimal")), sfull.c_str());
                                                                                                                               ^~~~~
callbacks.cc:24644:130: error: 'sfull' was not declared in this scope
   else if(base == 12) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_duodecimal")), sfull.c_str());
                                                                                                                                  ^~~~~
callbacks.cc:24645:131: error: 'sfull' was not declared in this scope
   else if(base == 16) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_hexadecimal")), sfull.c_str());
                                                                                                                                   ^~~~~
callbacks.cc:24646:142: error: 'sfull' was not declared in this scope
   else if(base == BASE_ROMAN_NUMERALS) gtk_widget_set_tooltip_text(GTK_WIDGET(gtk_builder_get_object(nbases_builder, "nbases_label_roman")), sfull.c_str());
                                                                                                                                              ^~~~~
callbacks.cc:24647:53: error: 'sfull' was not declared in this scope
   if(base == 10) gtk_widget_set_tooltip_text(w_dec, sfull.c_str());
                                                     ^~~~~
callbacks.cc:24648:57: error: 'sfull' was not declared in this scope
   else if(base == 2) gtk_widget_set_tooltip_text(w_bin, sfull.c_str());
                                                         ^~~~~
callbacks.cc:24649:57: error: 'sfull' was not declared in this scope
   else if(base == 8) gtk_widget_set_tooltip_text(w_oct, sfull.c_str());
                                                         ^~~~~
callbacks.cc:24650:58: error: 'sfull' was not declared in this scope
   else if(base == 12) gtk_widget_set_tooltip_text(w_duo, sfull.c_str());
                                                          ^~~~~
callbacks.cc:24651:58: error: 'sfull' was not declared in this scope
   else if(base == 16) gtk_widget_set_tooltip_text(w_hex, sfull.c_str());
                                                          ^~~~~
callbacks.cc:24652:77: error: 'sfull' was not declared in this scope
   else if(base == BASE_ROMAN_NUMERALS) gtk_widget_set_tooltip_text(w_roman, sfull.c_str());
                                                                             ^~~~~
callbacks.cc:24654:11: error: expected ';' before 'str'
    string str = "<span foreground=\"";
           ^~~
callbacks.cc:24655:39: error: 'str' was not declared in this scope
    if(mtype_highest == MESSAGE_ERROR) str += nbases_error_color;
                                       ^~~
callbacks.cc:24655:46: error: 'nbases_error_color' was not declared in this scope
    if(mtype_highest == MESSAGE_ERROR) str += nbases_error_color;
                                              ^~~~~~~~~~~~~~~~~~
callbacks.cc:24655:46: note: suggested alternative: 'history_error_color'
    if(mtype_highest == MESSAGE_ERROR) str += nbases_error_color;
                                              ^~~~~~~~~~~~~~~~~~
                                              history_error_color
callbacks.cc:24656:9: error: 'str' was not declared in this scope
    else str += nbases_warning_color;
         ^~~
callbacks.cc:24656:16: error: 'nbases_warning_color' was not declared in this scope
    else str += nbases_warning_color;
                ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:24656:16: note: suggested alternative: 'history_warning_color'
    else str += nbases_warning_color;
                ^~~~~~~~~~~~~~~~~~~~
                history_warning_color
callbacks.cc:24657:4: error: 'str' was not declared in this scope
    str += "\">";
    ^~~
callbacks.cc: In function 'void on_nbases_entry_decimal_changed(GtkEditable*, gpointer)':
callbacks.cc:24679:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24679:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24680:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24682:31: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str, true)) return;
                               ^
callbacks.cc: In function 'void on_nbases_entry_binary_changed(GtkEditable*, gpointer)':
callbacks.cc:24696:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24696:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24697:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24699:25: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str)) return;
                         ^
callbacks.cc: In function 'void on_nbases_entry_octal_changed(GtkEditable*, gpointer)':
callbacks.cc:24715:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24715:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24716:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24718:25: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str)) return;
                         ^
callbacks.cc: In function 'void on_nbases_entry_hexadecimal_changed(GtkEditable*, gpointer)':
callbacks.cc:24733:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24733:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24734:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24736:25: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str)) return;
                         ^
callbacks.cc: In function 'void on_nbases_entry_duo_changed(GtkEditable*, gpointer)':
callbacks.cc:24753:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24753:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24754:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24756:25: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str)) return;
                         ^
callbacks.cc: In function 'void on_nbases_entry_roman_changed(GtkEditable*, gpointer)':
callbacks.cc:24771:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(editable));
  ^~~~~~
callbacks.cc:24771:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:24772:20: error: 'str' was not declared in this scope
  remove_blank_ends(str);
                    ^~~
callbacks.cc:24774:25: error: 'last_is_operator' cannot be used as a function
  if(last_is_operator(str) && (str[str.length() - 1] != '|' || str.find('|') == str.length() - 1)) return;
                         ^
callbacks.cc: In function 'void on_nbases_button_del_clicked(GtkToggleButton*, gpointer)':
callbacks.cc:25099:2: error: 'string' was not declared in this scope
  string str = gtk_entry_get_text(GTK_ENTRY(w));
  ^~~~~~
callbacks.cc:25099:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:25101:5: error: 'str' was not declared in this scope
  if(str == gtk_entry_get_text(GTK_ENTRY(w))) gtk_editable_delete_text(GTK_EDITABLE(w), i1 - 1, i2 - 1);
     ^~~
callbacks.cc: In function 'gboolean on_units_convert_to_button_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:25332:4: error: 'string' was not declared in this scope
    string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(units_builder, "units_convert_search")));
    ^~~~~~
callbacks.cc:25332:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:25333:7: error: 'str' was not declared in this scope
    if(str.length() > 0) {
       ^~~
callbacks.cc:25424:3: error: 'string' was not declared in this scope
   string str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(units_builder, "units_convert_search")));
   ^~~~~~
callbacks.cc:25424:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:25425:3: error: 'str' was not declared in this scope
   str += buffer;
   ^~~
callbacks.cc: In function 'gboolean on_expressiontext_key_press_event(GtkWidget*, GdkEventKey*, gpointer)':
callbacks.cc:25760:44: error: 'expression_history' was not declared in this scope
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
callbacks.cc:25760:44: note: suggested alternative: 'expression_redo'
    if(expression_history_index + 1 < (int) expression_history.size()) {
                                            ^~~~~~~~~~~~~~~~~~
                                            expression_redo
callbacks.cc:25812:26: error: 'expression_history' was not declared in this scope
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
callbacks.cc:25812:26: note: suggested alternative: 'expression_redo'
      set_expression_text(expression_history[expression_history_index].c_str());
                          ^~~~~~~~~~~~~~~~~~
                          expression_redo
callbacks.cc: In function 'void on_csv_import_button_file_clicked(GtkButton*, gpointer)':
callbacks.cc:26003:2: error: 'string' was not declared in this scope
  string filestr = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_file")));
  ^~~~~~
callbacks.cc:26003:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26004:20: error: 'filestr' was not declared in this scope
  remove_blank_ends(filestr);
                    ^~~~~~~
callbacks.cc:26004:20: note: suggested alternative: 'fileno'
  remove_blank_ends(filestr);
                    ^~~~~~~
                    fileno
callbacks.cc:26009:10: error: expected ';' before 'name_str'
   string name_str = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvimport_builder, "csv_import_entry_name")));
          ^~~~~~~~
callbacks.cc:26010:21: error: 'name_str' was not declared in this scope
   remove_blank_ends(name_str);
                     ^~~~~~~~
callbacks.cc:26010:21: note: suggested alternative: 'file_str'
   remove_blank_ends(name_str);
                     ^~~~~~~~
                     file_str
callbacks.cc:26014:12: error: 'string' is not a class, namespace, or enumeration
    if(i != string::npos) name_str = name_str.substr(i + 1, name_str.length() - i);
            ^~~~~~
callbacks.cc:26016:12: error: 'string' is not a class, namespace, or enumeration
    if(i != string::npos) name_str = name_str.substr(0, i);
            ^~~~~~
callbacks.cc: In function 'void on_csv_export_button_file_clicked(GtkButton*, gpointer)':
callbacks.cc:26028:2: error: 'string' was not declared in this scope
  string filestr = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(csvexport_builder, "csv_export_entry_file")));
  ^~~~~~
callbacks.cc:26028:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26029:20: error: 'filestr' was not declared in this scope
  remove_blank_ends(filestr);
                    ^~~~~~~
callbacks.cc:26029:20: note: suggested alternative: 'fileno'
  remove_blank_ends(filestr);
                    ^~~~~~~
                    fileno
callbacks.cc: In function 'void on_type_label_file_clicked(GtkButton*, gpointer)':
callbacks.cc:26059:2: error: 'string' was not declared in this scope
  string filestr = gtk_entry_get_text(GTK_ENTRY(user_data));
  ^~~~~~
callbacks.cc:26059:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26060:20: error: 'filestr' was not declared in this scope
  remove_blank_ends(filestr);
                    ^~~~~~~
callbacks.cc:26060:20: note: suggested alternative: 'fileno'
  remove_blank_ends(filestr);
                    ^~~~~~~
                    fileno
callbacks.cc: In function 'void on_function_edit_button_add_subfunction_clicked(GtkButton*, gpointer)':
callbacks.cc:26099:2: error: 'string' was not declared in this scope
  string str = "\\";
  ^~~~~~
callbacks.cc:26099:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26101:2: error: 'str' was not declared in this scope
  str += i2s(last_subfunction_index);
  ^~~
callbacks.cc:26101:2: note: suggested alternative: 'iter'
  str += i2s(last_subfunction_index);
  ^~~
  iter
callbacks.cc: In function 'void on_function_edit_button_remove_subfunction_clicked(GtkButton*, gpointer)':
callbacks.cc:26131:4: error: 'string' was not declared in this scope
    string str = "\\";
    ^~~~~~
callbacks.cc:26131:4: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26132:4: error: 'str' was not declared in this scope
    str += i2s(index);
    ^~~
callbacks.cc:26132:4: note: suggested alternative: 'iter'
    str += i2s(index);
    ^~~
    iter
callbacks.cc: In function 'void on_variable_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_unknown_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_matrix_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_function_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_unit_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: At global scope:
callbacks.cc:26430:40: error: 'vector' has not been declared
 bool generate_plot(PlotParameters &pp, vector<MathStructure> &y_vectors, vector<MathStructure> &x_vectors, vector<PlotDataParameters*> &pdps) {
                                        ^~~~~~
callbacks.cc:26430:46: error: expected ',' or '...' before '<' token
 bool generate_plot(PlotParameters &pp, vector<MathStructure> &y_vectors, vector<MathStructure> &x_vectors, vector<PlotDataParameters*> &pdps) {
                                              ^
callbacks.cc: In function 'bool generate_plot(PlotParameters&, int)':
callbacks.cc:26447:7: error: 'y_vectors' was not declared in this scope
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26447:7: note: suggested alternative: 'y_vector'
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
       y_vector
callbacks.cc:26449:7: error: 'x_vectors' was not declared in this scope
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26449:7: note: suggested alternative: 'x_vector'
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
       x_vector
callbacks.cc:26454:7: error: 'y_vectors' was not declared in this scope
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26454:7: note: suggested alternative: 'y_vector'
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
       y_vector
callbacks.cc:26456:7: error: 'x_vectors' was not declared in this scope
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26456:7: note: suggested alternative: 'x_vector'
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
       x_vector
callbacks.cc:26461:5: error: 'y_vectors' was not declared in this scope
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
callbacks.cc:26461:5: note: suggested alternative: 'y_vector'
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
     y_vector
callbacks.cc:26462:5: error: 'x_vectors' was not declared in this scope
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
callbacks.cc:26462:5: note: suggested alternative: 'x_vector'
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
     x_vector
callbacks.cc:26464:5: error: 'y_vectors' was not declared in this scope
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
callbacks.cc:26464:5: note: suggested alternative: 'y_vector'
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
     y_vector
callbacks.cc:26466:5: error: 'x_vectors' was not declared in this scope
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
callbacks.cc:26466:5: note: suggested alternative: 'x_vector'
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
     x_vector
callbacks.cc:26473:7: error: 'y_vectors' was not declared in this scope
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26473:7: note: suggested alternative: 'y_vector'
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
       y_vector
callbacks.cc:26475:7: error: 'x_vectors' was not declared in this scope
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26475:7: note: suggested alternative: 'x_vector'
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
       x_vector
callbacks.cc:26481:7: error: 'y_vectors' was not declared in this scope
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26481:7: note: suggested alternative: 'y_vector'
       y_vectors.push_back(m_undefined);
       ^~~~~~~~~
       y_vector
callbacks.cc:26483:7: error: 'x_vectors' was not declared in this scope
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
callbacks.cc:26483:7: note: suggested alternative: 'x_vector'
       x_vectors.push_back(m_undefined);
       ^~~~~~~~~
       x_vector
callbacks.cc:26489:5: error: 'y_vectors' was not declared in this scope
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
callbacks.cc:26489:5: note: suggested alternative: 'y_vector'
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
     y_vector
callbacks.cc:26490:5: error: 'x_vectors' was not declared in this scope
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
callbacks.cc:26490:5: note: suggested alternative: 'x_vector'
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
     x_vector
callbacks.cc:26492:5: error: 'y_vectors' was not declared in this scope
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
callbacks.cc:26492:5: note: suggested alternative: 'y_vector'
     y_vectors.push_back(*y_vector);
     ^~~~~~~~~
     y_vector
callbacks.cc:26494:5: error: 'x_vectors' was not declared in this scope
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
callbacks.cc:26494:5: note: suggested alternative: 'x_vector'
     x_vectors.push_back(m_undefined);
     ^~~~~~~~~
     x_vector
callbacks.cc:26497:4: error: 'y_vectors' was not declared in this scope
    y_vectors.push_back(*y_vector);
    ^~~~~~~~~
callbacks.cc:26497:4: note: suggested alternative: 'y_vector'
    y_vectors.push_back(*y_vector);
    ^~~~~~~~~
    y_vector
callbacks.cc:26498:4: error: 'x_vectors' was not declared in this scope
    x_vectors.push_back(*x_vector);
    ^~~~~~~~~
callbacks.cc:26498:4: note: suggested alternative: 'x_vector'
    x_vectors.push_back(*x_vector);
    ^~~~~~~~~
    x_vector
callbacks.cc:26530:4: error: 'pdps' was not declared in this scope
    pdps.push_back(pdp);
    ^~~~
callbacks.cc:26530:4: note: suggested alternative: 'pdp'
    pdps.push_back(pdp);
    ^~~~
    pdp
callbacks.cc: In function 'void on_plot_button_save_clicked(GtkButton*, gpointer)':
callbacks.cc:26583:2: error: 'string' was not declared in this scope
  string title = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_plottitle")));
  ^~~~~~
callbacks.cc:26583:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26584:5: error: 'title' was not declared in this scope
  if(title.empty()) {
     ^~~~~
callbacks.cc:26584:5: note: suggested alternative: 'time'
  if(title.empty()) {
     ^~~~~
     time
callbacks.cc:26591:3: error: 'vector' was not declared in this scope
   vector<MathStructure> y_vectors;
   ^~~~~~
callbacks.cc:26591:3: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:26591:23: error: expected primary-expression before '>' token
   vector<MathStructure> y_vectors;
                       ^
callbacks.cc:26591:25: error: 'y_vectors' was not declared in this scope
   vector<MathStructure> y_vectors;
                         ^~~~~~~~~
callbacks.cc:26591:25: note: suggested alternative: 'new_vector'
   vector<MathStructure> y_vectors;
                         ^~~~~~~~~
                         new_vector
callbacks.cc:26592:23: error: expected primary-expression before '>' token
   vector<MathStructure> x_vectors;
                       ^
callbacks.cc:26592:25: error: 'x_vectors' was not declared in this scope
   vector<MathStructure> x_vectors;
                         ^~~~~~~~~
callbacks.cc:26592:25: note: suggested alternative: 'new_vector'
   vector<MathStructure> x_vectors;
                         ^~~~~~~~~
                         new_vector
callbacks.cc:26593:28: error: expected primary-expression before '*' token
   vector<PlotDataParameters*> pdps;
                            ^
callbacks.cc:26593:29: error: expected primary-expression before '>' token
   vector<PlotDataParameters*> pdps;
                             ^
callbacks.cc:26593:31: error: 'pdps' was not declared in this scope
   vector<PlotDataParameters*> pdps;
                               ^~~~
callbacks.cc:26593:31: note: suggested alternative: 'p2s'
   vector<PlotDataParameters*> pdps;
                               ^~~~
                               p2s
callbacks.cc: In function 'void update_plot()':
callbacks.cc:26610:2: error: 'vector' was not declared in this scope
  vector<MathStructure> y_vectors;
  ^~~~~~
callbacks.cc:26610:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:26610:22: error: expected primary-expression before '>' token
  vector<MathStructure> y_vectors;
                      ^
callbacks.cc:26610:24: error: 'y_vectors' was not declared in this scope
  vector<MathStructure> y_vectors;
                        ^~~~~~~~~
callbacks.cc:26610:24: note: suggested alternative: 'new_vector'
  vector<MathStructure> y_vectors;
                        ^~~~~~~~~
                        new_vector
callbacks.cc:26611:22: error: expected primary-expression before '>' token
  vector<MathStructure> x_vectors;
                      ^
callbacks.cc:26611:24: error: 'x_vectors' was not declared in this scope
  vector<MathStructure> x_vectors;
                        ^~~~~~~~~
callbacks.cc:26611:24: note: suggested alternative: 'new_vector'
  vector<MathStructure> x_vectors;
                        ^~~~~~~~~
                        new_vector
callbacks.cc:26612:27: error: expected primary-expression before '*' token
  vector<PlotDataParameters*> pdps;
                           ^
callbacks.cc:26612:28: error: expected primary-expression before '>' token
  vector<PlotDataParameters*> pdps;
                            ^
callbacks.cc:26612:30: error: 'pdps' was not declared in this scope
  vector<PlotDataParameters*> pdps;
                              ^~~~
callbacks.cc:26612:30: note: suggested alternative: 'p2s'
  vector<PlotDataParameters*> pdps;
                              ^~~~
                              p2s
callbacks.cc: At global scope:
callbacks.cc:26629:89: error: 'string' has not been declared
 void generate_plot_series(MathStructure **x_vector, MathStructure **y_vector, int type, string str, string str_x) {
                                                                                         ^~~~~~
callbacks.cc:26629:101: error: 'string' has not been declared
 void generate_plot_series(MathStructure **x_vector, MathStructure **y_vector, int type, string str, string str_x) {
                                                                                                     ^~~~~~
callbacks.cc: In function 'void generate_plot_series(MathStructure**, MathStructure**, int, int, int)':
callbacks.cc:26638:99: error: no matching function for call to 'Calculator::unlocalizeExpression(int&, ParseOptions&)'
   if(!CALCULATOR->calculate(*y_vector, CALCULATOR->unlocalizeExpression(str, evalops.parse_options), 5000, eo)) {
                                                                                                   ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:17:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:709:14: note: candidate: std::__cxx11::string Calculator::unlocalizeExpression(std::__cxx11::string, const ParseOptions&) const
  std::string unlocalizeExpression(std::string str, const ParseOptions &po = default_parse_options) const;
              ^~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:709:14: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
callbacks.cc:26666:301: error: no matching function for call to 'Calculator::expressionToPlotVector(int&, MathStructure&, MathStructure&, MathStructure, MathStructure*&, int&, ParseOptions&, int)'
    *y_vector = new MathStructure(CALCULATOR->expressionToPlotVector(str, min, max, CALCULATOR->calculate(CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_step"))), evalops.parse_options), eo), *x_vector, str_x, evalops.parse_options, 5000));
                                                                                                                                                                                                                                                                                                             ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:17:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1222:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, int, bool, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, int steps, bool separate_complex_part, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1222:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1223:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, int, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, int steps, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1223:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1224:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, float, float, int, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, float min, float max, int steps, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1224:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1225:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, const MathStructure&, bool, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, const MathStructure &step, bool separate_complex_part, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1225:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1226:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, const MathStructure&, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, const MathStructure &step, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1226:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1227:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, float, float, float, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, float min, float max, float step, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1227:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1228:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &x_vector, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1228:16: note:   candidate expects 5 arguments, 8 provided
callbacks.cc:26668:243: error: no matching function for call to 'Calculator::expressionToPlotVector(int&, MathStructure&, MathStructure&, gint, MathStructure*&, int&, ParseOptions&, int)'
    *y_vector = new MathStructure(CALCULATOR->expressionToPlotVector(str, min, max, gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(gtk_builder_get_object(plot_builder, "plot_spinbutton_steps"))), *x_vector, str_x, evalops.parse_options, 5000));
                                                                                                                                                                                                                                                   ^
In file included from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:17:0,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1222:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, int, bool, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, int steps, bool separate_complex_part, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1222:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1223:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, int, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, int steps, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1223:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1224:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, float, float, int, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, float min, float max, int steps, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1224:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1225:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, const MathStructure&, bool, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, const MathStructure &step, bool separate_complex_part, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1225:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1226:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, const MathStructure&, const MathStructure&, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &min, const MathStructure &max, const MathStructure &step, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1226:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1227:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, float, float, float, MathStructure*, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, float min, float max, float step, MathStructure *x_vector = NULL, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1227:16: note:   no known conversion for argument 1 from 'int' to 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}'
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1228:16: note: candidate: MathStructure Calculator::expressionToPlotVector(std::__cxx11::string, const MathStructure&, std::__cxx11::string, const ParseOptions&, int)
  MathStructure expressionToPlotVector(std::string expression, const MathStructure &x_vector, std::string x_var = "\\x", const ParseOptions &po = default_parse_options, int msecs = 5000);
                ^~~~~~~~~~~~~~~~~~~~~~
/pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/Calculator.h:1228:16: note:   candidate expects 5 arguments, 8 provided
callbacks.cc: In function 'void on_plot_button_add_clicked(GtkButton*, gpointer)':
callbacks.cc:26676:2: error: 'string' was not declared in this scope
  string expression = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_expression")));
  ^~~~~~
callbacks.cc:26676:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26677:5: error: 'expression' was not declared in this scope
  if(expression.find_first_not_of(SPACES) == string::npos) {
     ^~~~~~~~~~
callbacks.cc:26677:5: note: suggested alternative: 'f_expression'
  if(expression.find_first_not_of(SPACES) == string::npos) {
     ^~~~~~~~~~
     f_expression
callbacks.cc:26677:45: error: 'string' is not a class, namespace, or enumeration
  if(expression.find_first_not_of(SPACES) == string::npos) {
                                             ^~~~~~
callbacks.cc:26683:9: error: expected ';' before 'title'
  string title = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_title")));
         ^~~~~
callbacks.cc:26689:9: error: expected ';' before 'str_x'
  string str_x = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")));
         ^~~~~
callbacks.cc:26690:20: error: 'str_x' was not declared in this scope
  remove_blank_ends(str_x);
                    ^~~~~
callbacks.cc:26690:20: note: suggested alternative: 'Matrix'
  remove_blank_ends(str_x);
                    ^~~~~
                    Matrix
callbacks.cc:26699:33: error: 'title' was not declared in this scope
  if((type == 1 || type == 2) && title.empty()) {
                                 ^~~~~
callbacks.cc:26699:33: note: suggested alternative: 'time'
  if((type == 1 || type == 2) && title.empty()) {
                                 ^~~~~
                                 time
callbacks.cc:26700:47: error: 'expression' was not declared in this scope
   Variable *v = CALCULATOR->getActiveVariable(expression);
                                               ^~~~~~~~~~
callbacks.cc:26700:47: note: suggested alternative: 'f_expression'
   Variable *v = CALCULATOR->getActiveVariable(expression);
                                               ^~~~~~~~~~
                                               f_expression
callbacks.cc:26706:51: error: 'expression' was not declared in this scope
  generate_plot_series(&x_vector, &y_vector, type, expression, str_x);
                                                   ^~~~~~~~~~
callbacks.cc:26706:51: note: suggested alternative: 'f_expression'
  generate_plot_series(&x_vector, &y_vector, type, expression, str_x);
                                                   ^~~~~~~~~~
                                                   f_expression
callbacks.cc:26710:53: error: 'title' was not declared in this scope
  gtk_list_store_set(tPlotFunctions_store, &iter, 0, title.c_str(), 1, expression.c_str(), 2, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_style"))), 3, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_smoothing"))), 4, type, 5, axis, 6, rows, 7, x_vector, 8, y_vector, 9, str_x.c_str(), -1);
                                                     ^~~~~
callbacks.cc:26710:53: note: suggested alternative: 'time'
  gtk_list_store_set(tPlotFunctions_store, &iter, 0, title.c_str(), 1, expression.c_str(), 2, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_style"))), 3, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_smoothing"))), 4, type, 5, axis, 6, rows, 7, x_vector, 8, y_vector, 9, str_x.c_str(), -1);
                                                     ^~~~~
                                                     time
callbacks.cc: In function 'void on_plot_button_modify_clicked(GtkButton*, gpointer)':
callbacks.cc:26721:3: error: 'string' was not declared in this scope
   string expression = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_expression")));
   ^~~~~~
callbacks.cc:26721:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26722:6: error: 'expression' was not declared in this scope
   if(expression.find_first_not_of(SPACES) == string::npos) {
      ^~~~~~~~~~
callbacks.cc:26722:6: note: suggested alternative: 'f_expression'
   if(expression.find_first_not_of(SPACES) == string::npos) {
      ^~~~~~~~~~
      f_expression
callbacks.cc:26722:46: error: 'string' is not a class, namespace, or enumeration
   if(expression.find_first_not_of(SPACES) == string::npos) {
                                              ^~~~~~
callbacks.cc:26728:10: error: expected ';' before 'title'
   string title = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_title")));
          ^~~~~
callbacks.cc:26734:10: error: expected ';' before 'str_x'
   string str_x = gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(plot_builder, "plot_entry_variable")));
          ^~~~~
callbacks.cc:26735:21: error: 'str_x' was not declared in this scope
   remove_blank_ends(str_x);
                     ^~~~~
callbacks.cc:26735:21: note: suggested alternative: 'Matrix'
   remove_blank_ends(str_x);
                     ^~~~~
                     Matrix
callbacks.cc:26744:34: error: 'title' was not declared in this scope
   if((type == 1 || type == 2) && title.empty()) {
                                  ^~~~~
callbacks.cc:26744:34: note: suggested alternative: 'time'
   if((type == 1 || type == 2) && title.empty()) {
                                  ^~~~~
                                  time
callbacks.cc:26745:48: error: 'expression' was not declared in this scope
    Variable *v = CALCULATOR->getActiveVariable(expression);
                                                ^~~~~~~~~~
callbacks.cc:26745:48: note: suggested alternative: 'f_expression'
    Variable *v = CALCULATOR->getActiveVariable(expression);
                                                ^~~~~~~~~~
                                                f_expression
callbacks.cc:26756:52: error: 'expression' was not declared in this scope
   generate_plot_series(&x_vector, &y_vector, type, expression, str_x);
                                                    ^~~~~~~~~~
callbacks.cc:26756:52: note: suggested alternative: 'f_expression'
   generate_plot_series(&x_vector, &y_vector, type, expression, str_x);
                                                    ^~~~~~~~~~
                                                    f_expression
callbacks.cc:26758:54: error: 'title' was not declared in this scope
   gtk_list_store_set(tPlotFunctions_store, &iter, 0, title.c_str(), 1, expression.c_str(), 2, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_style"))), 3, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_smoothing"))), 4, type, 5, axis, 6, rows, 7, x_vector, 8, y_vector, 9, str_x.c_str(), -1);
                                                      ^~~~~
callbacks.cc:26758:54: note: suggested alternative: 'time'
   gtk_list_store_set(tPlotFunctions_store, &iter, 0, title.c_str(), 1, expression.c_str(), 2, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_style"))), 3, gtk_combo_box_get_active(GTK_COMBO_BOX(gtk_builder_get_object(plot_builder, "plot_combobox_smoothing"))), 4, type, 5, axis, 6, rows, 7, x_vector, 8, y_vector, 9, str_x.c_str(), -1);
                                                      ^~~~~
                                                      time
callbacks.cc: In function 'void on_plot_button_range_apply_clicked(GtkButton*, gpointer)':
callbacks.cc:26833:64: error: invalid conversion from 'gchar* {aka char*}' to 'int' [-fpermissive]
   generate_plot_series(&x_vector, &y_vector, type, gstr2, gstr3);
                                                                ^
callbacks.cc:26629:6: note:   initializing argument 4 of 'void generate_plot_series(MathStructure**, MathStructure**, int, int, int)'
 void generate_plot_series(MathStructure **x_vector, MathStructure **y_vector, int type, string str, string str_x) {
      ^~~~~~~~~~~~~~~~~~~~
callbacks.cc:26833:64: error: invalid conversion from 'gchar* {aka char*}' to 'int' [-fpermissive]
   generate_plot_series(&x_vector, &y_vector, type, gstr2, gstr3);
                                                                ^
callbacks.cc:26629:6: note:   initializing argument 5 of 'void generate_plot_series(MathStructure**, MathStructure**, int, int, int)'
 void generate_plot_series(MathStructure **x_vector, MathStructure **y_vector, int type, string str, string str_x) {
      ^~~~~~~~~~~~~~~~~~~~
callbacks.cc: In function 'void convert_from_convert_entry_unit()':
callbacks.cc:26847:2: error: 'string' was not declared in this scope
  string ceu_str = CALCULATOR->unlocalizeExpression(gtk_entry_get_text(GTK_ENTRY(gtk_builder_get_object(main_builder, "convert_entry_unit"))), evalops.parse_options);
  ^~~~~~
callbacks.cc:26847:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26848:134: error: 'ceu_str' was not declared in this scope
  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(main_builder, "convert_button_set_missing_prefixes"))) && !ceu_str.empty()) {
                                                                                                                                      ^~~~~~~
callbacks.cc:26848:134: note: suggested alternative: 'eqstr'
  if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gtk_builder_get_object(main_builder, "convert_button_set_missing_prefixes"))) && !ceu_str.empty()) {
                                                                                                                                      ^~~~~~~
                                                                                                                                      eqstr
callbacks.cc:26858:47: error: 'ceu_str' was not declared in this scope
  executeCommand(COMMAND_CONVERT_STRING, true, ceu_str);
                                               ^~~~~~~
callbacks.cc:26858:47: note: suggested alternative: 'eqstr'
  executeCommand(COMMAND_CONVERT_STRING, true, ceu_str);
                                               ^~~~~~~
                                               eqstr
callbacks.cc: At global scope:
callbacks.cc:26877:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<GtkWidget*> ewindows;
 ^~~~~~
 Vector
callbacks.cc:26878:1: error: 'vector' does not name a type; did you mean 'Vector'?
 vector<DataObject*> eobjects;
 ^~~~~~
 Vector
callbacks.cc: In function 'void on_element_button_function_clicked(GtkButton*, gpointer)':
callbacks.cc:26885:24: error: 'ewindows' was not declared in this scope
  for(size_t i = 0; i < ewindows.size(); i++) {
                        ^~~~~~~~
callbacks.cc:26885:24: note: suggested alternative: 'printops'
  for(size_t i = 0; i < ewindows.size(); i++) {
                        ^~~~~~~~
                        printops
callbacks.cc:26887:8: error: 'eobjects' was not declared in this scope
    o = eobjects[i];
        ^~~~~~~~
callbacks.cc:26887:8: note: suggested alternative: 'GObject'
    o = eobjects[i];
        ^~~~~~~~
        GObject
callbacks.cc:26893:3: error: 'string' was not declared in this scope
   string str = ds->preferredInputName(printops.abbreviate_names, printops.use_unicode_signs, false, false, &can_display_unicode_string_function, (void*) expressiontext).name;
   ^~~~~~
callbacks.cc:26893:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26894:3: error: 'str' was not declared in this scope
   str += "(";
   ^~~
callbacks.cc: In function 'void on_element_button_close_clicked(GtkButton*, gpointer)':
callbacks.cc:26905:24: error: 'ewindows' was not declared in this scope
  for(size_t i = 0; i < ewindows.size(); i++) {
                        ^~~~~~~~
callbacks.cc:26905:24: note: suggested alternative: 'printops'
  for(size_t i = 0; i < ewindows.size(); i++) {
                        ^~~~~~~~
                        printops
callbacks.cc:26908:4: error: 'eobjects' was not declared in this scope
    eobjects.erase(eobjects.begin() + i);
    ^~~~~~~~
callbacks.cc:26908:4: note: suggested alternative: 'GObject'
    eobjects.erase(eobjects.begin() + i);
    ^~~~~~~~
    GObject
callbacks.cc: In function 'void on_element_button_clicked(GtkButton*, gpointer)':
callbacks.cc:26920:3: error: 'ewindows' was not declared in this scope
   ewindows.push_back(dialog);
   ^~~~~~~~
callbacks.cc:26920:3: note: suggested alternative: 'printops'
   ewindows.push_back(dialog);
   ^~~~~~~~
   printops
callbacks.cc:26921:3: error: 'eobjects' was not declared in this scope
   eobjects.push_back(e);
   ^~~~~~~~
callbacks.cc:26921:3: note: suggested alternative: 'GObject'
   eobjects.push_back(e);
   ^~~~~~~~
   GObject
callbacks.cc:26941:3: error: 'string' was not declared in this scope
   string str = "<span size=\"large\">"; str += e->getProperty(p_number); str += "</span>";
   ^~~~~~
callbacks.cc:26941:3: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26941:41: error: 'str' was not declared in this scope
   string str = "<span size=\"large\">"; str += e->getProperty(p_number); str += "</span>";
                                         ^~~
callbacks.cc:26988:10: error: expected ';' before 'sval'
   string sval;
          ^~~~
callbacks.cc:26991:5: error: 'sval' was not declared in this scope
     sval = e->getPropertyDisplayString(dp);
     ^~~~
callbacks.cc:26991:5: note: suggested alternative: 'stat'
     sval = e->getPropertyDisplayString(dp);
     ^~~~
     stat
callbacks.cc: In function 'void on_dataset_edit_button_new_property_clicked(GtkButton*, gpointer)':
callbacks.cc:27022:3: error: 'tmp_props' was not declared in this scope
   tmp_props.push_back(dp);
   ^~~~~~~~~
callbacks.cc:27022:3: note: suggested alternative: 'top_ips'
   tmp_props.push_back(dp);
   ^~~~~~~~~
   top_ips
callbacks.cc:27023:3: error: 'tmp_props_orig' was not declared in this scope
   tmp_props_orig.push_back(NULL);
   ^~~~~~~~~~~~~~
callbacks.cc: In function 'void on_dataset_edit_button_del_property_clicked(GtkButton*, gpointer)':
callbacks.cc:27040:25: error: 'tmp_props' was not declared in this scope
   for(size_t i = 0; i < tmp_props.size(); i++) {
                         ^~~~~~~~~
callbacks.cc:27040:25: note: suggested alternative: 'top_ips'
   for(size_t i = 0; i < tmp_props.size(); i++) {
                         ^~~~~~~~~
                         top_ips
callbacks.cc:27042:8: error: 'tmp_props_orig' was not declared in this scope
     if(tmp_props_orig[i]) {
        ^~~~~~~~~~~~~~
callbacks.cc: In function 'void on_dataset_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_dataproperty_edit_button_names_clicked(GtkButton*, gpointer)':
callbacks.cc:26294:5: error: 'string' was not declared in this scope
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
callbacks.cc:26294:5: note: suggested alternatives:
     string str;\
     ^
callbacks.cc:26294:5: note: in definition of macro 'SET_NAMES_LE'
     string str;\
     ^~~~~~
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:26303:7: error: 'str' was not declared in this scope
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26303:7: note: suggested alternative: 'gstr'
       str += "+ ";\
       ^
callbacks.cc:26303:7: note: in definition of macro 'SET_NAMES_LE'
       str += "+ ";\
       ^~~
callbacks.cc:26313:65: error: 'str' was not declared in this scope
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc:26313:65: note: suggested alternative: 'iter'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^
callbacks.cc:26313:65: note: in definition of macro 'SET_NAMES_LE'
     gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(x, z)), str.c_str());
                                                                 ^~~
callbacks.cc: In function 'void on_menu_item_set_unknowns_activate(GtkMenuItem*, gpointer)':
callbacks.cc:27083:2: error: 'vector' was not declared in this scope
  vector<GtkWidget*> entry;
  ^~~~~~
callbacks.cc:27083:2: note: suggested alternative:
In file included from /usr/include/g++/vector:64:0,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/includes.h:17,
                 from /pbulk/work/math/qalculate-gtk/work/.x11-buildlink/include/libqalculate/qalculate.h:15,
                 from main.h:33,
                 from callbacks.h:27,
                 from callbacks.cc:28:
/usr/include/g++/bits/stl_vector.h:216:11: note:   'std::vector'
     class vector : protected _Vector_base<_Tp, _Alloc>
           ^~~~~~
callbacks.cc:27083:18: error: expected primary-expression before '*' token
  vector<GtkWidget*> entry;
                  ^
callbacks.cc:27083:19: error: expected primary-expression before '>' token
  vector<GtkWidget*> entry;
                   ^
callbacks.cc:27083:21: error: 'entry' was not declared in this scope
  vector<GtkWidget*> entry;
                     ^~~~~
callbacks.cc:27083:21: note: suggested alternative: '__try'
  vector<GtkWidget*> entry;
                     ^~~~~
                     __try
callbacks.cc:27100:2: error: 'string' was not declared in this scope
  string result_save = result_text;
  ^~~~~~
callbacks.cc:27100:2: note: suggested alternatives:
In file included from /usr/include/g++/iosfwd:39:0,
                 from /usr/include/g++/ios:38,
                 from /usr/include/g++/istream:38,
                 from /usr/include/g++/fstream:38,
                 from callbacks.cc:25:
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
   typedef basic_string<char>    string;
                                 ^~~~~~
/usr/include/g++/bits/stringfwd.h:74:33: note:   'std::__cxx11::string'
callbacks.cc:27103:17: error: 'unknown_text' was not declared in this scope
  vector<string> unknown_text;
                 ^~~~~~~~~~~~
callbacks.cc:27103:17: note: suggested alternative: 'unknowns'
  vector<string> unknown_text;
                 ^~~~~~~~~~~~
                 unknowns
callbacks.cc:27109:11: error: expected ';' before 'str'
    string str, result_mod = "";
           ^~~
callbacks.cc:27112:5: error: 'str' was not declared in this scope
     str = gtk_entry_get_text(GTK_ENTRY(entry[i]));
     ^~~
callbacks.cc:27115:10: error: 'result_mod' was not declared in this scope
      if(!result_mod.empty()) {
          ^~~~~~~~~~
callbacks.cc:27115:10: note: suggested alternative: 'resultview'
      if(!result_mod.empty()) {
          ^~~~~~~~~~
          resultview
callbacks.cc:27128:6: error: 'result_mod' was not declared in this scope
      result_mod += unknowns[i].print().c_str();
      ^~~~~~~~~~
callbacks.cc:27128:6: note: suggested alternative: 'resultview'
      result_mod += unknowns[i].print().c_str();
      ^~~~~~~~~~
      resultview
callbacks.cc:27149:45: error: 'result_mod' was not declared in this scope
     executeCommand(COMMAND_TRANSFORM, true, result_mod);
                                             ^~~~~~~~~~
callbacks.cc:27149:45: note: suggested alternative: 'resultview'
     executeCommand(COMMAND_TRANSFORM, true, result_mod);
                                             ^~~~~~~~~~
                                             resultview
callbacks.cc:27153:41: error: 'result_mod' was not declared in this scope
     setResult(NULL, true, false, false, result_mod);
                                         ^~~~~~~~~~
callbacks.cc:27153:41: note: suggested alternative: 'resultview'
     setResult(NULL, true, false, false, result_mod);
                                         ^~~~~~~~~~
                                         resultview
callbacks.cc:27163:12: error: expected ';' before 'result_mod'
     string result_mod = "";
            ^~~~~~~~~~
callbacks.cc:27167:11: error: 'result_mod' was not declared in this scope
       if(!result_mod.empty()) {
           ^~~~~~~~~~
callbacks.cc:27167:11: note: suggested alternative: 'resultview'
       if(!result_mod.empty()) {
           ^~~~~~~~~~
           resultview
callbacks.cc:27171:7: error: 'result_mod' was not declared in this scope
       result_mod += unknowns[i].print().c_str();
       ^~~~~~~~~~
callbacks.cc:27171:7: note: suggested alternative: 'resultview'
       result_mod += unknowns[i].print().c_str();
       ^~~~~~~~~~
       resultview
callbacks.cc:27177:41: error: 'result_mod' was not declared in this scope
     setResult(NULL, true, false, false, result_mod);
                                         ^~~~~~~~~~
callbacks.cc:27177:41: note: suggested alternative: 'resultview'
     setResult(NULL, true, false, false, result_mod);
                                         ^~~~~~~~~~
                                         resultview
gmake[2]: *** [Makefile:515: callbacks.o] Error 1
gmake[2]: Leaving directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0/src'
gmake[1]: *** [Makefile:442: all-recursive] Error 1
gmake[1]: Leaving directory '/pbulk/work/math/qalculate-gtk/work/qalculate-gtk-3.5.0'
gmake: *** [Makefile:374: all] Error 2
*** Error code 2

Stop.
make[1]: stopped in /usr/pkgsrc/math/qalculate-gtk
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/math/qalculate-gtk