Václav Slavík
aef081f465
Don't rely on RVO in wxON_BLOCK_EXIT_SET().
...
MakeVarSetter() relies on the compiler always using RVO, as
VariableSetterImpl<> doesn't have correct copy ctor; worse yet, its use
wasn't detected at compile time. With some compilers (e.g. VC++ 2008
with non-trivial variable types), this resulted in the variable being
reset too soon, immediately in the place where the macro was used.
Fixed by using the same technique already used in wxScopeGuardImpl. In
fact, VariableSetterImpl is just another special case of
wxScopeGuardImpl, so just derive from the latter.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-24 13:14:47 +00:00
Vadim Zeitlin
011ad05168
Remove wxHAS_NAMESPACES and gcc 2.95 checks.
...
We use namespaces elsewhere without any checks now so it doesn't make sense to
keep checking for them here.
We also don't support g++ 2.95 since ages so no need to check for it neither.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-02-12 22:47:21 +00:00
Vadim Zeitlin
e196e5232a
store the value to be set inside wxON_BLOCK_EXIT_SET(), this allows to use temporaries with it and also fixes the test failure when built with icc and optimizations on (not sure if it is a compiler bug or not but in any case it seems better to fix it)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-19 12:06:17 +00:00
Francesco Montorsi
22c5cac637
fix typo (missing P2 argument in template)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56197 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-09 14:23:06 +00:00
Vadim Zeitlin
bcffb4d1a9
add 3 parameter scope guard; improve its documentation
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-09 11:26:50 +00:00
Vadim Zeitlin
d2a48d5cbc
added convenient wxON_BLOCK_EXIT_SET() macro
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52857 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-27 16:13:50 +00:00
Vadim Zeitlin
51c679d5e2
added convenient wxON_BLOCK_EXIT_THISn() macros wrapping wxON_BLOCK_EXIT_OBJn(*this)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-27 15:37:41 +00:00
Vadim Zeitlin
f7e81ed1c2
make wxScopeGuardImplBase copy ctor public to avoid Sun CC warnings
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-21 12:27:25 +00:00
Stefan Neis
e196c0a258
Compilation fix for really old gcc versions.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-07 13:28:16 +00:00
Vadim Zeitlin
2bb3c0c0dd
take the address of the member in wxON_BLOCK_EXIT_OBJ macros
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-07-20 13:30:28 +00:00
Włodzimierz Skiba
822fc19ef0
wxScopeGuard adjustements for Open Watcom.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-07-18 13:46:29 +00:00
Włodzimierz Skiba
17e22c50bf
Open Watcom adjustement.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-06-17 11:08:32 +00:00
Vadim Zeitlin
426a63a3a2
fixed wxON_BLOCK_EXIT macros to work with new definition of wxMAKE_UNIQUE_NAME() (was broken for VC++...)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-06-16 23:43:19 +00:00
Włodzimierz Skiba
d775fa8235
Source cleaning: whitespaces, tabs, -1/wxID_ANY/wxNOT_FOUND/wxDefaultCoord, TRUE/true, FALSE/false.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-22 14:38:52 +00:00
Julian Smart
655719367a
Use old licence name
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e
Name and version changes
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Vadim Zeitlin
f0658b1e1e
corrected wxCATCH_ALL usage
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-09-17 17:09:23 +00:00
Vadim Zeitlin
5800b5bed6
use wxON_BLOCK_EXIT instead of just ON_BLOCK_EXIT
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-09-17 16:59:40 +00:00
Vadim Zeitlin
c66cca2af0
added wxScopeGuard; test it in the sample
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21694 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2003-07-05 23:56:08 +00:00