C++ Library containing a lot of needful things: Stack Trace, Command Line Parser, Resource Handling, Configuration Files, Unix Command Execution, Directories, Regular Expressions, Tokenizer, Function Trace, Standard Extensions.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.


  1. 2018-11-21
  2. Upgraded to support C++17, mainly all throw declarations have been
  3. replaced by noexcept. Now minimum requirement is C++11. The library
  4. should be reviewed with regard to latest C++ standards. Probably some
  5. features can be removed, especially regular expressions are now part
  6. of the standard.
  7. 2006-02-04
  8. New RPM mrw-c++-minimal with minimal dependencies on other libraries
  9. (boost, ltdl, log4cxx), but without debugging support, means not stack
  10. trace, no logging.
  11. 2005-04-18
  12. New feature: Execution of commands is can now be done "in the
  13. background", without the need of threads (similar to the use of
  14. select, or non-blocking pipes, actually it is achieved through non
  15. blocking pipes). See class PartialExec for details.
  16. 2005-04-06
  17. New feature: Automatic initialisation of log4cxx, just link to
  18. libmrwlog4cxxconfiguration.
  19. 2005-03-05
  20. Really cool new feature: Automagic function trace: Don't change a
  21. single line in your code (if log4cxx is already configured), just use
  22. GNU gcc with option -finstrument functions, and link to
  23. libmrwfunctiontracelog4cxx!
  24. 2005-02-23
  25. New feature: A Function Tracer. Add the METHOD macro as first line in
  26. all your methods and the FUNCTION macro in your functions, then you'll
  27. get a nice log4cxx based entry and exit tracing.
  28. New: mrw::ifelse, acts as A ? A : B but with only one access to A
  29. Repaired and tested: mrw::Dir (on my system, type is always UNKOWN)
  30. DELETED:
  31. - mrw::min and mrw::max
  32. - SimpleTrace (use log4cxx instead!)
  33. 2005-02-18
  34. Added a new class DynamicLibrary which is a wrapper around the system
  35. independent linltdl from the libtool. You can use it for loading
  36. symbols from shared libraries at runtime.
  37. Added new functions ifelse which implement (a?a:b), but without the
  38. drawback of having expression a evaluated twice.
  39. "libbfd" from the GNU binutils is now no more linked to the library,
  40. but loaded at runtime using the new DynamicLibrary class. This way,
  41. there is a dependency less in the RPMs. The dependency was bad,
  42. because the libbfd does not use the normal library versioning, so you
  43. used to have to install the exactly same version of the binutils, as
  44. the compiler of the RPMs, and this was inacceptable for me.
  45. 2005-02-03
  46. Added facilities for handling UNIX C library calls that set variable
  47. errno in class Errno and in exeption unix_error
  48. New static methods in Args to simplify access to command line
  49. parameters.
  50. 2005-01-07
  51. There is a new configuration file handler to read and write settings
  52. from a Unix like configuration file.
  53. 2004-12-20
  54. Warning: Interface change!
  55. Conversion from string mrw::to<> and string operator>> throw exception
  56. in case of failure!
  57. 2004-12-17
  58. The new implementation of Exec was not so stable, now it works perfectly.
  59. New feature: A simple string tokenizer, in the regular expressions module.
  60. 2004-12-14
  61. Extended Exec so, that it is possible to pass stdin to the child
  62. process.
  63. 2004-12-10:
  64. Added a new library for handling regular expressions (because using
  65. boost resultet in link errors
  66. UPDATE:
  67. Found the source of boost problem: It's kdevelops fault, kdevelop
  68. disables C++ by default (-fno-exception -fno-rtti)! The regexp library
  69. still remains, but may be deleted in future, if I think that boost's
  70. is better. Customer feedback is welcome, please tell me if you need my
  71. implementation.
  72. 2004-10-13:
  73. StackTrace now can load not only the executable, but also shared
  74. libraries. On Linux, if StackTrace is initialized without parameters,
  75. then not only the executable is loaded, but all shared libraries with
  76. their offset are parsed from /proc/self/maps.
  77. - no more need for /usr/bin/ldd
  78. - new functions mrw::readline