Tuesday, January 3, 2017

Digest for comp.lang.c++@googlegroups.com - 21 updates in 4 topics

moroney@world.std.spaamtrap.com (Michael Moroney): Jan 03 03:58AM

Gee, the code from the forged Relf looks better than the code from
the real Jeff.
Jeff-Relf.Me <@.>: Jan 03 12:46AM -0800

Jeff-Relf.Me <@..sour>: Jan 03 08:51AM

؛ ɐuן* duן ɟǝpǝdʎʇ ؛ duן* ɹɐɥɔʍ ɟǝpǝdʎʇ ؛ ɹɐɥɔʍ ʇ‾ɹɐɥɔʍ ɟǝpǝdʎʇ

( ɾǝ => ɾ++ ) ǝןıɥʍ ؛ Ɩ- = ɾ 'Ɩ - ( u ) = ɾǝ ʇuı ( u )dooן ǝuıɟǝp#

:sןɐqoןb ɹɐɟ

( pıɯ‾ =< ʇsɐɟ‾ǝǝ‾ = ɟ‾ 'pıɯ =< ʇsɐɟ‾ǝǝ = ɟ 'pıɯ‾ =< ʍoןs‾ǝǝ‾ = s‾ 'pıɯ =< ʍoןs‾ǝǝ = s ) sbɐןɟɯʇq ǝuıɟǝp#
( pıɯ‾ => ʇsɐɟ‾qq‾ = ɟ‾ 'pıɯ => ʇsɐɟ‾qq = ɟ 'pıɯ‾ => ʍoןs‾qq‾ = s‾ 'pıɯ => ʍoןs‾qq = s ) sbɐןɟdoʇ ǝuıɟǝp#

{ ؛ dd‾++ = xǝǝ‾ 'dd++ = xǝǝ ؛( dnɥɔʇɐɯ ) ǝןıɥʍ
؛ ǝǝ‾ = dd‾ 'ǝǝ = dd 'dd‾ = qq‾ = xqq‾ 'dd = qq = xqq
؛( uʍpɥɔʇɐɯ ) ǝןıɥʍ ؛ Ɩ - qq‾ = dd‾ 'Ɩ - qq = dd ɐuן
} ( ǝǝ‾ ɐuן 'qq‾ ɐuן 'ǝǝ ɐuן 'qq ɐuן )ɥɔuıd

{ ؛ ɥɔʇɐɯɯʇq uɹnʇǝɹ ؛ ɟ*¡ : ɾǝ- ¿ dnɥɔʇɐɯ¡ =+ ɾǝ ( 66/ןǝʌǝן + Ɩ )dooן
؛ dd‾ = ɥɔʇɐɯ‾ǝǝ‾ 'dd = ɥɔʇɐɯ‾ǝǝ } ( qq‾ ɐuן 'dd‾ ɐuן 'qq ɐuן 'dd ɐuן )ɥɔʇɐɯɯʇqb ʇuı

{ ؛ ɥɔʇɐɯdoʇ uɹnʇǝɹ ؛ ɟ*¡ : ɾǝ- ¿ uʍpɥɔʇɐɯ¡ =+ ɾǝ ( 66/ןǝʌǝן + Ɩ )dooן
˙sǝuıן ɟo spǝɹpunɥ „ʇno buıɯooz„ uǝɥʍ pǝpǝǝu ǝɹɐ sǝɥɔʇɐɯ ǝɹoɯ //
؛poob sı ( sǝuıן ʞuɐןq buıʇunoɔ ʇou ) ɥɔʇɐɯ ǝuo 'suosıɹɐdɯoɔ ʎqɹɐǝu ɹoɟ //

؛ --dd‾ '--dd 'dd‾ = ɥɔʇɐɯ‾qq‾ 'dd = ɥɔʇɐɯ‾qq } ( ǝǝ‾ ɐuן 'dd‾ ɐuן 'ǝǝ ɐuן 'dd ɐuן )ɥɔʇɐɯdoʇb ʇuı

( dd* : 0 ¿ qq > dd-- = d ) ( qq 'dd 'd )dnɥɔʇɐɯ‾ ǝuıɟǝp#
( ɥɔʇɐɯsuǝʞoʇ = ɥɔʇɐɯɯʇq '( qq‾ 'dd‾ 'ɟ‾ )dnɥɔʇɐɯ‾ '( qq 'dd 'ɟ )dnɥɔʇɐɯ‾ ) dnɥɔʇɐɯ ǝuıɟǝp#

( dd* : 0 ¿ ǝǝ =< dd++ = d ) ( ǝǝ 'dd 'd )uʍpɥɔʇɐɯ‾ ǝuıɟǝp#
( ɥɔʇɐɯsuǝʞoʇ = ɥɔʇɐɯdoʇ '( ǝǝ‾ 'dd‾ 'ɟ‾ )uʍpɥɔʇɐɯ‾ '( ǝǝ 'dd 'ɟ )uʍpɥɔʇɐɯ‾ ) uʍpɥɔʇɐɯ ǝuıɟǝp#

( ʍoןs‾ǝǝ‾ = ʇsɐɟ‾ǝǝ‾ 'ʍoןs‾ǝǝ = ʇsɐɟ‾ǝǝ ) ʇsɐɟ‾ǝǝʇǝsǝɹ ǝuıɟǝp#
( ʍoןs‾qq‾ = ʇsɐɟ‾qq‾ 'ʍoןs‾qq = ʇsɐɟ‾qq ) ʇsɐɟ‾qqʇǝsǝɹ ǝuıɟǝp#
( ( ɟ‾ 'ɟ )bǝ && [Ɩ-]ɟ‾ == [Ɩ-]ɟ && ɟ‾ && ɟ ) ɥɔʇɐɯsuǝʞoʇ ǝuıɟǝp#

؛ ɥɔʇɐɯ‾ǝǝ‾ 'ɥɔʇɐɯ‾qq‾ 'ɥɔʇɐɯ‾ǝǝ 'ɥɔʇɐɯ‾qq 'xǝǝ‾ 'xqq‾ 'xǝǝ 'xqq ɐuן
؛ ɟ‾ 'ɟ duן ؛ ɥɔʇɐɯɯʇq 'ɥɔʇɐɯdoʇ 'ןǝʌǝן ʇuı

:sןɐqoןb ɹɐǝu


{ ؛( qq 'qq‾ = ɥɔʇɐɯ‾ǝǝ‾ ) : ( ɥɔʇɐɯ‾qq 'ɥɔʇɐɯ‾qq‾ = ɥɔʇɐɯ‾ǝǝ‾ ) ¿ ɥɔʇɐɯ‾qq : ɥɔʇɐɯ‾ǝǝ ¿ ɥɔʇɐɯ‾ǝǝ && ɥɔʇɐɯ‾qq = ɥɔʇɐɯ‾ǝǝ
؛( ǝǝ 'ǝǝ‾ = ɥɔʇɐɯ‾qq‾ ) : ( ɥɔʇɐɯ‾ǝǝ 'ɥɔʇɐɯ‾ǝǝ‾ = ɥɔʇɐɯ‾qq‾ ) ¿ ɥɔʇɐɯ‾ǝǝ : ɥɔʇɐɯ‾qq ¿ ɥɔʇɐɯ‾ǝǝ && ɥɔʇɐɯ‾qq = ɥɔʇɐɯ‾qq :ǝuop

؛ doʇ oʇob ؛ ʇsɐɟ‾ǝǝʇǝsǝɹ 's‾ =- ʍoןs‾ǝǝ‾ 's =- ʍoןs‾ǝǝ ( ( s && ɟ‾ || s‾ && ɟ )¡ 'sbɐןɟɯʇq ) ɟı
˙sɟɟıp ɟo ɹıɐd ɐ buıʍoɹb snɥʇ 'ɹǝʍǝuʇɥbıɹ puɐ ɹǝpןoʇɟǝן ɟo ɯoʇʇoq ǝɥʇ ǝsıɐɹ //

؛ doʇ oʇob ǝsןǝ ؛ --ʇsɐɟ‾ǝǝ‾ ( ( qq‾ 'ʇsɐɟ‾ǝǝ‾ 'qq 'ʍoןs‾ǝǝ )ɥɔʇɐɯɯʇqb¡ ) ɟı ( s && ɟ‾ ) ɟı
؛ doʇ oʇob ǝsןǝ ؛ --ʇsɐɟ‾ǝǝ ( ( qq‾ 'ʍoןs‾ǝǝ‾ 'qq 'ʇsɐɟ‾ǝǝ )ɥɔʇɐɯɯʇqb¡ ) ɟı ( s‾ && ɟ ) ɟı

{ ؛ doʇ oʇob ؛ 0 = ɥɔʇɐɯ‾ǝǝ
˙sǝɥɔʇɐɯ ou 'ɹǝʍǝuʇɥbıɹ puɐ ɹǝpןoʇɟǝן ɟo ɯoʇʇoq ǝɥʇ buıuɐɔs ǝuop //

} ( s‾¡ && s¡ = ɥɔʇɐɯɯʇq 'sbɐןɟɯʇq 'ʇsɐɟ‾ǝǝ - ʍoןs‾ǝǝ = ןǝʌǝן ) ɟı
؛ doʇ oʇob ǝsןǝ ؛ ǝuop oʇob ( ɥɔʇɐɯdoʇ ) ɟı ( ɥɔʇɐɯɯʇq ) ɟı :ɯʇq

؛ ɯʇq oʇob ؛ ʇsɐɟ‾qqʇǝsǝɹ 's‾ =+ ʍoןs‾qq‾ 's =+ ʍoןs‾qq ( ( s && ɟ‾ || s‾ && ɟ )¡ 'sbɐןɟdoʇ ) ɟı
˙sɟɟıp ɟo ɹıɐd ɐ buıʍoɹb snɥʇ 'ɹǝʍǝuʇɥbıɹ puɐ ɹǝpןoʇɟǝן ɟo doʇ ǝɥʇ ɹǝʍoן //

؛ ɯʇq oʇob ǝsןǝ ؛ ++ʇsɐɟ‾qq‾ ( ( ǝǝ‾ 'ʇsɐɟ‾qq‾ 'ǝǝ 'ʍoןs‾qq )ɥɔʇɐɯdoʇb¡ ) ɟı ( s && ɟ‾ ) ɟı
؛ ɯʇq oʇob ǝsןǝ ؛ ++ʇsɐɟ‾qq ( ( ǝǝ‾ 'ʍoןs‾qq‾ 'ǝǝ 'ʇsɐɟ‾qq )ɥɔʇɐɯdoʇb¡ ) ɟı ( s‾ && ɟ ) ɟı

{ ؛ ɯʇq oʇob ؛ 0 = ɥɔʇɐɯ‾qq
˙sǝɥɔʇɐɯ ou 'ɹǝʍǝuʇɥbıɹ puɐ ɹǝpןoʇɟǝן ɟo doʇ ǝɥʇ buıuɐɔs ǝuop //

} ( s‾¡ && s¡ = ɥɔʇɐɯdoʇ 'sbɐןɟdoʇ 'ʍoןs‾qq - ʇsɐɟ‾qq = ןǝʌǝן ) ɟı
؛ ɯʇq oʇob ǝsןǝ ؛ ǝuop oʇob ( ɥɔʇɐɯɯʇq ) ɟı ( ɥɔʇɐɯdoʇ ) ɟı :doʇ

؛ ʇsɐɟ‾ǝǝʇǝsǝɹ 'ʇsɐɟ‾qqʇǝsǝɹ 'ǝǝ‾ = ʍoןs‾ǝǝ‾ 'ǝǝ = ʍoןs‾ǝǝ
؛ qq‾ = ʍoןs‾qq‾ 'qq = ʍoןs‾qq '0 = ɥɔʇɐɯɯʇq = ɥɔʇɐɯdoʇ
؛ ᄅ/( qq‾ - ǝǝ‾ ) + qq‾ = pıɯ‾ 'ᄅ/( qq - ǝǝ ) + qq = pıɯ 'ʇsɐɟ‾ǝǝ‾ '
ʇsɐɟ‾ǝǝ 'ʍoןs‾ǝǝ‾ 'ʍoןs‾ǝǝ 'ʇsɐɟ‾qq‾ 'ʇsɐɟ‾qq 'ʍoןs‾qq‾ 'ʍoןs‾qq ɐuן ؛ ʇ‾ 'ʇ duן
؛ ɟ‾ 'ɟ 's‾ 's 'ʌɹ ʇuı } ( ǝǝ‾ ɐuן 'qq‾ ɐuן 'ǝǝ ɐuן 'qq ɐuן )ןǝǝd pıoʌ

˙ǝןıɟ ɹǝʍǝuʇɥbıɹ ǝɥʇ ɯoɹɟ ǝɹɐ ǝǝ‾ puɐ qq‾ //
˙ǝןıɟ ɹǝpןoʇɟǝן ǝɥʇ ɯoɹɟ ǝɹɐ ǝǝ puɐ qq //
˙(sǝuıן sǝɥɔʇɐɯsıɯ) „sɟɟıp„ oʇ ʇuıod ǝǝ puɐ qq 'ʎpɐǝɹןɐ //
//
˙ʎɐɹɹɐ ǝɥʇ ɟo puǝ ǝɥʇ oʇ sʇuıod ǝǝ //
؛( sɹǝʇuıod ) sǝuıן ɟo ʎɐɹɹɐ ɔıɯɐuʎp ɐ ɟo ʇɹɐʇs ǝɥʇ oʇ ɹǝʇuıod ɐ sı qq //
//
˙sǝןıɟ ʇxǝʇ ɹǝʍǝuʇɥbıɹ puɐ ɹǝpןoʇɟǝן ɟo //
sɯoʇʇoq puɐ sdoʇ ǝɥʇ ɯoɹɟ sɟɟıp ɟɟo sןǝǝd 'ʍoןǝq '()ןǝǝd //

ɯʇɥ˙x/ǝɯ˙ɟןǝɹ-ɟɟǝɾ//:dʇʇɥ :sbuıʇʇǝs/dןǝɥ //
bud˙ɟɟıp/ǝɯ˙ɟןǝɹ-ɟɟǝɾ//:dʇʇɥ :ʇoɥsuǝǝɹɔs //

:s,ʇı 'ʎןʇuǝɹɹnɔ

˙ʎq sǝob ǝɯıʇ sɐ 'uıɐbɐ ʇı ǝbuɐɥɔ oʇ ǝɹns ɯ,ı
؛ǝsɹnoɔ ɟo 'ʇı ǝʇoɹʍǝɹ ʎןǝʇǝןdɯoɔ ı 'uǝɥʇ ǝɔuıs

˙ǝɯ‾ sdןǝɥ ʇı ʇnq 'ʎǝɥʇ pןnoɥs ɹou
'pǝʇsod ı ǝpoɔ ++ɔ ǝɥʇ ʇnoqɐ ʇıɥs ɐ sǝʌıb ǝuo ou

˙ɟɟǝɾ ןɐǝɹ ǝɥʇ ɯoɹɟ ǝpoɔ ǝɥʇ <
uɐɥʇ ɹǝʇʇǝq sʞooן ɟןǝɹ pǝbɹoɟ ǝɥʇ ɯoɹɟ ǝpoɔ ǝɥʇ 'ǝǝb <
:ǝʇoɹʍ ( ʎǝuoɹoɯןǝɐɥɔıɯ ) noʎ
Jeff-Relf.Me <@.>: Jan 03 03:04AM -0800

Peter Köhlmann <peter-koehlmann@t-online.de>: Jan 03 12:13PM +0100

The worst "programmer" of all time babbled:
 
 
> Top: if ( TopMatch ) if ( BtmMatch ) goto Done ; else goto Btm ;
> if ( Level = BB_Fast - BB_Slow, TopFlags, TopMatch = !S && !_S
> ) {
 
Ye gods!
Melzzzzz <mel@zzzzz.com>: Jan 03 12:28PM +0100

On Tue, 03 Jan 2017 12:13:42 +0100
> > Btm ; if ( Level = BB_Fast - BB_Slow, TopFlags, TopMatch = !S && !_S
> > ) {
 
> Ye gods!
 
I think that he is insane...
 
--
press any key to continue or any other to quit...
chrisv <chrisv@nospam.invalid>: Jan 03 07:32AM -0600

Peter Köhlmann wrote:
 
>> if ( Level = BB_Fast - BB_Slow, TopFlags, TopMatch = !S && !_S
>> ) {
 
> Ye gods!
 
If "Ezekiel" was here, and you said that the above code was crap, he
would demand "facts and a code analysis". LOL
 
The kreep even claimed that it was "ignorant" to say that Relf's
statements eschewing the importance of compliler warnings were
"stupid".
 
I couldn't make this stuff up!
 
Ezekreep was a trolling fsckwit, if ever there was one. Apparently,
he thought that he could beat us with his lies.
 
--
"For some reason the mindless droids here equate anything open source
with somehow being technically superior." - trolling fsckwit
"Ezekiel", lying shamelessly
GreyCloud <mist@cumulus.com>: Jan 03 12:16PM -0700

On 01/03/17 04:13, Peter Köhlmann wrote:
>> if ( Level = BB_Fast - BB_Slow, TopFlags, TopMatch = !S&& !_S
>> ) {
 
> Ye gods!
 
He doesn't work for anybody needing code. That much is certain.
Otherwise, he'd have been fired.
GreyCloud <mist@cumulus.com>: Jan 03 12:16PM -0700

On 01/03/17 06:32, chrisv wrote:
red floyd <dont.bother@its.invalid>: Jan 03 12:30PM -0800

On 1/3/2017 11:16 AM, GreyCloud wrote:
 
>> Ye gods!
 
> He doesn't work for anybody needing code. That much is certain.
> Otherwise, he'd have been fired.
 
Indeed. That code is full of constructs that exhibit UB. Any
identifier with a leading underscore followed by an uppercase
letter is reserved to the implementation, and the use of such
identifiers is undefined.
Jeff-Relf.Me <@.>: Jan 03 01:00PM -0800

Vir Campestris <vir.campestris@invalid.invalid>: Jan 03 09:27PM

On 03/01/2017 03:58, Michael Moroney wrote:
> Gee, the code from the forged Relf looks better than the code from
> the real Jeff.
 
FFS - HE's got a stalker???
Jeff-Relf.Me <@.>: Jan 03 02:31PM -0800

Daniel <danielaparker@gmail.com>: Jan 03 09:13AM -0800

I'm currently using the boost unit test framework for a project that doesn't otherwise depend on boost. The features that I'm using are BOOST_REQUIRE, BOOST_CHECK, BOOST_REQUIRE_EXCEPTION, BOOST_CHECK_EXCEPTION, and checking that there are no memory leaks.
 
It's proving too difficult if not impossible to set up continuous integration builds for all the environments and compilers supported that link to boost, so I'm looking for a self-contained replacement that can be included in the distribution. I looked at Catch https://github.com/philsquared/Catch, but it tries to be too clever, resulting in too many issues.
 
Any suggestions?
 
Thanks,
Daniel
Cholo Lennon <chololennon@hotmail.com>: Jan 03 03:36PM -0300

On 01/03/2017 02:13 PM, Daniel wrote:
> I'm currently using the boost unit test framework for a project that doesn't otherwise depend on boost.
> The features that I'm using are BOOST_REQUIRE, BOOST_CHECK,
BOOST_REQUIRE_EXCEPTION,
> BOOST_CHECK_EXCEPTION, and checking that there are no memory leaks.
 
> It's proving too difficult if not impossible to set up continuous integration builds for all the
> environments and compilers supported that link to boost, so I'm
looking for a self-contained > replacement that can be included in the
distribution. I looked at Catch
> https://github.com/philsquared/Catch, but it tries to be too clever, resulting in too many issues.
 
> Any suggestions?
 
Boost.Test can be used without compiling it and as a subset of the whole
Boost (check
http://www.boost.org/doc/libs/1_63_0/tools/bcp/doc/html/index.html).
 
I'm using it with Gcc (multiple versions) and VC++ on
Linux/Solaris/Windows without a single problem.
 
Regards
 
--
Cholo Lennon
Bs.As.
ARG
Wouter van Ooijen <wouter@voti.nl>: Jan 03 07:41PM +0100

Op 03-Jan-17 om 6:13 PM schreef Daniel:
> I'm currently using the boost unit test framework for a project that doesn't otherwise depend on boost. The features that I'm using are BOOST_REQUIRE, BOOST_CHECK, BOOST_REQUIRE_EXCEPTION, BOOST_CHECK_EXCEPTION, and checking that there are no memory leaks.
 
> It's proving too difficult if not impossible to set up continuous integration builds for all the environments and compilers supported that link to boost, so I'm looking for a self-contained replacement that can be included in the distribution. I looked at Catch https://github.com/philsquared/Catch, but it tries to be too clever, resulting in too many issues.
 
> Any suggestions?
 
google test?
catch?
 
Wouter "Objects? No Thanks!" van Ooijen
joseluis@solidsands.nl: Jan 03 01:43AM -0800

For example:
 
class example{
public:
template <class T> static constexpr T var = T(1.5);
};
 
int main(){
 
int a = example::var<int>;
 
example obj;
int b = obj.var<int>;
 
return 0;
}
GCC produces error for both: 'example::var<T>' is not a function template and 'var' is not a member template function
 
Clang compiles correctly the first one but produces an error for the second: cannot refer to member 'var' in 'example' with '.'
 
According to the C++14 Standard (ISO/IEC 14882:2014):
 
Section 14, Paragraph 1.
 
A variable template at class scope is a static data member template.
Section 9.4, Paragraph 2.
 
A static member s of class X may be referred to using the qualified-id expression X::s; it is not necessary to use the class member access syntax (5.2.5) to refer to a static member. A static member may be referred to using the class member access syntax, in which case the object expression is evaluated.
Therefore, IMHO, a Variable Template at Class scope (i.e., a Static Data Member Template) could be referred to in both ways. Could it be a bug in the compilers?
 
The only thing I found to try to justify this behaviour is this sentence in Section 9.4.2, Paragraph 1:
 
A static data member is not part of the subobjects of a class.
However, the two aforementioned paragraphs are still valid. Besides, I tried the same example referring to other static members such as a variable, a function and a function template, and all of them compile successfully in both GCC and Clang.
 
class example{
public:
static int constexpr variable = 1;
void static function(){ return; }
template <class T> void static function_template(){ return; }
};
 
int main(){
 
example obj;
 
int a = obj.variable;
int b = example::variable;
 
obj.function();
example::function();
 
obj.function_template<int>();
example::function_template<int>();
 
return 0;
}
Thanks in Advance.
 
Note 1: compiler versions are clang 3.7.0 and gcc 5.2.1.
 
Note 2: the keyword static is required: http://stackoverflow.com/questions/21474111/variable-template-at-class-scope
 
Note 3: since I want to initialize the variable template, the keyword constexpr is also required because in my actual code I will instantiate it with float, double and long double (see C++14 Standard (ISO/IEC 14882:2014), Section 9.4.2, Paragraph 3).
 
Note 4: actual "definitions" of these static data members outside the class (i.e., template <class T> constexpr T example::var;) are not needed in this example cases. I also tried though, but it makes no difference.
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Jan 03 11:09AM +0100

> int b = obj.var<int>;
 
> return 0;
> }
 
[example]
 
[C:\my\forums\clc++\047]
> g++ --version | find "++"
g++ (tdm64-1) 5.1.0
 
[C:\my\forums\clc++\047]
> g++ foo.cpp -Wno-unused-variable
foo.cpp: In function 'int main()':
foo.cpp:11:17: error: 'var' is not a member template function
int b = obj.var<int>;
^
 
[C:\my\forums\clc++\047]
> cl /nologo- 2>&1 | find "++"
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23725 for x86
 
[C:\my\forums\clc++\047]
> cl foo.cpp /wd4189 /wd4101
foo.cpp
 
[C:\my\forums\clc++\047]
> _
[/example]
 
Neither compiler has a problem with a template /function/ accessed this
way, so it's evidently about template variables being A New Thing™.
 
Note: while the MSVC compiler is current, the g++ compiler used here is
old; I believe the current version is 6.1 or something like that.
 
Cheers & hth.,
 
- Alf
joseluis@solidsands.nl: Jan 03 02:47AM -0800

On Tuesday, January 3, 2017 at 11:09:40 AM UTC+1, Alf P. Steinbach wrote:
> old; I believe the current version is 6.1 or something like that.
 
> Cheers & hth.,
 
> - Alf
 
Thanks Alf, I agree with you. Thanks for the answer :)
"Chris M. Thomasson" <invalid@invalid.invalid>: Jan 02 07:34PM -0800

On 12/31/2016 9:34 AM, Manfred wrote:
> From the coding point of view, it is a minor issue but I find it
> somewhat suboptimal that a handler for a single message has to be
> declared twice: in the class and in the map.
 
IIRC, there was a way to use a thunk to store the this pointer in a
window, removing the need for a map lookup.
Jerry Stuckle <jstucklex@attglobal.net>: Jan 02 10:58PM -0500

On 1/2/2017 10:34 PM, Chris M. Thomasson wrote:
>> declared twice: in the class and in the map.
 
> IIRC, there was a way to use a thunk to store the this pointer in a
> window, removing the need for a map lookup.
 
How is this going to help? How are you going to equate the hundreds of
Windows messages to the appropriate functions without a message map?
Maybe a switch statement with hundreds of case clauses? Hundreds of
if/else statements?
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: