http://groups.google.com/group/comp.lang.c++?hl=en
comp.lang.c++@googlegroups.com
Today's topics:
* ┈━═☆ugg boot,t-shirt,handbag,sunglass,-hat,nike shoes,jordan shoes,dunk
shoes,puma shoes,and so on for free shipping from<www.fjrjtrade.com > We are
wholesaler of NikeJordan and Other Shoes in China. - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/bd92099c2d2f9b31?hl=en
* Delegates ,smart pointers and GUI - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/f5ef7b3e0a822708?hl=en
* addr to long - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/8c07d55c00e3053e?hl=en
* nevermind - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/a9a8c2c7a4f70ad7?hl=en
* Is it legal to directly call a constructor? - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/562e9b8fa0a08333?hl=en
* ostream::write - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/a8929aac2301abf6?hl=en
* contiguous in memory - 4 messages, 3 authors
http://groups.google.com/group/comp.lang.c++/t/a5e84c1f1717e18c?hl=en
* extern variables - 3 messages, 3 authors
http://groups.google.com/group/comp.lang.c++/t/470e01318c7f9268?hl=en
* getline - Segmentation fault - 2 messages, 2 authors
http://groups.google.com/group/comp.lang.c++/t/1e67c4c1c095177d?hl=en
* Deitel & Deitel's How to Program C++ 6th Edition chapters 1-22 full code
solutions for $50 - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/7b29327f56fd3318?hl=en
* Editor to Auto-Comment - 2 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/dbbba4f3546a0468?hl=en
* (www.topsellingnow.com) we wholesale cheap gucci shoes,cheap gucci sneaker,
discount gucci shoes,Custom gucci shoes - 1 messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/71529a56267bef35?hl=en
* Prada America's Cup Black Silver Mens Sneakers (www.topsellingnow.com) - 1
messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/7c146b982ac759f5?hl=en
* Cheap Prada Trainers,Prada Sports Shoes www.topsellingnow.com - 1 messages,
1 author
http://groups.google.com/group/comp.lang.c++/t/7a6c1bbd3872b1d3?hl=en
* discount Air Jordan 4 x Air Force one Fusion (www.topsellingnow.com) - 1
messages, 1 author
http://groups.google.com/group/comp.lang.c++/t/22200f1eee744dab?hl=en
==============================================================================
TOPIC: ┈━═☆ugg boot,t-shirt,handbag,sunglass,-hat,nike shoes,jordan shoes,dunk
shoes,puma shoes,and so on for free shipping from<www.fjrjtrade.com > We are
wholesaler of NikeJordan and Other Shoes in China.
http://groups.google.com/group/comp.lang.c++/t/bd92099c2d2f9b31?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 12:10 am
From: t351119@126.com
Get Nike Shoes at Super Cheap Prices
Discount Nike air jordans (www.fjrjtrade.com )
Discount Nike Air Max 90 Sneakers (www.fjrjtrade.com )
Discount Nike Air Max 91 Supplier (www.fjrjtrade.com )
Discount Nike Air Max 95 Shoes Supplier (www.fjrjtrade.com )
Discount Nike Air Max 97 Trainers (www.fjrjtrade.com )
Discount Nike Air Max 2003 Wholesale (www.fjrjtrade.com )
Discount Nike Air Max 2004 Shoes Wholesale
(www.fjrjtrade.com )
Discount Nike Air Max 2005 Shop (www.fjrjtrade.com )
Discount Nike Air Max 2006 Shoes Shop (www.fjrjtrade.com )
Discount Nike Air Max Tn 2 Women's Shoes (www.fjrjtrade.com )
Discount Nike Air Max Tn 3 Customize (www.fjrjtrade.com )
Discount Nike Air Max Tn 4 Shoes Customize
( www.fjrjtrade.com )
Discount Nike Air Max Tn 6 Supply (www.fjrjtrade.com )
Discount Nike Shox NZ Shoes Supply (www.fjrjtrade.com )
Discount Nike Shox OZ Sale (www.fjrjtrade.com )
Discount Nike Shox TL Store (www.fjrjtrade.com )
Discount Nike Shox TL 2 Shoes Store (www.fjrjtrade.com )
Discount Nike Shox TL 3 Distributor (www.fjrjtrade.com )
Discount Nike Shox Bmw Shoes Distributor (www.fjrjtrade.com )
Discount Nike Shox Elite Shoes Manufacturer
(www.fjrjtrade.com )
Discount Nike Shox Monster Manufacturer (www.fjrjtrade.com )
Discount Nike Shox R4 Running Shoes (www.fjrjtrade.com )
Discount Nike Shox R5 Mens Shoes (www.fjrjtrade.com )
Discount Nike Shox Ride Womens Shoes (www.fjrjtrade.com )
Discount Nike Shox Rival Shoes Wholesaler (www.fjrjtrade.com )
Discount Nike Shox Energia Wholesaler (www.fjrjtrade.com )
Discount Nike Shox LV Sneaker (www.fjrjtrade.com )
Discount Nike Shox Turbo Suppliers (www.fjrjtrade.com )
Discount Nike Shox Classic Shoes Suppliers
(www.fjrjtrade.com )
Discount Nike Shox Dendara Trainer (www.fjrjtrade.com )
Discount Nike Air Jordan 1 Seller (www.fjrjtrade.com )
Discount Nike Air Jordan 2 Shoes Seller (www.fjrjtrade.com )
Discount Nike Air Jordan 3 Collection (www.fjrjtrade.com )
Discount Nike Air Jordan 4 Shoes Collection
(www.fjrjtrade.com )
Discount Nike Air Jordan 5 Chaussure Shoes
(www.fjrjtrade.com )
Discount Nike Air Jordan 6 Catalog (www.fjrjtrade.com )
Discount Nike Air Jordan 7 Shoes Catalog (www.fjrjtrade.com )
Discount Nike Air Jordan 8 Customized (www.fjrjtrade.com )
Discount Nike Air Jordan 9 Shoes Customized
(www.fjrjtrade.com )
Discount Nike Air Jordan 10 Wholesalers (www.fjrjtrade.com )
Discount Nike Jordan 11 Shoes Wholesalers (www.fjrjtrade.com )
Discount Nike Air Jordan 12 Factory (www.fjrjtrade.com )
Discount Nike Air Jordan 13 Shoes Factory (www.fjrjtrade.com )
Discount Nike Air Jordan 14 Shoes Sell (www.fjrjtrade.com )
Discount Nike Air Jordan 16 Exporter (www.fjrjtrade.com )
Discount Nike Air Jordan 17 Shoes Exporter
(www.fjrjtrade.com )
Discount Nike Air Jordan 18 Offer (www.fjrjtrade.com )
Discount Nike Air Jordan 19 Shoes Offer (www.fjrjtrade.com )
Discount Nike Air Jordan 20 Manufacture (www.fjrjtrade.com )
Discount Nike Jordan 21 Shoes Manufacture (www.fjrjtrade.com )
We provide Abercrombie & Fitch,Lacoste,Ralph Lauren polo etc brand
cloth,like t-shirt,jacket,jeans,fleece,pants and so on), also provide
sports Jersey:NBA jersey,NFL jersey,NHL jersey,MLB jersey.
All of our products are in high quality with competitive price,safe
and fast delivery.You can mix brands and sizes and colors when place
orders.
www.fjrjtrade.com
www.fjrjtrade.com
T Shirt: Lacoste T Shirt $9,Ralph Lauren T Shirt $9, A&F T Shirts
$18,ED Hardry $13,
T-shirts(lacoste T-shirt,polo T-shirt,EVISU T-shirt,bape T-shirt,NBA
sport clothing),
please look our website ,have more mode shoes clothing hat cap bags !
wholesale Lacoste polo t shirt www.fjrjtrade.com
wholesale Lacoste t shirt solid colorwww.fjrjtrade.com
wholesale Lacoste sweaterwww.fjrjtrade.com
wholesale Lacoste shirtwww.fjrjtrade.com
wholesale Lacostewww.fjrjtrade.com
wholesale Ralph laurenwww.fjrjtrade.com
wholesale Ralph Lauren polowww.fjrjtrade.com
wholesale Polowww.fjrjtrade.com
wholesale Ralph lauren polo t shirtwww.fjrjtrade.com
wholesale Ralph lauren t shirtwww.fjrjtrade.com
wholesale Abercrombie & fitch shirtwww.fjrjtrade.com
wholesale Burberry shirtwww.fjrjtrade.com
wholesale Burberry t shirtwww.fjrjtrade.com
wholesale NBA sports jerseywww.fjrjtrade.com
T-Shirts
AFF T-shirt
ARMANI T-shirt www.fjrjtrade.com
BAPE T-shirt
BBC T-shirt www.fjrjtrade.com
BOSS T-shirt www.fjrjtrade.com
Burberry T-shirt
CA T-shirt men's www.fjrjtrade.com
CA T-shirt women's
COOGI T-shirt
CRYSTAL ROCK women's
D&G T-shirt www.fjrjtrade.com
DIESEL T-shirt
DSQUARED T-shirt men's
DSQUARED T-shirt women's
Eck? Unltd T-shirt
ED T-shirt men's
ED T-shirt women's www.fjrjtrade.com
EVISU T-shirt
GGG T-shirt
G-STAR T-shirt
HLST T-Shirtwww.fjrjtrade.com
Lacoste T-shirt
Lacoste T-shirt women's
LRG T-shirt
O&L T-shirt www.fjrjtrade.com
POLO 3 T-shirt
POLO 4 T-shirt
POLO 5 T-shirt www.fjrjtrade.com
POLO T-shirt men's
POLO T-shirt women's
Prada T-shirt
RUEHL T-Shirt www.fjrjtrade.com
SMET T-Shirt men's
SMET T-Shirt women's www.fjrjtrade.com
VERSACE T-shirt
A&F Abercrombie & Fitch T-shirt men's
A&F Abercrombie & Fitch T-shirt women's
wholesale Lacoste polo t shirt (paypal payment)( www.fjrjtrade.com )
wholesale Lacoste t shirt solid color (paypal payment)
( www.fjrjtrade.com )
wholesale Lacoste sweater (paypal payment)( www.fjrjtrade.com )
wholesale Lacoste shirt (paypal payment)( www.fjrjtrade.com )
wholesale Lacoste (paypal payment)( www.fjrjtrade.com )
wholesale Ralph lauren (paypal payment)( www.fjrjtrade.com )
wholesale Ralph Lauren polo (paypal payment)( www.fjrjtrade.com )
wholesale Polo (paypal payment)( www.fjrjtrade.com )
wholesale Ralph lauren polo t shirt (paypal payment)
( www.fjrjtrade.com )
wholesale Ralph lauren t shirt (paypal payment)( www.fjrjtrade.com )
wholesale Abercrombie & fitch shirt (paypal payment)
( www.fjrjtrade.com )
wholesale Burberry shirt (paypal payment)( www.fjrjtrade.com )
wholesale Burberry t shirt (paypal payment)( www.fjrjtrade.com )
wholesale NBA sports jersey (paypal payment)( www.fjrjtrade.com )
T-Shirts
AFF T-shirt
ARMANI T-shirt (paypal payment)( www.fjrjtrade.com )
BAPE T-shirt
BBC T-shirt (paypal payment)( www.fjrjtrade.com )
BOSS T-shirt (paypal payment)( www.fjrjtrade.com )
Burberry T-shirt
CA T-shirt men's (paypal payment)( www.fjrjtrade.com )
CA T-shirt women's
COOGI T-shirt
CRYSTAL ROCK women's
D&G T-shirt (paypal payment)( www.fjrjtrade.com )
DIESEL T-shirt
DSQUARED T-shirt men's
DSQUARED T-shirt women's
Eck? Unltd T-shirt
ED T-shirt men's
ED T-shirt women's (paypal payment)( www.fjrjtrade.com )
EVISU T-shirt
GGG T-shirt
G-STAR T-shirt
HLST T-Shirt (paypal payment)( www.fjrjtrade.com )
Lacoste T-shirt
Lacoste T-shirt women's
LRG T-shirt
O&L T-shirt (paypal payment)( www.fjrjtrade.com )
POLO 3 T-shirt
POLO 4 T-shirt
POLO 5 T-shirt (paypal payment)( www.fjrjtrade.com )
POLO T-shirt men's
POLO T-shirt women's
Prada T-shirt
RUEHL T-Shirt (paypal payment)( www.fjrjtrade.com )
SMET T-Shirt men's
SMET T-Shirt women's (paypal payment)( www.fjrjtrade.com )
VERSACE T-shirt
A&F Abercrombie & Fitch T-shirt men's
A&F Abercrombie & Fitch T-shirt women's
==============================================================================
TOPIC: Delegates ,smart pointers and GUI
http://groups.google.com/group/comp.lang.c++/t/f5ef7b3e0a822708?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 12:39 am
From: KjellKod
> Signals and slots are not "in C++". Trolltech provides them by adding two new
> keywords to C++. You can't do what they did without their language extension.
>
Actually you CAN. Boost, SigSlot and KSignals are all examples of how
that
can be achieved using normal C++. I haven't checked the Boost
implementation
but SigSlot and KSignals are quite straightforward & easy to
understand.
The reason I mentioned Qt is because they made the FIRST
implementation of
signal-slot,. but it's by far not the only one.
==============================================================================
TOPIC: addr to long
http://groups.google.com/group/comp.lang.c++/t/8c07d55c00e3053e?hl=en
==============================================================================
== 1 of 2 ==
Date: Fri, May 1 2009 1:28 am
From: SaticCaster
> long addr = reinterpret_cast<long>(&objOfAnyType);
> Is it correct for all platforms 32/64 bit ?
ILP32 data model: correct
LP64 data model (64-bit xNix): correct
LLP64 data model (Win64): NOT correct
http://www.viva64.com/terminology/Data_model.html
> If not, what is correct ?
I am recommend use ptrdiff_t or size_t.
http://www.viva64.com/art-1-2-1756520624.html
== 2 of 2 ==
Date: Fri, May 1 2009 3:18 am
From: James Kanze
On Apr 30, 1:05 pm, Juha Nieminen <nos...@thanks.invalid> wrote:
> Krzysztof Poc wrote:
> > How can I convert ptr (of any type) to long.
> > Can I do that as follows:
> > long addr = reinterpret_cast<long>(&objOfAnyType);
> > Is it correct for all platforms 32/64 bit ?
> The standard does not guarantee that sizeof(long) equals
> sizeof(void*) (and in fact, in MSVC long is 32-bit and void*
> is 64-bit when compiling a 64-bit binary).
> If you want a signed integral which is as large as a pointer,
> use the ptrdiff_t standard type. (If you want it unsigned, use
> size_t.)
There's no guarantee that ptrdiff_t or size_t are large enough
either. (I've used systems where they weren't.)
If you have C99 or C++0x, you can use intptr_t or uintptr_t.
(Theoretically, they're not guaranteed to exist. But in
practice, you're guaranteed an integral type of at least 64
bits, and I don't see 64 bits not sufficing anytime in the near
future---you can address a lot of memory with 64 bits.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
==============================================================================
TOPIC: nevermind
http://groups.google.com/group/comp.lang.c++/t/a9a8c2c7a4f70ad7?hl=en
==============================================================================
== 1 of 2 ==
Date: Fri, May 1 2009 2:23 am
From: "Bo Persson"
James Kanze wrote:
> On Apr 28, 9:10 pm, Noah Roberts <n...@nowhere.com> wrote:
>> Noah Roberts wrote:
>>> #include <iostream>
>
>>> #include <memory>
>
>>> struct T {};
>
>>> std::auto_ptr<T> f() { return new T; }
>
>> That doesn't compile in g++. So I changed the source
>> according to what g++ expects and it works without craishing
>> in both compilers. Dunno why MSVC lets me return new T, but
>> it does and then can't handle it.
>
> Looking at the expanded code (your program compiled using -E),
> it looks like the VC++ library is missing an explicit on the
> constructor of auto_ptr_ref, compared at least to g++. It's
> actually hard to say; the standard doesn't say much of anything
> about what auto_ptr_ref should look like. The class definition
> show it as empty, which IIUC means that it cannot contain any
> public members (and the g++ implementation is non-conforming as
> well). But without the explicit, you code compiles, since the
> pointer returned by new converts implicitly to an auto_ptr_ref,
> and auto_ptr has a constructor which takes an auto_ptr_ref. At
> any rate, the VC++ auto_ptr_ref is designed to contain a pointer
> to the pointer in the auto_ptr which creates it, so it's not
> surprising that funny things happen when it is initialized with
> something else. (The g++ implementation works differently...
> and will leak memory if the auto_ptr_ref isn't used to
> initialize an auto_ptr. I don't know what the correct solution
> is.)
One option is for the auto_ptr_ref to hold a reference to the auto_ptr
that created it.
But that's probably too obvious. :-)
Bo Persson
== 2 of 2 ==
Date: Fri, May 1 2009 3:25 am
From: James Kanze
On May 1, 11:23 am, "Bo Persson" <b...@gmb.dk> wrote:
> James Kanze wrote:
> > On Apr 28, 9:10 pm, Noah Roberts <n...@nowhere.com> wrote:
> >> Noah Roberts wrote:
> >>> #include <iostream>
> >>> #include <memory>
> >>> struct T {};
> >>> std::auto_ptr<T> f() { return new T; }
> >> That doesn't compile in g++. So I changed the source
> >> according to what g++ expects and it works without
> >> craishing in both compilers. Dunno why MSVC lets me return
> >> new T, but it does and then can't handle it.
> > Looking at the expanded code (your program compiled using
> > -E), it looks like the VC++ library is missing an explicit
> > on the constructor of auto_ptr_ref, compared at least to
> > g++. It's actually hard to say; the standard doesn't say
> > much of anything about what auto_ptr_ref should look like.
> > The class definition show it as empty, which IIUC means that
> > it cannot contain any public members (and the g++
> > implementation is non-conforming as well). But without the
> > explicit, you code compiles, since the pointer returned by
> > new converts implicitly to an auto_ptr_ref, and auto_ptr has
> > a constructor which takes an auto_ptr_ref. At any rate, the
> > VC++ auto_ptr_ref is designed to contain a pointer to the
> > pointer in the auto_ptr which creates it, so it's not
> > surprising that funny things happen when it is initialized
> > with something else. (The g++ implementation works
> > differently... and will leak memory if the auto_ptr_ref
> > isn't used to initialize an auto_ptr. I don't know what the
> > correct solution is.)
> One option is for the auto_ptr_ref to hold a reference to the
> auto_ptr that created it.
> But that's probably too obvious. :-)
That's basically what VC++ does (IIRC---I don't have access to
VC++ where I am at the moment). Except that in fact, it holds a
pointer to the internals of the auto_ptr, rather than to the
auto_ptr itself. And of course, that gets you into no end of
problems if the auto_ptr_ref has a lifetime beyond that of the
auto_ptr, and is used. I can't see that being a problem in
real code, but I think that the standard does allow something
like:
std::auto_ptr_ref< T > r( functionReturningAutoPtr() ) ;
std::auot_ptr< t > p( r ) ;
In which case, I don't think the VC++ implemenation would
work. IMHO, this particular error is along the same lines as
the fact that std::basic_string<double> core dumps in g++. If
you actually encounter it, you deserve it. (VC++ should either
make the constructor of auto_ptr_ref private, with auto_ptr a
friend, or make it typesafe, rather than just taking a void*,
however.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
==============================================================================
TOPIC: Is it legal to directly call a constructor?
http://groups.google.com/group/comp.lang.c++/t/562e9b8fa0a08333?hl=en
==============================================================================
== 1 of 2 ==
Date: Fri, May 1 2009 3:04 am
From: James Kanze
On Apr 30, 12:40 pm, "Alf P. Steinbach" <al...@start.no> wrote:
> * James Kanze:
> > Note that you've just changed the meaning of "direct".
> Depends on what meaning one assumes to begin with. For a
> constructor the call via pointer meaning doesn't apply. So it
> must be something else.
Your assuming the conclusion. A constructor is a function, of
sorts. For a function, a "direct" call means that it doesn't go
through a pointer to a function (usually). In that sense,
constructors can only be called directly. But other meanings of
"direct" can be considered.
> Having the call deferred to the inside of some construct is
> something else. Ergo, that's it. :D
Or given that () is the function call operator, at the syntax
levbel, using the function call operator is direct, anything
else is indirect (although I'd use explicit/implied here). Of
course, this definition leads to a lot of fun, because () aren't
only function call operators; they can occur in a lot of other
contexts as well.
IMHO, from a syntax point of view, the only reasonable meaning
for a direct call is one that corresponds to what is described
in §5.2.2---that's what the standard identifies as a function
call. In that sense, you can't call the constructor (or the
destructor) explicitly. Except that the standard also speaks of
a "pseudo destructor call" in §5.2.4. (Does the pseudo mean
that it isn't really a call?) The standard also speaks of
"calling the constructor" in several other places---do these
mean that there is something called a "constructor call"
(different from a "function call"), or is the standard just
referring to indirect calls. (There's no doubt that
constructors do get called.)
It's all really word games, and you can argue just about any
point you like, by defining or using the words in special ways.
> [snip]
> >> And at the machine code level some funny stuff is used to
> >> forward those arguments after setting up exception handling
> >> (if a scheme is used where that is necessary, i.e. not address
> >> look-up based handling) and after calling the relevant
> >> allocation function, which forwarding constitutes an
> >> indirection.
> > There's no forwarding that I can see.
> Well that was perhaps Very Bad Phrasing. Instead of /is/ I
> should have written /may be/, I'm sorry. The Holy Standard
> discusses this in §5.3.4/21, where it states that it's
> unspecified whether the allocation function is called before
> or after evaluating the specified constructor arguments. If
> it's called after, then you can't emulate the effect in C++
> level code without argument forwarding.
Nonsense. Its basically the same case as:
T::constructor( ::operator new( sizeof( T ) ),
arg1,
arg2... ) ;
In practice, under the hood, the allocator is just an
additional, hidden argument to the constructor. I wouldn't call
that "forwarding".
But I'm not sure what you mean by forwarding. That's why I ask.
To me, forwarding would mean that the constructor was somehow
called from the allocator function, or that there was some
special hidden function which called both of them. But that's
not the case, and I'm pretty sure you know that. (The wording in
the standard is there to allow implementations like that in
CFront, where the call to the allocator was actually in the
constructor---if the hidden constructor argument with the
address was null, the constructor called the allocator
function.)
> As an example of emulation, consider
> T* p = new T( e1, e2, e3 );
> With the allocation function called before the argument
> evaluation, the compiler can translate that to machine code
> equivalent to
> T* p;
> {
> T* __p = (T*)::operator new( sizeof( T ) ); // Or T's allocator.
> try
> {
> ::new( __p ) T( e1, e2, e3 );
> p = __p;
> }
> catch( ... )
> {
> ::operator delete( __p ); // Or T's deallocator.
> throw;
> }
> }
> With a class-defined allocation function with extra arguments
> (a placement allocation function) then on a constructor
> exception the corresponding placement deallocation function
> needs to be called with the same arguments. Which with the
> equivalence code above makes it necessary to hold on to those
> arguments until sucessful construction has been accomplished.
> Then the question is, is it easier or more efficient or
> whatever to hold on to (effectively forward) the allocation
> function arguments, which means calling the allocation
> function before the constructor argument evaluation as above,
> or to hold on to (effectively forward) the constructor
> arguments, which means calling the allocation function after
> the constructor argument evaluation? The implementation
> decides.
I don't get where "effectively holding on to the constructor
arguments" implies forwarding. The compiler generates machine
code, not C++. And the machine code for a function call is
basically: allocate memory for the arguments if necessary,
construct the arguments, then call the function. Those are
three distinct operations, and there's no problem slipping a
call to the allocator anywhere in the middle. And of course,
the presense of a try/catch block doesn't change anything, but
normally, a try/catch block does not generate any inline code.
(Note too that the CFront strategy still works with the required
exception handling. Just that the try/catch block is in the
constructor, not in the calling code.)
> Anyway, I think of the choice of allocation after the
> constructor argument evaluation, as an indirect call of the
> constructor -- it is similar to calling f() by calling g()
> which calls f(), except that one needs C++0x to actually
> express at the C++ level a g() that does what operator new
> does (hm, I'm not sure whether it's possible even in C++0x for
> a placement allocation function!).
It's the placement allocation which causes problems for the
CFront model. Placement allocation probably must be done
outside of the constructor. (I can think of an implementation
technique with it in the constructor, but it is heavy and much
more complicated.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
== 2 of 2 ==
Date: Fri, May 1 2009 3:11 am
From: "Alf P. Steinbach"
* James Kanze:
> On Apr 30, 12:40 pm, "Alf P. Steinbach" <al...@start.no> wrote:
>> * James Kanze:
>>> Note that you've just changed the meaning of "direct".
>
>> Depends on what meaning one assumes to begin with. For a
>> constructor the call via pointer meaning doesn't apply. So it
>> must be something else.
>
> Your assuming the conclusion. A constructor is a function, of
> sorts. For a function, a "direct" call means that it doesn't go
> through a pointer to a function (usually). In that sense,
> constructors can only be called directly. But other meanings of
> "direct" can be considered.
>
>> Having the call deferred to the inside of some construct is
>> something else. Ergo, that's it. :D
>
> Or given that () is the function call operator, at the syntax
> levbel, using the function call operator is direct, anything
> else is indirect (although I'd use explicit/implied here). Of
> course, this definition leads to a lot of fun, because () aren't
> only function call operators; they can occur in a lot of other
> contexts as well.
>
> IMHO, from a syntax point of view, the only reasonable meaning
> for a direct call is one that corresponds to what is described
> in §5.2.2---that's what the standard identifies as a function
> call. In that sense, you can't call the constructor (or the
> destructor) explicitly. Except that the standard also speaks of
> a "pseudo destructor call" in §5.2.4. (Does the pseudo mean
> that it isn't really a call?) The standard also speaks of
> "calling the constructor" in several other places---do these
> mean that there is something called a "constructor call"
> (different from a "function call"), or is the standard just
> referring to indirect calls. (There's no doubt that
> constructors do get called.)
>
> It's all really word games, and you can argue just about any
> point you like, by defining or using the words in special ways.
>
>> [snip]
>
>>>> And at the machine code level some funny stuff is used to
>>>> forward those arguments after setting up exception handling
>>>> (if a scheme is used where that is necessary, i.e. not address
>>>> look-up based handling) and after calling the relevant
>>>> allocation function, which forwarding constitutes an
>>>> indirection.
>
>>> There's no forwarding that I can see.
>
>> Well that was perhaps Very Bad Phrasing. Instead of /is/ I
>> should have written /may be/, I'm sorry. The Holy Standard
>> discusses this in §5.3.4/21, where it states that it's
>> unspecified whether the allocation function is called before
>> or after evaluating the specified constructor arguments. If
>> it's called after, then you can't emulate the effect in C++
>> level code without argument forwarding.
>
> Nonsense. Its basically the same case as:
>
> T::constructor( ::operator new( sizeof( T ) ),
> arg1,
> arg2... ) ;
>
> In practice, under the hood, the allocator is just an
> additional, hidden argument to the constructor. I wouldn't call
> that "forwarding".
>
> But I'm not sure what you mean by forwarding. That's why I ask.
> To me, forwarding would mean that the constructor was somehow
> called from the allocator function, or that there was some
> special hidden function which called both of them. But that's
> not the case, and I'm pretty sure you know that. (The wording in
> the standard is there to allow implementations like that in
> CFront, where the call to the allocator was actually in the
> constructor---if the hidden constructor argument with the
> address was null, the constructor called the allocator
> function.)
>
>> As an example of emulation, consider
>
>> T* p = new T( e1, e2, e3 );
>
>> With the allocation function called before the argument
>> evaluation, the compiler can translate that to machine code
>> equivalent to
>
>> T* p;
>> {
>> T* __p = (T*)::operator new( sizeof( T ) ); // Or T's allocator.
>> try
>> {
>> ::new( __p ) T( e1, e2, e3 );
>> p = __p;
>> }
>> catch( ... )
>> {
>> ::operator delete( __p ); // Or T's deallocator.
>> throw;
>> }
>> }
>
>> With a class-defined allocation function with extra arguments
>> (a placement allocation function) then on a constructor
>> exception the corresponding placement deallocation function
>> needs to be called with the same arguments. Which with the
>> equivalence code above makes it necessary to hold on to those
>> arguments until sucessful construction has been accomplished.
>> Then the question is, is it easier or more efficient or
>> whatever to hold on to (effectively forward) the allocation
>> function arguments, which means calling the allocation
>> function before the constructor argument evaluation as above,
>> or to hold on to (effectively forward) the constructor
>> arguments, which means calling the allocation function after
>> the constructor argument evaluation? The implementation
>> decides.
>
> I don't get where "effectively holding on to the constructor
> arguments" implies forwarding. The compiler generates machine
> code, not C++. And the machine code for a function call is
> basically: allocate memory for the arguments if necessary,
> construct the arguments, then call the function. Those are
> three distinct operations, and there's no problem slipping a
> call to the allocator anywhere in the middle. And of course,
> the presense of a try/catch block doesn't change anything, but
> normally, a try/catch block does not generate any inline code.
>
> (Note too that the CFront strategy still works with the required
> exception handling. Just that the try/catch block is in the
> constructor, not in the calling code.)
>
>> Anyway, I think of the choice of allocation after the
>> constructor argument evaluation, as an indirect call of the
>> constructor -- it is similar to calling f() by calling g()
>> which calls f(), except that one needs C++0x to actually
>> express at the C++ level a g() that does what operator new
>> does (hm, I'm not sure whether it's possible even in C++0x for
>> a placement allocation function!).
>
> It's the placement allocation which causes problems for the
> CFront model. Placement allocation probably must be done
> outside of the constructor. (I can think of an implementation
> technique with it in the constructor, but it is heavy and much
> more complicated.)
>
I don't understand what you're writing.
Cheers,
- Alf
--
Due to hosting requirements I need visits to <url: http://alfps.izfree.com/>.
No ads, and there is some C++ stuff! :-) Just going there is good. Linking
to it is even better! Thanks in advance!
==============================================================================
TOPIC: ostream::write
http://groups.google.com/group/comp.lang.c++/t/a8929aac2301abf6?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 3:05 am
From: James Kanze
On Apr 30, 11:12 am, Ralf Goertz
<r_goe...@expires-2006-11-30.arcornews.de> wrote:
> what is the reason that
> ostream& ostream::write ( const char* s , streamsize n );
> is not defined as
> ostream& ostream::write ( const void* p , streamsize n );
> like its C-counterpart?
That's because it doesn't make sense calling it with anything
but a char buffer. (The same is true for fwrite, but C has
never insisted that things make sense.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
==============================================================================
TOPIC: contiguous in memory
http://groups.google.com/group/comp.lang.c++/t/a5e84c1f1717e18c?hl=en
==============================================================================
== 1 of 4 ==
Date: Fri, May 1 2009 3:10 am
From: James Kanze
On Apr 30, 6:39 pm, Jeff Schwab <j...@schwabcenter.com> wrote:
> Victor Bazarov wrote:
> > Pascal J. Bourguignon wrote:
> >> [..]
> >> If you want to have some relationship between the two variables, you
> >> could do:
> >> auto int variables[2];
> >> #define v1 variables[0]
> >> #define v2 variables[1]
> >> and then, &(v1) - &(v2) == 1
> > I'd probably go with
> > int variables[2], &v1 = variables[0], &v2 = variables[1];
> Especially if there's an unrelated v1 or v2 in some later scope.
You can always #undef them at the end of the function.
Like Victor, macros bother me at some very fundamental level,
and given that there's a good solution which doesn't use macros,
I'd use it. But the solution with macros does work, provided
you don't forget the #undef.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
== 2 of 4 ==
Date: Fri, May 1 2009 3:12 am
From: James Kanze
On Apr 30, 6:54 pm, Victor Bazarov <v.Abaza...@comAcast.net> wrote:
> Phlip wrote:
> >>> auto int variables[2];
> >>> #define v1 variables[0]
> >>> #define v2 variables[1]
> >>> and then, &(v1) - &(v2) == 1
> >> Why the macro and not references? It would lead to much
> >> more natural 'scoping' in this case.
> > More to the point, I thought 'auto' was abandoned / ignored
> > / deprecated or something - same as 'register' and 'entry',
> > right?
> 'entry'? What's 'entry'?
A reserved word in K&R C, for some yet unimplemented
functionality. Probably planned to be the same thing as entry
in Fortran---an alternative entry point into a function.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
== 3 of 4 ==
Date: Fri, May 1 2009 3:16 am
From: Richard Herring
In message <gtcl32$efr$1@news.datemas.de>, Victor Bazarov
<v.Abazarov@comAcast.net> writes
>Phlip wrote:
>>>> auto int variables[2];
>>>> #define v1 variables[0]
>>>> #define v2 variables[1]
>>>>
>>>> and then, &(v1) - &(v2) == 1
>>
>>> Why the macro and not references? It would lead to much more natural
>>> 'scoping' in this case.
>> More to the point, I thought 'auto' was abandoned / ignored /
>>deprecated or something - same as 'register' and 'entry', right?
>
>'entry'? What's 'entry'?
Fortran, sorry, FORTRAN, IIRC.
--
Richard Herring
== 4 of 4 ==
Date: Fri, May 1 2009 4:46 am
From: Jeff Schwab
James Kanze wrote:
> On Apr 30, 6:39 pm, Jeff Schwab <j...@schwabcenter.com> wrote:
>> Victor Bazarov wrote:
>>> Pascal J. Bourguignon wrote:
>>>> [..]
>>>> If you want to have some relationship between the two variables, you
>>>> could do:
>
>>>> auto int variables[2];
>>>> #define v1 variables[0]
>>>> #define v2 variables[1]
>
>>>> and then, &(v1) - &(v2) == 1
>
>>> I'd probably go with
>
>>> int variables[2], &v1 = variables[0], &v2 = variables[1];
>
>> Especially if there's an unrelated v1 or v2 in some later scope.
>
> You can always #undef them at the end of the function.
You can work around almost anything. That doesn't make it a good idea.
> Like Victor, macros bother me at some very fundamental level,
> and given that there's a good solution which doesn't use macros,
> I'd use it.
They bother me when they are mixed in with code proper, since they play
by a completely different set of rules.
A recent client of mine used ALL CAPS not just for macros, but for all
constants. For example:
namespace foo {
void run(int value) {
if (value < SOME_CONSTANT) {
// do something
} else {
// do something else
}
}
}
One day, I added some very simple code:
namespace foo {
namespace bar {
// ...
}
}
The compiler started phlegming diagnostics:
error: 'BASE' is not a member of 'foo::bar'
Long story short, the CONSTANTS were actually macros:
// not inside namespace foo
namespace bar {
static int const BASE = 42;
}
#define SOME_CONSTANT (bar::BASE)
When I created my own namespace foo::bar, the macro picked up foo::bar
instead of ::bar, and hilarity ensued. The symptom only occurred when
the macro happened to be used inside foo; the token SOME_CONSTANT meant
something completely different in other namespaces, even though it was
expanded to identical text. This seems simple in a Usenet post, but it
took several miserable hours to debug in the real world.
The preprocessor can be used for great things, but it is not a
general-purpose programming tool. In particular, it often has nasty
interactions with the language being preprocessed.
==============================================================================
TOPIC: extern variables
http://groups.google.com/group/comp.lang.c++/t/470e01318c7f9268?hl=en
==============================================================================
== 1 of 3 ==
Date: Fri, May 1 2009 3:23 am
From: Comp1597@yahoo.co.uk
I know this is a standard topic and I've done a fair amount of
googling but I'm still a bit confused by extern variables.
My main text is C++ Primer, 4th edition (Lippman, Lajoie and Moo).
For example, I ran the following program:
// Code below in a source file
#include "SomeHeader.h"
#include <iostream>
int main ()
{
int j = doropi;
std::cout << j;
}
//Code in SomeHeader.h
const int doropi = 9;
The result of the program was that 9 was output. However, what I
expected was a compile error based on the rule (or what I thought was
the rule) that const definitions have file scope and that the way to
use consts from other files was via extern.
My code had no extern and yet I was able to use the const anyway.
This made me question the whole purpose of externs. I didn't need the
extern to fetch a member from another file and yet I thought that was
exactly what extern is for.
What I'd be grateful for is a very simple example of a necessary use
of extern variables. Googling gave me lots of definitions but no
examples.
When I tried to create my own examples, I always found that extern was
unnecessary, and that the program ran fine without this concept.
In case the compiler is relevant, I'm using the latest version of
Visual C++ Express.
Many thanks for your help.
== 2 of 3 ==
Date: Fri, May 1 2009 3:46 am
From: Neelesh
On May 1, 3:23 pm, Comp1...@yahoo.co.uk wrote:
> I know this is a standard topic and I've done a fair amount of
> googling but I'm still a bit confused by extern variables.
>
> My main text is C++ Primer, 4th edition (Lippman, Lajoie and Moo).
>
> For example, I ran the following program:
>
> // Code below in a source file
> #include "SomeHeader.h"
> #include <iostream>
>
> int main ()
> {
> int j = doropi;
> std::cout << j;
>
> }
>
> //Code in SomeHeader.h
> const int doropi = 9;
>
> The result of the program was that 9 was output. However, what I
> expected was a compile error based on the rule (or what I thought was
> the rule) that const definitions have file scope and that the way to
> use consts from other files was via extern.
> My code had no extern and yet I was able to use the const anyway.
> This made me question the whole purpose of externs. I didn't need the
> extern to fetch a member from another file and yet I thought that was
> exactly what extern is for.
Two points:
A) You are not actually "fetching" anything from "external file" here.
The "SomeHeader.h" has been "included" in the source file, which means
that the preprocessor will add the entire code from SomeHeader.h
inside your c++ source file, even before the "compiler proper" gets to
see the code. So what "compiler proper" sees is:
const int doropi = 9; //This is added by preprocessor by replacing
#include "SomeHeader.h"
//Preprocessor also replaces #include <iostream> by all its content
int main ()
{
int j = doropi;
std::cout << j;
}
So observe that this file has "doropi" defined as a global variable in
this file itself. There is no need of "extern" anywhere here.
More importantly the following point must be noted:
(B) The keyword "extern" is (typically but not necessarily) used for
declaring variables that are defined in (usually) different
"compilation unit". For example, you may have 1.cc and 2.cc files as:
//1.cc
int i = 10;
//2.cc
extern int i;
int main()
{
int j = i;
}
Now you compile 1.cc and 2.cc separately to create object code. On a
typical linux machine using g++ command line option, one would say:
sh$> g++ -c 1.cc 2.cc
This produces 1.o and 2.o. They can now be linked properly because "i"
used in 2.cc gets its definition from 1.cc
Try doing this:
sh$> g++ 2.cc
Observe what error you get. This error says that you have declared int
i as extern, but haven't given any definition.
Technically, the keyword "extern" indicates that the variable will
have external linkage.
== 3 of 3 ==
Date: Fri, May 1 2009 3:58 am
From: tpl@eng.cam.ac.uk (Tim Love)
Comp1597@yahoo.co.uk writes:
>For example, I ran the following program:
> ...
Because of the #include, you're (sort of) copy-pasting SomeHeader.h
into the main file. If you're using g++ you can do
g++ -E Main.cc
to see what the heart of the compiler's given. It's one file.
If you want to see the need for extern, try this.
---
//Code in SomeHeader.h
int doropi = 9;
---
// Code in Main.cc
#include <iostream>
// extern int doropi;
int main ()
{
int j = doropi;
std::cout << j;
}
---
and try compiling using something like
g++ Main.cc SomeHeader.cc
- you'll need to uncomment the extern line.
Note that I've removed the "const".
==============================================================================
TOPIC: getline - Segmentation fault
http://groups.google.com/group/comp.lang.c++/t/1e67c4c1c095177d?hl=en
==============================================================================
== 1 of 2 ==
Date: Fri, May 1 2009 4:49 am
From: Jeff Schwab
mamboknave@gmail.com wrote:
> Thanks to everyone. I may be stubborn but I've hard time to get it.
> The excuse is that it's just a few weeks I' fighting with C & C++.
Those are very different languages. It's probably not a superb idea to
try learning them at the same time.
> Anyway, I changed the declaration to:
>
> char Sl[1];
>
> and everything works fine.
Why are you using a raw array of char to represent a string?
== 2 of 2 ==
Date: Fri, May 1 2009 10:52 am
From: "Default User"
mamboknave@gmail.com wrote:
> Thanks to everyone. I may be stubborn but I've hard time to get it.
> The excuse is that it's just a few weeks I' fighting with C & C++.
>
> Anyway, I changed the declaration to:
>
> char Sl[1];
>
> and everything works fine.
Once again, you have a character array that can hold exactly one
character. That did not at all seem to be what you wanted. I doubt very
much that it is "working fine". It's just not as obviously broken as it
was before.
Brian
==============================================================================
TOPIC: Deitel & Deitel's How to Program C++ 6th Edition chapters 1-22 full
code solutions for $50
http://groups.google.com/group/comp.lang.c++/t/7b29327f56fd3318?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 6:30 am
From: instructors.team@gmail.com
If you need help with your learning from Deitel & Deitel's How to
Program C++ 6th Edition and need these solutions send us an email at
instructors.team[at]gmail.com.
Code solutions for $50. All code solutions for ch 1-22.
==============================================================================
TOPIC: Editor to Auto-Comment
http://groups.google.com/group/comp.lang.c++/t/dbbba4f3546a0468?hl=en
==============================================================================
== 1 of 2 ==
Date: Fri, May 1 2009 12:18 pm
From: Frank Steinmetzger
richtmyer@cox.net schrob:
> I am looking for an editor (hopefully free or cheap) that will
> let me to select a number of source code lines and easily prepend
> the 2 comment chars "//" to the selected lines. Anybody? -- thanks
All you need is a regexp-capable editor. Then select the lines you want to
change and replace "^" by "//" (without the ""). ^ means begin of a line.
--
Gruß | Greetings | Qapla'
Der Mensch lebt nicht vom Brot allein, es muß auch etwas Wurst bei sein.
== 2 of 2 ==
Date: Fri, May 1 2009 12:20 pm
From: Frank Steinmetzger
richtmyer@cox.net schrob:
> I am looking for an editor (hopefully free or cheap) that will
> let me to select a number of source code lines and easily prepend
> the 2 comment chars "//" to the selected lines. Anybody? -- thanks
All you need is a regexp-capable editor. Then select the lines you want to
change and replace "^" by "//" (without the ""). ^ means begin of a line.
Since you didn't tell us what OS you're using, I can only suggest some
editors:
Windows: Notepad++
Linux: GEdit for gnome, KDE's editor component (found in kwrite, kate etc)
--
Gruß | Greetings | Qapla'
Der Mensch lebt nicht vom Brot allein, es muß auch etwas Wurst bei sein.
==============================================================================
TOPIC: (www.topsellingnow.com) we wholesale cheap gucci shoes,cheap gucci
sneaker,discount gucci shoes,Custom gucci shoes
http://groups.google.com/group/comp.lang.c++/t/71529a56267bef35?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 1:13 pm
From: "www.topsellingnow.com"
Interested in quality discounted cheap women's and men's Prada
shoes,sneakers?(www.topsellingnow.com) we are specializing in
designer prada shoes,we sell and wholesale prada shoes sneakers at
cheap prices, sometime We purchase Prada men's shoes in stock at deep
discounts and pass the savings on to you!so today We can offer you a
quality collection of Prada men's shoes and Prada women's shoes,from
factory directly to your home,at the best prices you will ever
find.we
sell prada america's cup collection including Prada Americas Cup Mens
Shoes,Prada Americas Cup Womens Shoes,Prada Mens High Tops,Prada
Womens High Tops,all shoes will ship brand new with Prada Authenticty
Card and Dust Bags.
(www.topsellingnow.com) we wholesale cheap gucci shoes,cheap gucci
sneaker,discount gucci shoes,Custom gucci shoes,Authentic gucci
sneakers,discount gucci sneakers,customized gucci sneakers,gucci
shoes,sneakers outlet and online store.gucci sneakers distributor.
==============================================================================
TOPIC: Prada America's Cup Black Silver Mens Sneakers (www.topsellingnow.com)
http://groups.google.com/group/comp.lang.c++/t/7c146b982ac759f5?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 1:15 pm
From: topsellingnow@gmail.com
(www.topsellingnow.com)discount and cheap customize prada GUCCI
sneakers wholesale,we sale sell buy and wholesale prada and Gucci
sneakers:
1. Prada America's Cup Black Mens Sneakers (www.topsellingnow.com)
2. Prada America's Cup Black High Top Mens Sneakers
(www.topsellingnow.com)
3. Prada America's Cup White Silver High Top Mens Sneakers
(www.topsellingnow.com)
4. Prada America's Cup Black Silver Mens Sneakers
(www.topsellingnow.com)
5. Prada America's Cup White Navy Blue Stripe Mens Sneakers
(www.topsellingnow.com)
6.prada Brown Leather Men's Shoes,prada Suede Dark-Brown&Pastel
Yellow
Men's Sneakers.we accept mixed wholesale orders.
(www.topsellingnow.com)
7.(www.topsellingnow.com)Prada america's cup high top Men's Sneakers
8.(www.topsellingnow.com)Prada america's cup men's sneakers
9.(www.topsellingnow.com)Prada america's cup women's shoes
1. Prada America's Cup(www.topsellingnow.com) Black High Top Womens
Sneakers
2. Prada America's Cup(www.topsellingnow.com) Denim Blue Silver High
Tops Womens Sneakers
3. Prada America's Cup(www.topsellingnow.com) Brown Suede High Top
Womens Sneakers
4. Prada America's Cup(www.topsellingnow.com) Black Silver High Top
Womens Sneakers
5. Prada America's Cup(www.topsellingnow.com) Brown Silver High Top
Womens Sneakers
6.Prada Classic Black Men's Shoes(www.topsellingnow.com)
7. Gucci Brown Suede Brown Mesh Men's Sneakers (www.topsellingnow.com)
8. Gucci Brown Men's Sneakers (www.topsellingnow.com)
9. Gucci White Leather Brand Stripe Men's Sneakers
(www.topsellingnow.com)
10. Gucci Black All Leather Men's Sneakers (www.topsellingnow.com)
11. Gucci Black Leather Brand Stripe Men's Sneakers
(www.topsellingnow.com)
Comes brand new with GUCCI Black Box and GUCCI sleeper bag.
(www.topsellingnow.com)
Cheap Prada Shoes Handbags At Factory Wholesale,Such As:Prada
Shoes,Prada Handbags,Prada Purses,Men's Prada Shoes,Prada
Sneakers,Prada Mid Cut Shoes,Prada Bag,Prada Sunglasses,Prada
Clothes,Cheap Prada Shoes,Wholesal Prada Handbags,Discount Prada
Sneakers,Prada Trainers,Prada Sports Shoes,Replica Prada Handbags
And So On.
Cheap Prada Handbags on :
www.topsellingnow.com
==============================================================================
TOPIC: Cheap Prada Trainers,Prada Sports Shoes www.topsellingnow.com
http://groups.google.com/group/comp.lang.c++/t/7a6c1bbd3872b1d3?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 1:16 pm
From: topsellingnow@gmail.com
Wholesale Prada Handbag At :
www.topsellingnow.com
Cheap Prada Purses www.topsellingnow.com
Wholesale Prada Sneakers
www.topsellingnow.com
Cheap Wholesale Prada Shoes&Sneakers on :
www.topsellingnow.com
Wholesale Prada Men's Shoes
www.topsellingnow.com
Discount Prada Mid Cut Shoes At :
www.topsellingnow.com
Prada Shoes Handbag Cheap Price
www.topsellingnow.com
Prada Shoes Handbag Wholesale Factory :
www.topsellingnow.com
Cheap Prada Clothes
www.topsellingnow.com
Wholesale Prada Sunglasses
www.topsellingnow.com
Cheap Prada Trainers,Prada Sports Shoes
www.topsellingnow.com
Replica Prada Handbags Wholesale
www.topsellingnow.com
If you are interesting in our products,pls feel free to contact us!
Our Homepage: www.topsellingnow.com
Our E-mail: topsellingnow@yahoo.com.cn
Our Msn: topsellingnow@hotmail.com
==============================================================================
TOPIC: discount Air Jordan 4 x Air Force one Fusion (www.topsellingnow.com)
http://groups.google.com/group/comp.lang.c++/t/22200f1eee744dab?hl=en
==============================================================================
== 1 of 1 ==
Date: Fri, May 1 2009 1:20 pm
From: topsellingnow@gmail.com
cheap jordans and air force ones site at www.topsellingnow.com
wholesale Air Jordan 12 Fusion,air jordan 5x air force 1 Fusion
(www.topsellingnow.com)
(www.topsellingnow.com) Wholesale New Air Jordan 12 Fusion,Air Jordan
12 X Air Force 1. Wholesale New Air Jordan 12 Fusion,Air Jordan 12 X
Air Force 1
cheap Air Jordan 5 x Air Force one Fusion (www.topsellingnow.com)
discount Air Jordan 5 and Air Force one Fusion(www.topsellingnow.com)
Air Jordan 12 x Air Force One china online store
(www.topsellingnow.com)
(www.topsellingnow.com)Air Jordan V x Air Force 1 Fusion
Air Jordan 12 x Air Force Ones Fusion (www.topsellingnow.com)
(www.topsellingnow.com) Nike AF1 x Air Jordan 5. Nike Air Force Ones
Shoes & Air Jordan 5.
wholesale Air Jordan 5 (V) x Air Force 1 Fusion
(www.topsellingnow.com)
discount Air Jordan 4 x Air Force one Fusion (www.topsellingnow.com)
wholesale Air Jordan 23 x Air Force 1 Fusion (www.topsellingnow.com)
http://www.topsellingnow.com/views.asp?big_id=2&sort_id=236&nsort_id=545&hw_id=14305
http://www.topsellingnow.com/views.asp?big_id=2&sort_id=236&nsort_id=666&hw_id=14289
http://www.topsellingnow.com/views.asp?big_id=2&sort_id=236&nsort_id=656&hw_id=14285
http://www.topsellingnow.com/sort.asp?big_id=2&sort_id=236&page=2
http://www.topsellingnow.com/views.asp?big_id=2&sort_id=236&nsort_id=636&hw_id=13970
http://www.topsellingnow.com/sort.asp?big_id=2&sort_id=236&page=3
http://www.topsellingnow.com/views.asp?big_id=2&sort_id=236&nsort_id=545&hw_id=14296
Website: http://www.topsellingnow.com
E-mail: topsellingnow@yahoo.com.cn
Msn: topsellingnow@hotmail.com
==============================================================================
You received this message because you are subscribed to the Google Groups "comp.lang.c++"
group.
To post to this group, visit http://groups.google.com/group/comp.lang.c++?hl=en
To unsubscribe from this group, send email to comp.lang.c+++unsubscribe@googlegroups.com
To change the way you get mail from this group, visit:
http://groups.google.com/group/comp.lang.c++/subscribe?hl=en
To report abuse, send email explaining the problem to abuse@googlegroups.com
==============================================================================
Google Groups: http://groups.google.com/?hl=en
No comments:
Post a Comment