Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Why not designated initializers in C++?

246 views
Skip to first unread message

Juha Nieminen

unread,
Jul 13, 2016, 2:32:39 AM7/13/16
to
Objective-C++, at least as implemented in clang (and possibly gcc) is a
kind of strange mix between Objective-C, C99 and C++14. Forgetting about
the first one, and speaking of the latter two, one thing that becomes
possible with such a mix is code like this:

struct S { int a = 1, b = 2, c = 3; };
const S obj = { .a = 10, .c = 30 };

It might not be immediately apparent that this even compiles, or works
properly. But it does. The 'a' member of 'obj' is initialized to 10,
the 'c' member is initialized to 30, and the 'b' element to 2.

The nice thing about this is that you can give struct elements default
values (other than zero). Any element that is not explicitly initialized
in the instantiation will get that default value.

The above is a strange mix of C++11 and C99, though. The first line uses
C++11 features and won't compile as C99. The second line uses C99 features
and won't compile as (pure) C++11. In Objective-C++, it compiles and
works, though. (It might also compile as C++11, as a non-standard
extension, if the compiler is lenient enough. At least clang is not,
at least not by default.)

The thing is that the above is hard to achieve in pure C++, retaining
the convenience. It's difficult to just initialize some members in the
instantiation of a struct and leave the rest to their default values.
At least it's not possible with a syntax that's so convenient.

Is there a reason why C++ couldn't officially support designated
initializers?

--- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

Ian Collins

unread,
Jul 13, 2016, 2:47:37 AM7/13/16
to
On 07/13/16 06:32 PM, Juha Nieminen wrote:
> Objective-C++, at least as implemented in clang (and possibly gcc) is a
> kind of strange mix between Objective-C, C99 and C++14. Forgetting about
> the first one, and speaking of the latter two, one thing that becomes
> possible with such a mix is code like this:
>
> struct S { int a = 1, b = 2, c = 3; };
> const S obj = { .a = 10, .c = 30 };
>
> It might not be immediately apparent that this even compiles, or works
> properly. But it does. The 'a' member of 'obj' is initialized to 10,
> the 'c' member is initialized to 30, and the 'b' element to 2.
>
> The nice thing about this is that you can give struct elements default
> values (other than zero). Any element that is not explicitly initialized
> in the instantiation will get that default value.
>
<snip>
>
> Is there a reason why C++ couldn't officially support designated
> initializers?

I've often asked the same question and I have yet to see a plausible
explanation!

It is damned inconvenient when working with structs from C headers
having to write messy C++ wrappers or include C sources in the project
just to initialise static objects. Even more so now we have constexpr
and C does not...

--
Ian

Bo Persson

unread,
Jul 13, 2016, 1:54:25 PM7/13/16
to
The official explanation (not mine) is that C++ already has constructors
for initializing objects. Adding even more ways would make the language
even more complicated.


Bo Persson

Juha Nieminen

unread,
Jul 18, 2016, 2:45:12 AM7/18/16
to
Bo Persson <b...@gmb.dk> wrote:
>>> struct S { int a = 1, b = 2, c = 3; };
>>> const S obj = { .a = 10, .c = 30 };

> The official explanation (not mine) is that C++ already has constructors
> for initializing objects. Adding even more ways would make the language
> even more complicated.

How would you use constructors to say that you want to explicitly initialize
certain members with some given values, and leave the remaining members with
their default values? You can't have default values in the middle of a
list of parameters to a function (ie. you can say, like "obj(10, , 30)".)
You can't have named constructors either (and even if you did, it would be
really laborious to have to write one constructor for every possible
combination of parameters that you might want to initialize).

I suppose something like this would be technically possible:

const S obj = S().a(10).c(30);

but it's awkward, and makes the implementation of S quite complicated,
requiring you to create methods for each member being initialized.
(It also requires for S to be copy-constructible. Not usually a problem,
but it adds an extra requirement.)

The standardization committee likes to go with what compilers support
(or don't support). This seems to be something that most compilers
already support. So why not?

woodb...@gmail.com

unread,
Jul 18, 2016, 9:16:16 AM7/18/16
to
On Monday, July 18, 2016 at 1:45:12 AM UTC-5, Juha Nieminen wrote:
> Bo Persson <b...@gmb.dk> wrote:
> >>> struct S { int a = 1, b = 2, c = 3; };
> >>> const S obj = { .a = 10, .c = 30 };
>
> > The official explanation (not mine) is that C++ already has constructors
> > for initializing objects. Adding even more ways would make the language
> > even more complicated.
>
> How would you use constructors to say that you want to explicitly initialize
> certain members with some given values, and leave the remaining members with
> their default values? You can't have default values in the middle of a
> list of parameters to a function (ie. you can say, like "obj(10, , 30)".)

I think you meant to say that you can't do that.


Brian
Ebenezer Enterprises - In G-d we trust.
http://webEbenezer.net

Öö Tiib

unread,
Jul 18, 2016, 9:45:34 AM7/18/16
to
On Monday, 18 July 2016 09:45:12 UTC+3, Juha Nieminen wrote:
> Bo Persson <b...@gmb.dk> wrote:

> >>> struct S { int a = 1, b = 2, c = 3; };
> >>> const S obj = { .a = 10, .c = 30 };
>
> > The official explanation (not mine) is that C++ already has constructors
> > for initializing objects. Adding even more ways would make the language
> > even more complicated.
>
> How would you use constructors to say that you want to explicitly initialize
> certain members with some given values, and leave the remaining members with
> their default values? You can't have default values in the middle of a
> list of parameters to a function (ie. you can say, like "obj(10, , 30)".)
> You can't have named constructors either (and even if you did, it would be
> really laborious to have to write one constructor for every possible
> combination of parameters that you might want to initialize).

We can have several constructors. Constructor can not be named
but can be "decorated" with arguments and template arguments.
In actual practice it may be confusing. It seems to be good idea
to have minimum needed constructors and no constructor templates
if possible.

If you really want to have named arguments then best what can be likely
achieved with current C++ is Boost.Parameter library. It burdens some
more declaring work on us, slows compilation down slightly and compilation error messages on case of typo may be funny. But there we are.

Initialization syntax of C++ is IMHO already too fragile and loose.

Bo Persson

unread,
Jul 18, 2016, 11:28:10 AM7/18/16
to
On 2016-07-18 08:44, Juha Nieminen wrote:
> Bo Persson <b...@gmb.dk> wrote:
>>>> struct S { int a = 1, b = 2, c = 3; };
>>>> const S obj = { .a = 10, .c = 30 };
>
>> The official explanation (not mine) is that C++ already has constructors
>> for initializing objects. Adding even more ways would make the language
>> even more complicated.
>
> How would you use constructors to say that you want to explicitly initialize
> certain members with some given values, and leave the remaining members with
> their default values?

I think the idea is that the constructor should initialize the *object*,
and not any particular members. The class invariant is the
responsibility of the class itself, not of the initializer.



Bo Persson


Juha Nieminen

unread,
Jul 19, 2016, 3:13:48 AM7/19/16
to
Öö Tiib <oot...@hot.ee> wrote:
>> >>> struct S { int a = 1, b = 2, c = 3; };
>> >>> const S obj = { .a = 10, .c = 30 };
>
> We can have several constructors. Constructor can not be named
> but can be "decorated" with arguments and template arguments.

How would you create constructors for all possible combinations of
those three possible parameters? (As those values may share the same
type, they can't be distinguished by type.)

Öö Tiib

unread,
Jul 19, 2016, 10:30:56 AM7/19/16
to
On Tuesday, 19 July 2016 10:13:48 UTC+3, Juha Nieminen wrote:
> Öö Tiib <oot...@hot.ee> wrote:
> >> >>> struct S { int a = 1, b = 2, c = 3; };
> >> >>> const S obj = { .a = 10, .c = 30 };
> >
> > We can have several constructors. Constructor can not be named
> > but can be "decorated" with arguments and template arguments.
>
> How would you create constructors for all possible combinations of
> those three possible parameters? (As those values may share the same
> type, they can't be distinguished by type.)

You can make special wrapper classes that pass references of actual
arguments. Modern compilers will optimize it out. However that will
still mean that you will have 15 constructors to have all combinations
in all orders.

I already wrote that the 'BOOST_PARAMETER_CONSTRUCTOR' macro does make
a generic one. It bundles ArgumentPack object from tagged references
to actual arguments. it is perhaps close to best that we can do.
Unfortunately the declarations of Boost.Parameter do confuse people
and tools in practice.

Actually that '{ .a = 10, .c = 30 }' (A) is better syntax than
'{ 10, 2, 30 }' (B). About bigger verbosity I don't care, monitors are
very good and big lately.
If it was up to me I would consider introducing (A) into C++ and
deprecate that (B) in both C and C++. *However* that is not up to me.
So I use what C++ has, positional initializers and positional
arguments.

Jerry Stuckle

unread,
Jul 19, 2016, 4:47:51 PM7/19/16
to
Using '{ .a = 10, .c = 30 }' exposes the private members of the class,
and is a violation of encapsulation. Additionally, the parameter values
are not validated, creating a potentially invalid object.

That's why we have constructors. They hide private members and validate
the values to ensure the object is properly constructed, or, if it is
impossible to construct a valid object at this time, the constructor can
mark the object as invalid until it has been made valid.

--
==================
Remove the "x" from my email address
Jerry Stuckle
jstu...@attglobal.net
==================

Ian Collins

unread,
Jul 19, 2016, 5:32:44 PM7/19/16
to
That is true, but there already are initialisation rules that only apply
to PODs. The most common use case for designated initialisers would be
to initialise structs originating from C headers.

--
Ian

Öö Tiib

unread,
Jul 19, 2016, 8:16:44 PM7/19/16
to
Aggregate classes are feature of C++. Usage of aggregate initialization
violates no language rules.

>
> That's why we have constructors. They hide private members and validate
> the values to ensure the object is properly constructed, or, if it is
> impossible to construct a valid object at this time, the constructor can
> mark the object as invalid until it has been made valid.

Private members of class are not hidden but just not accessible (without
special tricks) for non-friends. When class has private or protected
non static data members then it is not aggregate.

Jerry Stuckle

unread,
Jul 19, 2016, 9:41:27 PM7/19/16
to
The use of names of private members (which data members in general
should be, according to OO principles) would be a violation of those
principles.

>>
>> That's why we have constructors. They hide private members and validate
>> the values to ensure the object is properly constructed, or, if it is
>> impossible to construct a valid object at this time, the constructor can
>> mark the object as invalid until it has been made valid.
>
> Private members of class are not hidden but just not accessible (without
> special tricks) for non-friends. When class has private or protected
> non static data members then it is not aggregate.
>

Exactly. And they would not be accessible to your initialization
syntax, either.

But even with private or protected non-static members the class can
still be aggregate. You need to look up the definition of aggregate.

For instance, the following would be an aggregate:

class Person {
private:
String name;
String address;
Date dob;
...
};

It contains (at least) two String and one Date objects.

And if data members are not private, you have thrown away one of the
most useful OO principles.

Ian Collins

unread,
Jul 19, 2016, 9:54:50 PM7/19/16
to
On 07/20/16 01:41 PM, Jerry Stuckle wrote:
> On 7/19/2016 8:16 PM, Öö Tiib wrote:
>>
>> Aggregate classes are feature of C++. Usage of aggregate initialization
>> violates no language rules.
>>
>
> The use of names of private members (which data members in general
> should be, according to OO principles) would be a violation of those
> principles.
>
>>>
>>> That's why we have constructors. They hide private members and validate
>>> the values to ensure the object is properly constructed, or, if it is
>>> impossible to construct a valid object at this time, the constructor can
>>> mark the object as invalid until it has been made valid.
>>
>> Private members of class are not hidden but just not accessible (without
>> special tricks) for non-friends. When class has private or protected
>> non static data members then it is not aggregate.
>>
>
> Exactly. And they would not be accessible to your initialization
> syntax, either.
>
> But even with private or protected non-static members the class can
> still be aggregate. You need to look up the definition of aggregate.

It's a pity you didn't:

ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]

1 An aggregate is an array or a class (Clause 9) with no user-provided
constructors (12.1), no brace-or-equal-initializers for non-static data
members (9.2), no private or protected non-static data members (Clause
11), no base classes (Clause 10), and no virtual functions (10.3).

--
Ian

Alf P. Steinbach

unread,
Jul 19, 2016, 9:59:54 PM7/19/16
to
On 20.07.2016 03:41, Jerry Stuckle wrote:
>
> But even with private or protected non-static members the class can
> still be aggregate.

Nope.


> You need to look up the definition of aggregate.

C++03 and C++11 §8.5.1/1:

“An aggregate is an array or a class (clause 9) with no user-declared
constructors (12.1), no private or protected non-static data members
(clause 11), no base classes (clause 10), and no virtual functions (10.3)”

I checked only these two standards because they were open in my PDF reader.

Unfortunately, nowaydays it's a hassle to navigate to things on disk in
Windows. :(


> For instance, the following would be an aggregate:
>
> class Person {
> private:
> String name;
> String address;
> Date dob;
> ...
> };

Nope.


> It contains (at least) two String and one Date objects.
>
> And if data members are not private, you have thrown away one of the
> most useful OO principles.

Different tools can be best for different tasks.


Cheers & hth.,

- Alf (teacher mode (well, I've been paid to do this :) ))

Jerry Stuckle

unread,
Jul 19, 2016, 11:49:18 PM7/19/16
to
Try again. That is ONE definition of aggregate. Not by far the only
one. And not accepted by many developers.

But then you're always good at quoting specs without understanding the
meaning and/or limitations.

Jerry Stuckle

unread,
Jul 19, 2016, 11:51:33 PM7/19/16
to
Another one who has no idea what he's talking about. And yes, I was
paid (quite well) to teach before I decided I didn't want to travel any
more.

ag·gre·gate
noun
noun: aggregate; plural noun: aggregates
ˈaɡriɡət/

1.
a whole formed by combining several (typically disparate) elements.
"the council was an aggregate of three regional assemblies"
the total number of points scored by a player or team in a
series of sporting contests.
"the result put the sides even on aggregate"
synonyms: total, sum total, sum, grand total
"he won with an aggregate of 325"
2.
a material or structure formed from a loosely compacted mass of
fragments or particles.

Still applicable to C++, and used the correct way by many programmers.
Not everyone agrees with your definition. Not by a long shot.

Öö Tiib

unread,
Jul 19, 2016, 11:59:05 PM7/19/16
to
This thread did not discuss object oriented programming principles
but aggregate initialization of objects.

>
> >>
> >> That's why we have constructors. They hide private members and validate
> >> the values to ensure the object is properly constructed, or, if it is
> >> impossible to construct a valid object at this time, the constructor can
> >> mark the object as invalid until it has been made valid.
> >
> > Private members of class are not hidden but just not accessible (without
> > special tricks) for non-friends. When class has private or protected
> > non static data members then it is not aggregate.
> >
>
> Exactly. And they would not be accessible to your initialization
> syntax, either.
>
> But even with private or protected non-static members the class can
> still be aggregate. You need to look up the definition of aggregate.

You are wrong but you are incapable of looking things up so I provide
quote:
! [dcl.init.aggr]/1
! An aggregate is an array or a class with no user-provided constructors,
! no private or protected non-static data members, no base classes, and
! no virtual functions.

>
> For instance, the following would be an aggregate:
>
> class Person {
> private:
> String name;
> String address;
> Date dob;
> ...
> };
>
> It contains (at least) two String and one Date objects.

Yes, but it is not aggregate.

>
> And if data members are not private, you have thrown away one of the
> most useful OO principles.

Aggregate classes are widely used by C++ programmers. For example
'std::array' is aggregate. I prefer to use aggregate classes to
'std::tuple' since aggregate can define member functions, can
overload operators and can have useful names for its attributes.

Ian Collins

unread,
Jul 20, 2016, 12:07:02 AM7/20/16
to
On 07/20/16 03:49 PM, Jerry Stuckle wrote:
> On 7/19/2016 9:54 PM, Ian Collins wrote:
>> On 07/20/16 01:41 PM, Jerry Stuckle wrote:
>>>
>>> But even with private or protected non-static members the class can
>>> still be aggregate. You need to look up the definition of aggregate.
>>
>> It's a pity you didn't:
>>
>> ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]
>>
>> 1 An aggregate is an array or a class (Clause 9) with no user-provided
>> constructors (12.1), no brace-or-equal-initializers for non-static data
>> members (9.2), no private or protected non-static data members (Clause
>> 11), no base classes (Clause 10), and no virtual functions (10.3).
>
> Try again. That is ONE definition of aggregate. Not by far the only
> one.

It's the only one pertinent to C++ classes.

> And not accepted by many developers.

Non-C++ developers presumably.

If you can get this to compile, you have a broken compiler...

class C { int n; } c {0}; // Not an aggregate
struct S { int n; } s {0}; // Aggregate

--
Ian

Öö Tiib

unread,
Jul 20, 2016, 12:11:45 AM7/20/16
to
Also most humans understand "strings" in meaning of female
underwear but that is still irrelevant.

>
> But then you're always good at quoting specs without understanding the
> meaning and/or limitations.

We were specifically talking about aggregate classes of C++ in topic
about aggregate initialization in a C++ newsgroup.

Juha Nieminen

unread,
Jul 20, 2016, 5:05:15 AM7/20/16
to
Jerry Stuckle <jstu...@attglobal.net> wrote:
> Try again. That is ONE definition of aggregate. Not by far the only
> one. And not accepted by many developers.

Yeah. The C++ standard is just a bunch of suggestions, and up to
individual subjective opinions and preferences. It can be safely
ignored.

Jerry Stuckle

unread,
Jul 20, 2016, 10:43:42 AM7/20/16
to
On 7/20/2016 12:06 AM, Ian Collins wrote:
> On 07/20/16 03:49 PM, Jerry Stuckle wrote:
>> On 7/19/2016 9:54 PM, Ian Collins wrote:
>>> On 07/20/16 01:41 PM, Jerry Stuckle wrote:
>>>>
>>>> But even with private or protected non-static members the class can
>>>> still be aggregate. You need to look up the definition of aggregate.
>>>
>>> It's a pity you didn't:
>>>
>>> ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]
>>>
>>> 1 An aggregate is an array or a class (Clause 9) with no user-provided
>>> constructors (12.1), no brace-or-equal-initializers for non-static data
>>> members (9.2), no private or protected non-static data members (Clause
>>> 11), no base classes (Clause 10), and no virtual functions (10.3).
>>
>> Try again. That is ONE definition of aggregate. Not by far the only
>> one.
>
> It's the only one pertinent to C++ classes.
>

And it violates encapsulation. So it's not a proper object.

>> And not accepted by many developers.
>
> Non-C++ developers presumably.
>

Like people who KNOW how to properly encapsulate C++ code.

> If you can get this to compile, you have a broken compiler...
>
> class C { int n; } c {0}; // Not an aggregate
> struct S { int n; } s {0}; // Aggregate
>

Ah, but a structure is not an object. So you're not doing OO
programming. You might as well be using C.

Jerry Stuckle

unread,
Jul 20, 2016, 10:44:50 AM7/20/16
to
That's right. And your definition of aggregate violates basic
encapsulation. So it's not OO programming. You might as well use C.

Jerry Stuckle

unread,
Jul 20, 2016, 10:45:47 AM7/20/16
to
It can also be quoted by people who have no idea what they're talking
about. As is done quite often in this newsgroup.

Jerry Stuckle

unread,
Jul 20, 2016, 10:47:59 AM7/20/16
to
In case you haven't learned. C++ is an object oriented programming
language. If you're not going to use OO principles, then you might as
well use C.

>>
>>>>
>>>> That's why we have constructors. They hide private members and validate
>>>> the values to ensure the object is properly constructed, or, if it is
>>>> impossible to construct a valid object at this time, the constructor can
>>>> mark the object as invalid until it has been made valid.
>>>
>>> Private members of class are not hidden but just not accessible (without
>>> special tricks) for non-friends. When class has private or protected
>>> non static data members then it is not aggregate.
>>>
>>
>> Exactly. And they would not be accessible to your initialization
>> syntax, either.
>>
>> But even with private or protected non-static members the class can
>> still be aggregate. You need to look up the definition of aggregate.
>
> You are wrong but you are incapable of looking things up so I provide
> quote:
> ! [dcl.init.aggr]/1
> ! An aggregate is an array or a class with no user-provided constructors,
> ! no private or protected non-static data members, no base classes, and
> ! no virtual functions.
>

Which is a violation of OO principles. So just use C. It has what you
want.

>>
>> For instance, the following would be an aggregate:
>>
>> class Person {
>> private:
>> String name;
>> String address;
>> Date dob;
>> ...
>> };
>>
>> It contains (at least) two String and one Date objects.
>
> Yes, but it is not aggregate.
>

Not according to YOUR definition.

>>
>> And if data members are not private, you have thrown away one of the
>> most useful OO principles.
>
> Aggregate classes are widely used by C++ programmers. For example
> 'std::array' is aggregate. I prefer to use aggregate classes to
> 'std::tuple' since aggregate can define member functions, can
> overload operators and can have useful names for its attributes.
>

std::array is not an aggregate class because it does not contain
disparate objects.

Scott Lurndal

unread,
Jul 20, 2016, 11:31:22 AM7/20/16
to
Jerry Stuckle <jstu...@attglobal.net> writes:
>On 7/19/2016 11:58 PM, Öö Tiib wrote:

>In case you haven't learned. C++ is an object oriented programming
>language. If you're not going to use OO principles, then you might as
>well use C.

It is certainly not uncommon to mix C and C++ in a single project.

And, indeed, many data structure definitions are often shared between
C and C++ code (e.g. struct stat). Supporting designated initializers
in C++ would be useful for those cases.

And, your first statement is incorrect. C++ can be _used_ as an
object oriented programming language, but it is perfectly legal to use
it as a standard functional language.

Jerry Stuckle

unread,
Jul 20, 2016, 11:39:45 AM7/20/16
to
On 7/20/2016 11:31 AM, Scott Lurndal wrote:
> Jerry Stuckle <jstu...@attglobal.net> writes:
>> On 7/19/2016 11:58 PM, Öö Tiib wrote:
>
>> In case you haven't learned. C++ is an object oriented programming
>> language. If you're not going to use OO principles, then you might as
>> well use C.
>
> It is certainly not uncommon to mix C and C++ in a single project.
>
> And, indeed, many data structure definitions are often shared between
> C and C++ code (e.g. struct stat). Supporting designated initializers
> in C++ would be useful for those cases.
>

Yes, and most of those have something to do with the OS or OS-related
calls. Most OS's are language agnostic, and don't have an OO interface.
struct stat is a perfect example of that.

> And, your first statement is incorrect. C++ can be _used_ as an
> object oriented programming language, but it is perfectly legal to use
> it as a standard functional language.
>

It is designed as an OO language. Yes, it can be used as a functional
language - but that is not its design, and people shouldn't complain if
it doesn't contain some of the functional language features they want.

Mr Flibble

unread,
Jul 20, 2016, 12:26:21 PM7/20/16
to
A class isn't an object either. As far as C++ is concerned the only
difference between struct and class is default access protection level.
And as far as C++ is concerned:

int n = 1;

'n' is an object.

You don't know the basics it seems.

/Flibble


Jerry Stuckle

unread,
Jul 20, 2016, 4:09:47 PM7/20/16
to
Being anal as usual, I see.

> int n = 1;
>
> 'n' is an object.
>
> You don't know the basics it seems.
>
> /Flibble
>
>

And you are as anal as ever.

Ian Collins

unread,
Jul 20, 2016, 4:40:57 PM7/20/16
to
"C++ was designed to support a range of styles that I considered
fundamentally good and useful. Whether they were object-oriented,
and in which sense of the word, was either irrelevant or a minor
concern"

http://www.stroustrup.com/oopsla.pdf

--
Ian

Ian Collins

unread,
Jul 20, 2016, 4:45:53 PM7/20/16
to
On 07/21/16 02:43 AM, Jerry Stuckle wrote:
> On 7/20/2016 12:06 AM, Ian Collins wrote:
>> On 07/20/16 03:49 PM, Jerry Stuckle wrote:
>>> On 7/19/2016 9:54 PM, Ian Collins wrote:
>>>> On 07/20/16 01:41 PM, Jerry Stuckle wrote:
>>>>>
>>>>> But even with private or protected non-static members the class can
>>>>> still be aggregate. You need to look up the definition of aggregate.
>>>>
>>>> It's a pity you didn't:
>>>>
>>>> ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]
>>>>
>>>> 1 An aggregate is an array or a class (Clause 9) with no user-provided
>>>> constructors (12.1), no brace-or-equal-initializers for non-static data
>>>> members (9.2), no private or protected non-static data members (Clause
>>>> 11), no base classes (Clause 10), and no virtual functions (10.3).
>>>
>>> Try again. That is ONE definition of aggregate. Not by far the only
>>> one.
>>
>> It's the only one pertinent to C++ classes.
>>
>
> And it violates encapsulation. So it's not a proper object.

The relevance of this to aggregate initialisation is?

>> If you can get this to compile, you have a broken compiler...
>>
>> class C { int n; } c {0}; // Not an aggregate
>> struct S { int n; } s {0}; // Aggregate
>
> Ah, but a structure is not an object. So you're not doing OO
> programming. You might as well be using C.

class C { int n; } c {0}; // Not an aggregate
class S { public: int n; } s {0}; // Aggregate

Happy now?

--
Ian

Gareth Owen

unread,
Jul 20, 2016, 5:31:10 PM7/20/16
to
Yes, but did Bjarne ever work as a consultant for IBM? Eh? Eh?

No.

So what does he know.

woodb...@gmail.com

unread,
Jul 20, 2016, 6:53:23 PM7/20/16
to
On Tuesday, July 19, 2016 at 11:07:02 PM UTC-5, Ian Collins wrote:
> On 07/20/16 03:49 PM, Jerry Stuckle wrote:
> > On 7/19/2016 9:54 PM, Ian Collins wrote:
> >> On 07/20/16 01:41 PM, Jerry Stuckle wrote:
> >>>
> >>> But even with private or protected non-static members the class can
> >>> still be aggregate. You need to look up the definition of aggregate.
> >>
> >> It's a pity you didn't:
> >>
> >> ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]
> >>
> >> 1 An aggregate is an array or a class (Clause 9) with no user-provided
> >> constructors (12.1), no brace-or-equal-initializers for non-static data
> >> members (9.2), no private or protected non-static data members (Clause
> >> 11), no base classes (Clause 10), and no virtual functions (10.3).
> >
> > Try again. That is ONE definition of aggregate. Not by far the only
> > one.
>
> It's the only one pertinent to C++ classes.
>

Ouch. That sort of detachment from reality has led
to so many messes in the standard. I think Jerry is
just highlighting another one here.

Brian
Ebenezer Enterprises - In G-d we trust.
http://webEbenezer.net

Ian Collins

unread,
Jul 20, 2016, 6:59:56 PM7/20/16
to
On 07/21/16 10:53 AM, woodb...@gmail.com wrote:
> On Tuesday, July 19, 2016 at 11:07:02 PM UTC-5, Ian Collins wrote:
>> On 07/20/16 03:49 PM, Jerry Stuckle wrote:
>>> On 7/19/2016 9:54 PM, Ian Collins wrote:
>>>> On 07/20/16 01:41 PM, Jerry Stuckle wrote:
>>>>>
>>>>> But even with private or protected non-static members the class can
>>>>> still be aggregate. You need to look up the definition of aggregate.
>>>>
>>>> It's a pity you didn't:
>>>>
>>>> ISO/IEC 14882:2011(E) 8.5.1 Aggregates [dcl.init.aggr]
>>>>
>>>> 1 An aggregate is an array or a class (Clause 9) with no user-provided
>>>> constructors (12.1), no brace-or-equal-initializers for non-static data
>>>> members (9.2), no private or protected non-static data members (Clause
>>>> 11), no base classes (Clause 10), and no virtual functions (10.3).
>>>
>>> Try again. That is ONE definition of aggregate. Not by far the only
>>> one.
>>
>> It's the only one pertinent to C++ classes.
>>
>
> Ouch. That sort of detachment from reality has led
> to so many messes in the standard.

Do what? So do you regard the standard's definition other words which
have alternative uses in spoken English such as "string" as detachments
from reality? Should the standard refrain from providing specific
definitions and promote a free for all?

> I think Jerry is just highlighting another one here.

Jerry is being an arse.

--
Ian

Chris Vine

unread,
Jul 20, 2016, 8:18:48 PM7/20/16
to
Brian, you have turned into a kind of random garbage generator.

An aggregate is special because it permits aggregate initialization.
That is relevant because aggregate initialisation mimics C
initialization. The comments Jerry made about encapsulation would have
been fair enough if aggregates include any struct or class, such as
those having private members. But they do not.

This is not surprising. There are other C related special types, in
particular trivial classes, which can be statically initialized, and
standard layout classes, which are consistent with the C memory layout
of structs and unions.

Your position is worse than Jerry's. He made an understandable
mistake. You however have had the benefit of having the point about
aggregates explained to you in other posts and you still manage to miss
the point.

But to give you another chance, could you now explain what "detachment
from reality" you think the C++ standard contains and what "messes" you
think need correction. Given that you think you have some kind of
messianic call with respect to leadership of C++ (see your ridiculous
post at
http://comp.lang.cpp.narkive.com/q0Yuq9Cf/comments-on-interview-of-scott-meyers
) I imagine you have your analysis pre-prepared for us to read.


Jerry Stuckle

unread,
Jul 20, 2016, 10:59:37 PM7/20/16
to
Nope. Class S does not contain variables with different data types.

And it violates encapsulation rules.

But I know you're an trolling idiot, so no surprise here.

Jerry Stuckle

unread,
Jul 20, 2016, 11:01:13 PM7/20/16
to
You are just being a stoopid troll. As usual. But that's not
surprising. Idiots are often like that.

Jerry Stuckle

unread,
Jul 20, 2016, 11:02:23 PM7/20/16
to
Envy will never get you anywhere. Just because you can't get a job with
a decent company is not my problem.

Ian Collins

unread,
Jul 20, 2016, 11:08:38 PM7/20/16
to
On 07/21/16 02:59 PM, Jerry Stuckle wrote:
> On 7/20/2016 4:45 PM, Ian Collins wrote:
>>
>> class C { int n; } c {0}; // Not an aggregate
>> class S { public: int n; } s {0}; // Aggregate
>>
>> Happy now?
>>
>
> Nope. Class S does not contain variables with different data types.

So?

class S { public: int n; char c; } s {0,'a'}; // Aggregate

Now it does, not that this makes any difference.

> And it violates encapsulation rules.

So? It's what C++ calls an aggregate.

> But I know you're an trolling idiot, so no surprise here.

Ah good, back to juvenile insults. Didn't take long this time, did it?

--
Ian

Jerry Stuckle

unread,
Jul 20, 2016, 11:18:58 PM7/20/16
to
On 7/20/2016 11:08 PM, Ian Collins wrote:
> On 07/21/16 02:59 PM, Jerry Stuckle wrote:
>> On 7/20/2016 4:45 PM, Ian Collins wrote:
>>>
>>> class C { int n; } c {0}; // Not an aggregate
>>> class S { public: int n; } s {0}; // Aggregate
>>>
>>> Happy now?
>>>
>>
>> Nope. Class S does not contain variables with different data types.
>
> So?
>
> class S { public: int n; char c; } s {0,'a'}; // Aggregate
>

Look at your definition of aggregate. You're too stoopid to even know
you're wrong.

> Now it does, not that this makes any difference.
>

According to YOUR definition, it does. But you're too stoopid to
understand something so simple.

>> And it violates encapsulation rules.
>
> So? It's what C++ calls an aggregate.
>

Which violates a basic precept of OO. But you're too stoopid to
understand that.

>> But I know you're an trolling idiot, so no surprise here.
>
> Ah good, back to juvenile insults. Didn't take long this time, did it?
>

Actually, calling you an idiot is an insult to idiots.

But the truth hurts, doesn't it?

Ian Collins

unread,
Jul 20, 2016, 11:42:25 PM7/20/16
to
On 07/21/16 03:18 PM, Jerry Stuckle wrote:
> On 7/20/2016 11:08 PM, Ian Collins wrote:
>> On 07/21/16 02:59 PM, Jerry Stuckle wrote:
>>> On 7/20/2016 4:45 PM, Ian Collins wrote:
>>>>
>>>> class C { int n; } c {0}; // Not an aggregate
>>>> class S { public: int n; } s {0}; // Aggregate
>>>>
>>>> Happy now?
>>>>
>>>
>>> Nope. Class S does not contain variables with different data types.
>>
>> So?
>>
>> class S { public: int n; char c; } s {0,'a'}; // Aggregate
>>
>
> Look at your definition of aggregate.

Not mine, it is the C++ standard's definition.

C++ is something known as a programming language which has an
international standard which defines the terms C++ programmers use when
discussing their language of choice.

C++ is the topic of this group.

--
Ian

Jerry Stuckle

unread,
Jul 21, 2016, 10:22:50 AM7/21/16
to
Gee, I couldn't tell.

Unlike you, I'm not stoopid. But my customers (and I) hire programmers.
You wouldn't even get an interview.

Mr Flibble

unread,
Jul 21, 2016, 12:50:49 PM7/21/16
to
Ian, it seems obvious to me that Jerry Stuckle is a fucktarded troll so
why do you engage it?

/Flibble


Ian Collins

unread,
Jul 21, 2016, 4:35:19 PM7/21/16
to
Possibly for the same reason you engage Ramine!

--
Ian

woodb...@gmail.com

unread,
Jul 21, 2016, 4:44:57 PM7/21/16
to
On Wednesday, July 20, 2016 at 7:18:48 PM UTC-5, Chris Vine wrote:
> On Wed, 20 Jul 2016 15:53:10 -0700 (PDT)
> woodb...@gmail.com wrote:
> > On Tuesday, July 19, 2016 at 11:07:02 PM UTC-5, Ian Collins wrote:
> > > On 07/20/16 03:49 PM, Jerry Stuckle wrote:

> > > >
> > > > Try again. That is ONE definition of aggregate. Not by far the
> > > > only one.
> > >
> > > It's the only one pertinent to C++ classes.
> > >
> >
> > Ouch. That sort of detachment from reality has led
> > to so many messes in the standard. I think Jerry is
> > just highlighting another one here.
>
> Brian, you have turned into a kind of random garbage generator.
>
> An aggregate is special because it permits aggregate initialization.
> That is relevant because aggregate initialisation mimics C
> initialization. The comments Jerry made about encapsulation would have
> been fair enough if aggregates include any struct or class, such as
> those having private members. But they do not.
>
> This is not surprising. There are other C related special types, in
> particular trivial classes, which can be statically initialized, and
> standard layout classes, which are consistent with the C memory layout
> of structs and unions.
>
> Your position is worse than Jerry's. He made an understandable
> mistake. You however have had the benefit of having the point about
> aggregates explained to you in other posts and you still manage to miss
> the point.

My point is that dictionary definitions of aggregate are
relevant. The history/roots have to be considered or those
working on the standard end up navel-gazing -- focused on
their own thoughts and feelings. Proverbs 3:5,6 says:
"Trust in the L-RD with all your heart and lean not on your
own understanding. In all your ways submit to Him and He
will make your paths straight."


> Given that you think you have some kind of
> messianic call with respect to leadership of C++

My offer

http://webEbenezer.net/about.html

to help someone who is willing to use my software in their
project could provide life-saving encouragement to someone
who needs help developing their ideas. They can refer
themselves and get both some cash and a coworker. G-d has
blessed me to be a blessing. So when I say "life-saving
encouragement" it's from G-d, not me. I'm just a messenger
being shot at frequently here. Many have forgotten -- "don't
shoot the messenger."
> ) I imagine you have your analysis pre-prepared for us to read.

C++ 2017 is a disappointment in my opinion. Std::any, anyone?


Brian
Ebenezer Enterprises - If you can't join 'em, beat 'em.
http://webEbenezer.net

Chris Vine

unread,
Jul 21, 2016, 6:18:38 PM7/21/16
to
On Thu, 21 Jul 2016 13:44:44 -0700 (PDT)
woodb...@gmail.com wrote:
> On Wednesday, July 20, 2016 at 7:18:48 PM UTC-5, Chris Vine wrote:
>> On Wed, 20 Jul 2016 15:53:10 -0700 (PDT)
>> woodb...@gmail.com wrote:
[snip]
> > Ouch. That sort of detachment from reality has led
> > to so many messes in the standard. I think Jerry is
> > just highlighting another one here.
>
> > Brian, you have turned into a kind of random garbage generator.
> >
> > An aggregate is special because it permits aggregate initialization.
> > That is relevant because aggregate initialisation mimics C
> > initialization. The comments Jerry made about encapsulation would
> > have been fair enough if aggregates include any struct or class,
> > such as those having private members. But they do not.
> >
> > This is not surprising. There are other C related special types, in
> > particular trivial classes, which can be statically initialized, and
> > standard layout classes, which are consistent with the C memory
> > layout of structs and unions.
> >
> > Your position is worse than Jerry's. He made an understandable
> > mistake. You however have had the benefit of having the point about
> > aggregates explained to you in other posts and you still manage to
> > miss the point.
>
> My point is that dictionary definitions of aggregate are
> relevant. The history/roots have to be considered or those
> working on the standard end up navel-gazing -- focused on
> their own thoughts and feelings.

Sorry Brian, you are still wrong. The point you haven't grasped is that
these types are called 'aggregates' in the C standard, and it would be
highly misleading to call them anything else in the C++ standard
because they are types which can be initialized in C++ in the same way
that 'aggregates' can be in C. They are part of the C interface which is
accepted in C++, for very good reason.

That was a decision that the C++ standard committee took in full
knowledge of the background and not as a consequence of (your pathetic
reference to) "navel gazing".

There are things wrong with C++, mainly because of the piece-meal
organic way in which development of it has (of necessity) taken place.
But it annoys me that someone without much of a clue like you can mouth
off about "detachment from reality", particularly given some of your
postings to this group. I would not trust your judgement on any
matters relating to C++, and for that matter on your various off topic
nonsense on this group as well.

Jerry Stuckle

unread,
Jul 21, 2016, 9:02:48 PM7/21/16
to
Not my problem you can't get a decent job. You'd be better off going
back to ditch digging - if you can figure out which end of the shovel to
use.

Mr Flibble

unread,
Jul 22, 2016, 10:05:01 AM7/22/16
to
Not my problem all the companies you start become bankrupt owing the IRS
tax. One only has to search the Internet for your name to find all the
shit trails you leave behind over everything you touch. You are the one
who is toxic and unemployable mate.

/Flibble


Jerry Stuckle

unread,
Jul 22, 2016, 2:06:49 PM7/22/16
to
ROFLMAO! None of the companies I've started have become bankrupt, and
none of them have ever been overdue on taxes.

And I have never been late on paying my employees, contractors or suppliers.

Sorry, stoopid. Total failure - just like you.

woodb...@gmail.com

unread,
Jul 22, 2016, 4:30:14 PM7/22/16
to
On Friday, July 22, 2016 at 9:05:01 AM UTC-5, Mr Flibble wrote:

Oy vey, Leigh. Please don't swear here.

Brian
Ebenezer Enterprises
http://webEbenezer.net

red floyd

unread,
Jul 22, 2016, 4:39:28 PM7/22/16
to
On 7/22/2016 1:29 PM, woodb...@gmail.com wrote:
> On Friday, July 22, 2016 at 9:05:01 AM UTC-5, Mr Flibble wrote:
>
> Oy vey, Leigh. Please don't swear here.

Will you just fuck off about that?


woodb...@gmail.com

unread,
Jul 22, 2016, 8:12:31 PM7/22/16
to
On Friday, July 22, 2016 at 3:39:28 PM UTC-5, red floyd wrote:


Even though your name is Red, I wouldn't encourage
you to go to Reddit where, last time I checked, there
was some swearing. I hope you will stay here, but not
be cursing at anyone.

Brian

Mr Flibble

unread,
Jul 23, 2016, 2:19:52 PM7/23/16
to
So "JDS Computer Training Corp" has nothing to do with you then mate?
One simply has to search for you on the Internet to find out that you
are a fraudulent scam artist with a penchant for lying.

/Flibble

Jerry Stuckle

unread,
Jul 23, 2016, 6:11:08 PM7/23/16
to
Yes, it is a company I used to have. I closed it several years ago when
I decided to not travel so much.

It never owed the IRS anything, and never missed a payment on a bill.
But you wouldn't know that, would you? You never have worked for a
legitimate company.

You're claims are total BS - just like you.

Mr Flibble

unread,
Jul 23, 2016, 7:09:59 PM7/23/16
to
You're not convincing anyone but yourself mate. Fraudsters should be
locked up.

/Flibble

jaath...@gmail.com

unread,
Jul 24, 2016, 5:37:45 AM7/24/16
to
On Wednesday, July 13, 2016 at 12:02:39 PM UTC+5:30, Juha Nieminen wrote:
> Objective-C++, at least as implemented in clang (and possibly gcc) is a
> kind of strange mix between Objective-C, C99 and C++14. Forgetting about
> the first one, and speaking of the latter two, one thing that becomes
> possible with such a mix is code like this:
>
> struct S { int a = 1, b = 2, c = 3; };
> const S obj = { .a = 10, .c = 30 };
>
> It might not be immediately apparent that this even compiles, or works
> properly. But it does. The 'a' member of 'obj' is initialized to 10,
> the 'c' member is initialized to 30, and the 'b' element to 2.
>
> The nice thing about this is that you can give struct elements default
> values (other than zero). Any element that is not explicitly initialized
> in the instantiation will get that default value.
>
> The above is a strange mix of C++11 and C99, though. The first line uses
> C++11 features and won't compile as C99. The second line uses C99 features
> and won't compile as (pure) C++11. In Objective-C++, it compiles and
> works, though. (It might also compile as C++11, as a non-standard
> extension, if the compiler is lenient enough. At least clang is not,
> at least not by default.)
>
> The thing is that the above is hard to achieve in pure C++, retaining
> the convenience. It's difficult to just initialize some members in the
> instantiation of a struct and leave the rest to their default values.
> At least it's not possible with a syntax that's so convenient.
>
> Is there a reason why C++ couldn't officially support designated
> initializers?
>
> --- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

Jerry Stuckle

unread,
Jul 24, 2016, 11:10:00 AM7/24/16
to
Your proof? You don't have any because your claims are as full of
bullshit as you are. No wonder you use a pseudonym. If I were you I
wouldn't want my boss to find out just how stoopid I was. He might fire
you from your ditch digging job.

Mr Flibble

unread,
Jul 24, 2016, 1:01:58 PM7/24/16
to
Proof:

WHOIS information for http://www.smartechhomes.com

Registrant:
SMARTECH HOMES, INC.
9920 BRIXTON LANE
Bethesda, Maryland 20817-1501
United States

Administrative Contact:
Stucle, Jerry jstu...@attglobal.net
SMARTECH HOMES, INC.
9920 BRIXTON LANE
Bethesda, Maryland 20817-1501
United States
3014696605 Fax --

Jerry Stuckle was the principal of SMARTECH HOMES, INC. which has been
forfeited last year by the Maryland Taxpayer Services Division.

Entity Name: SMARTECH HOMES, INC.
Dept ID #: D07297567

Principal Office (Current): 9920 BRIXTON LANE, BETHESDA, MD 20817
Resident Agent (Current): JERRY D. STUCKLE, 9920 BRIXTON LANE,
BETHESDA, MD 20817

DEPT. ACTION - FORFEITURE 10/06/2006 12:03-AM
THE ENTITY WAS FORFEITED FOR FAILURE TO FILE PROPERTY RETURN FOR 2005.
For a Maryland entity, its existence has been ended by the State for
some delinquency.

Good Standing: No

However, more than a year after, Jerry Stuckle, showing a deplorable
lack of business ethics, stills maintains and deploys the website,
claiming to belong to a reputable company and offering all kinds of
products and services
If you have purchased any products or services from these fraudulent
pages or have been approached by Jerry Stuckle in any way to offer you
any kind of commercial transaction involving this fake company after
10/06/2006, you have most likely been the victim of a FRAUD.
You can report this crime by writing to the Federal Trade Commission
or contacting your State Attorneys General:
http://www.consumerfraudreporting.org/stateattorneygenerallist.php
Your state Attorney General or local office of consumer protection is
also listed in the government pages of your telephone book.

If you have fallen victim of a Phishing scam originated at any other
of the fake Jerry Stuckler's pages, such as the one at:
http://www.icca.org/member/memberpage.asp?id=400
you can report it at the Consumer Fraud Reporting website:
http://www.consumerfraudreporting.org/

Any kind of Internet Fraud that might have been committed by Jerry
Stuckler can be reported by contacting the U.S. government's Internet
Crime Complaint Center (IC3) at:
http://www.ic3.gov/complaint/

You may also contact the FBI Internet Fraud Complaint Center
http://www.ifccfbi.gov/index.asp


If you are approached by Jerry Stuckler, please don't give out any
financial information, such as checking account and credit card
numbers; and especially your social Security number.

NEVER buy anything from a company that is listed as forfeited, as
Jerry Stuckler's are. Don't even visit his Phishing and Spoofed
websites or ask for more information.
It is like feeding a stray cat. Give it one morsel of food, and it
will be there all the time.

We're sorry to have to be the ones to tell you all this, but the
bottom line is, if you want to secure your hard-earned money, then you
better have your feet on the ground, and don't let yourself be cheated
by the likes of Jerry Stuckler.

Be aware also that Jerry Stuckler usually targets unaware uneducated
people, since there's no way that his scams can be successfully
applied on more resourceful people for obvious reasons.

Thank you for your attention.

/Flibble


Jerry Stuckle

unread,
Jul 24, 2016, 5:33:06 PM7/24/16
to
On 7/24/2016 1:01 PM, Mr Flibble wrote:
> On 24/07/2016 16:09, Jerry Stuckle wrote:
>> On 7/23/2016 7:09 PM, Mr Flibble wrote:
>>> On 23/07/2016 23:11, Jerry Stuckle wrote:
>>>> On 7/23/2016 2:19 PM, Mr Flibble wrote:
>>>>> On 22/07/2016 19:06, Jerry Stuckle wrote:
>>>>>> On 7/22/2016 10:04 AM, Mr Flibble wrote:
>>>>>>> On 22/07/2016 02:02, Jerry Stuckle wrote:
>>>>>>>> On 7/21/2016 12:50 PM, Mr Flibble wrote:
>>>>>>>>> On 21/07/2016 04:42, Ian Collins wrote:0
Have you even looked at the website? It's not selling anything, it's
not claiming anything - in short, it's a place holder. And yes, I
closed this business many years ago.

Let's see you prove I have sold ANYONE ANYTHING under this company name,
before or after 2006.

But you are the expert on fraud, aren't you? The biggest fraud in this
newsgroup. No wonder you can't find a decent job. People don't hire
trolls.

And why don't you check any of the several other domains I have registered?

Mr Flibble

unread,
Jul 24, 2016, 6:42:29 PM7/24/16
to
I don't need to do anything else as I have achieved my objective:
trolled a fucking annoying troll. You can now fuck off.

/Flibble


Alf P. Steinbach

unread,
Jul 24, 2016, 7:00:21 PM7/24/16
to
Flibble "Sausage" J. isn't very anonymous and is not trying to be
anonymous, at all. He's advertising right in the message header who is.
I don't remember the details of how he came to use a /nick/ on Usenet,
but formerly he used to post under his own name.

Possibly the nick comes from IRC or something.


> If I were you I
> wouldn't want my boss to find out just how stoopid I was. He might fire
> you from your ditch digging job.

As you could readily have seen if you'd checked this out, Leigh is his
own boss, managing his own company.


Cheers & hth.,

- Alf (teacher mode)

Jerry Stuckle

unread,
Jul 24, 2016, 9:02:36 PM7/24/16
to
Nope, you have only shown yourself to be a stoopid idiot. And worse at
trolling than most.

Jerry Stuckle

unread,
Jul 24, 2016, 9:08:21 PM7/24/16
to
On 7/24/2016 6:58 PM, Alf P. Steinbach wrote:
> On 24.07.2016 17:09, Jerry Stuckle wrote:
>> On 7/23/2016 7:09 PM, Mr Flibble wrote:
>>>
>>> /Flibble
>>>
>>
>> Your proof? You don't have any because your claims are as full of
>> bullshit as you are. No wonder you use a pseudonym.
>
> Flibble "Sausage" J. isn't very anonymous and is not trying to be
> anonymous, at all. He's advertising right in the message header who is.
> I don't remember the details of how he came to use a /nick/ on Usenet,
> but formerly he used to post under his own name.
>
> Possibly the nick comes from IRC or something.
>

His header has a pseudonym at some domain without a website and no
registration information other than the name "Leigh Johnson". And he
hides his real name behind a pseudonym in his messages.

Just like trolls and idiots do.

>
>> If I were you I
>> wouldn't want my boss to find out just how stoopid I was. He might fire
>> you from your ditch digging job.
>
> As you could readily have seen if you'd checked this out, Leigh is his
> own boss, managing his own company.
>
>
> Cheers & hth.,
>
> - Alf (teacher mode)
>

Yes, which is probably why he thinks everyone else is out to cheat
someone - because that what he does. He's an expert at fraud, because
he is one.

Yes, he's his own boss - because he can't find anyone stoopid enough to
hire him!

Jerry Stuckle

unread,
Jul 24, 2016, 9:12:06 PM7/24/16
to
On 7/24/2016 6:58 PM, Alf P. Steinbach wrote:
I take that back. He does have a website (one of the worse I've ever
seen). But it doesn't respond very well. I got several timeouts before
it finally responded (the only site I've ever had this problem with).

No wonder he can't find a job.

Mr Flibble

unread,
Jul 25, 2016, 1:43:04 PM7/25/16
to
I have no problem accessing my website mate so the problem must be at
your end. Oh, and at least my website isn't fake, fraudster fake, like
your "SMARTECH HOMES" website which you claim is just a "place holder"
whatever the fuck that is supposed to mean.

You really can fuck off now mate.

/Flibble

Jerry Stuckle

unread,
Jul 25, 2016, 3:09:06 PM7/25/16
to
Your website is a piece of crap - just like the guy who created it. No
wonder you can't find a job.

You don't even know what a placeholder or parking page is! Talk about
the ultimate in stoopidity!

But then your language shows your level of maturity. Intelligent people
don't have to constantly swear to get their points across. Only stoopid
idiots and trolls - of which you are both.

And I'm not the only one who has called you on your potty mouth.
However, it does match your potty brain.

Scott Lurndal

unread,
Jul 25, 2016, 3:48:05 PM7/25/16
to
Jerry Stuckle <jstu...@attglobal.net> writes:
>
>You don't even know what a placeholder or parking page is! Talk about
>the ultimate in stoopidity!
>
>But then your language shows your level of maturity.

Irony, thy name is Jerry.

Mr Flibble

unread,
Jul 25, 2016, 5:02:32 PM7/25/16
to
But it's not a placeholder or parking page is it though as the company
it refers to once existed before it was "forfeited ... by the Maryland
Taxpayer Services Division".

/Flibble

Jerry Stuckle

unread,
Jul 25, 2016, 5:09:56 PM7/25/16
to
It's a placeholder. That's all. It's not selling anything; it's not
offering anything.

And just because it's not a Maryland company does not mean it's not a
company in some other state.

Stoopid is as stoopid does.

Mr Flibble

unread,
Jul 26, 2016, 1:14:04 PM7/26/16
to
But it isn't a placeholder is it? It even has contact details. You are
obviously a scammer/fraudster.

>
> And just because it's not a Maryland company does not mean it's not a
> company in some other state.

MD is in the contact details.

>
> Stoopid is as stoopid does.

Irony in that statement; you ever heard of psychological projection mate?

/Flibble


Jerry Stuckle

unread,
Jul 26, 2016, 2:47:23 PM7/26/16
to
Sure, lots of placeholders have contact details.

>>
>> And just because it's not a Maryland company does not mean it's not a
>> company in some other state.
>
> MD is in the contact details.
>

The location is in the contact details. That doesn't mean it has to be
incorporated in Maryland - or even incorporated. Epic fail - just like
you always are.

>>
>> Stoopid is as stoopid does.
>
> Irony in that statement; you ever heard of psychological projection mate?
>
> /Flibble
>
>

You're the one who knows all about fraud. And your "website" is still a
piece of shit - just like you.

Sorry, Fibbie. You're only making a bigger fool of yourself with every
post.

Mr Flibble

unread,
Jul 26, 2016, 3:31:14 PM7/26/16
to
Is your LinkedIn profile also a placeholder mate? According to your
LinkedIn profile you are "President" of "SmarTech Homes, Inc." It is
you, Sir, who is the lying piece of shit not me.


>
> Sorry, Fibbie. You're only making a bigger fool of yourself with every
> post.

More projection.

/Flibble


Jerry Stuckle

unread,
Jul 26, 2016, 3:35:07 PM7/26/16
to
Sorry, Fibbie. You're nothing more than a stoopid fraud. But then
that's why you're so anxious to call someone else a fraud, isn't it?
Because you think everyone is as cheating as you are.

>>
>> Sorry, Fibbie. You're only making a bigger fool of yourself with every
>> post.
>
> More projection.
>
> /Flibble
>
>

Not at all. You just keep making a fool of yourself. Not my problem.

No wonder you can't get a decent job. Better go back to digging ditches
- if you can figure out which end of the shovel to use, that is.

Mr Flibble

unread,
Jul 26, 2016, 3:38:47 PM7/26/16
to
The evidence is there for all to see, you cannot deny it:

https://www.linkedin.com/in/jerrystuckle

Jerry Stuckle
President, SmarTech Homes, Inc.
Washington D.C. Metro AreaConstruction
Current
SmarTech Homes, Inc.


>
>>>
>>> Sorry, Fibbie. You're only making a bigger fool of yourself with every
>>> post.
>>
>> More projection.
>>
>> /Flibble
>>
>>
>
> Not at all. You just keep making a fool of yourself. Not my problem.
>
> No wonder you can't get a decent job. Better go back to digging ditches
> - if you can figure out which end of the shovel to use, that is.

You've used that line before mate; it didn't work then and it won't work
now.

/Flibble


Jerry Stuckle

unread,
Jul 26, 2016, 10:33:09 PM7/26/16
to
So what? Once again, just because I have an address in Maryland doesn't
mean my company has to be incorporated in Maryland. We have a Holiday
Inn just down the street. It has a Maryland address. But Holiday Inn
isn't incorporated in Maryland. The same with IBM - several offices
here in Maryland, with Maryland addresses.

You're only showing your stoopidity, Fibbie.

>>
>>>>
>>>> Sorry, Fibbie. You're only making a bigger fool of yourself with every
>>>> post.
>>>
>>> More projection.
>>>
>>> /Flibble
>>>
>>>
>>
>> Not at all. You just keep making a fool of yourself. Not my problem.
>>
>> No wonder you can't get a decent job. Better go back to digging ditches
>> - if you can figure out which end of the shovel to use, that is.
>
> You've used that line before mate; it didn't work then and it won't work
> now.
>
> /Flibble
>
>

Hey, the truth hurts, doesn't it. But you're quick to say someone else
is a fraud because you think everyone is as crooked as you are.

I have run into trolls before on the internet, but I can't say I have
ever run into one as stoopid as you are, Fibbie. However, you ARE
entertaining! Trying to dig up stuff which is out there in plain sight,
and thinking you've found some secret! ROFLMAO!

Go back to your ditch digging.

Daniel

unread,
Jul 27, 2016, 3:52:07 PM7/27/16
to
On Tuesday, July 26, 2016 at 2:47:23 PM UTC-4, Jerry Stuckle wrote:
>
> Sorry, Fibbie.
>
Actually, the affectionate, pet form for Flibble is "Flibbie", not "Fibbie."

Just trying to be helpful,
Daniel

Jerry Stuckle

unread,
Jul 27, 2016, 10:16:55 PM7/27/16
to
Ah, thank you, Daniel. I appreciate the correction.
0 new messages