By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
429,327 Members | 2,627 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 429,327 IT Pros & Developers. It's quick & easy.

call c++ function from c

P: n/a
Hello,

I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.

Best regards

Falk

Aug 9 '07 #1
Share this Question
Share on Google+
22 Replies


P: n/a
fa*************@web.de wrote:
I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.
It probably would be better to ask this in a comp.lang.c++ since
this is more in the territory of expertise of the regulars over
there. See also

http://www.parashift.com/c++-faq/mixing-c-and-cpp.html

I try a short explanation anyway (which might be wrong since I
am not a C++ expert!): In C++ you can have several functons with
the same name that are only distinguished by the number and
types of their arguments. To allow the linker to distinuish be-
tween these functions the compiler renames the functions auto-
matically, typically by appending some text to the names that
indicates the number and types of arguments, like

foo( int ) becomes foo_i
foo( double ) becomes foo_d

(this is an example, not the real thing, different C++ compilers
may do it in different ways). If you know this mangled name then
you can change the call of the function accordingly, i.e. use the
mangled name in the C code. The obvious drawback is that this
only works for the C++ compiler you determined for how it does
the name mangling.

If you can change the C++ source and there's only a single
function with that name then you can declare it in the C++
header file with

extern "C" void f(int i, char c, float x);

to keep the C++ compiler from mangling the function name.

Regards, Jens
--
\ Jens Thoms Toerring ___ jt@toerring.de
\__________________________ http://toerring.de
Aug 9 '07 #2

P: n/a
fa*************@web.de wrote:
>
I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header
file in the c file and call the function GetHostIPAddresses(1);.
But the linker doesn't found the function. Can someone give me a
hint what is wrong.
You can't do it. C++ has provisions for calling C functions, but C
doesn't know anything about C++. Even the C++ calling is
restricted to the same compiler.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>

--
Posted via a free Usenet account from http://www.teranews.com

Aug 9 '07 #3

P: n/a

<fa*************@web.dewrote in message
news:11**********************@k79g2000hse.googlegr oups.com...
Hello,

I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.
Get the C++ object file and dump it as ascii. You should see all the
functions arrayed, but because it is C++ they have funny characters and
other things associated with them.
Extract the name - which may take two or three attempts - put it in your C
source, and try to link. Eventually you will succeed. Then test the function
carefully to make sure C++ isn't passing it any extra arguments.

--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm

Aug 9 '07 #4

P: n/a
"Malcolm McLean" <re*******@btinternet.comwrites:
<fa*************@web.dewrote in message
news:11**********************@k79g2000hse.googlegr oups.com...
>I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.
Get the C++ object file and dump it as ascii. You should see all the
functions arrayed, but because it is C++ they have funny characters
and other things associated with them.
Extract the name - which may take two or three attempts - put it in
your C source, and try to link. Eventually you will succeed. Then test
the function carefully to make sure C++ isn't passing it any extra
arguments.
In other words, proceed by trial and error to produce code that's
going to be horribly non-portable because it depends intimately on how
the particular C++ compiler performs "name mangling".

A much better idea: read section 32 of the "C++ FAQ Lite" at
<http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html>, and
take any further questions to comp.lang.c++.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Aug 9 '07 #5

P: n/a
fa*************@web.de wrote:
Hello,

I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.
Well, other explaind why it doesn't work pretty well, so I'll skip this
part.
If you want to use C++ function in C and you don't want to change C++
code, add a wrapper layer. Decalre function in C++ that calls your
intended function- it should look something like this:

foo() - your C++ function.

In .cpp file:
extern "C" foo_for_C()
{ return foo()}

In .h file:
#ifdef __cplusplus
extern "C" {
#endif
foo_for_c();

#ifdef __cplusplus
}
#endif
M.
Aug 10 '07 #6

P: n/a

Marcin Wolcendorf <wo******@friko2.onet.plwrote in message
news:f9**********@nemesis.news.tpi.pl...
fa*************@web.de wrote:

I have the problem to call a c++ funtion in a C project. I have a
header file from the cpp file. In the header file the function is
decleared "int GetHostIPAddresses(ini i);". I inlcude the header file
in the c file and call the function GetHostIPAddresses(1);. But the
linker doesn't found the function. Can someone give me a hint what is
wrong.

Well, other explaind why it doesn't work pretty well, so I'll skip this
part.
If you want to use C++ function in C and you don't want to change C++
code, add a wrapper layer. Decalre function in C++ that calls your
intended function- it should look something like this:

foo() - your C++ function.

In .cpp file:
extern "C" foo_for_C()
{ return foo()}

In .h file:
#ifdef __cplusplus
extern "C" {
#endif
foo_for_c();

#ifdef __cplusplus
}
#endif
Well, looky there, an actual correct answer in this newsgroup. This
question has come up several times here, and certain people have once
again chosen to not only be presumably off-topic but just completely
wrong as well. They were affirmatively corrected several times
before, but apparently they are uneducable.

And I'm quite sure, quite worthless as programmers or for any
type of positive contribution to the human race. They are the garbage
that lie to get a job, then dog it for as long as they can with a constant
stream of excuses, lies, abuse, and obnoxious behavior in lieu of
actually ever writing any type of useful software.

In other words, the epitomy of how most employers are forced
to view "software engineers" due to long painful experience...

---
William Ernest Reid

Aug 11 '07 #7

P: n/a
>fa*************@web.de wrote:
>>>I have the problem to call a c++ funtion in a C project. ...
>Marcin Wolcendorf <wo******@friko2.onet.plwrote in message
news:f9**********@nemesis.news.tpi.pl...
>Well, other explaind why it doesn't work pretty well, so I'll skip this
part.
If you want to use C++ function in C and you don't want to change C++
code, add a wrapper [via C++'s extern "C" method]. [example snipped]
In article <70*********************@bgtnsc04-news.ops.worldnet.att.net>,
Bill Reid <ho********@happyhealthy.netwrote:
>Well, looky there, an actual correct answer in this newsgroup.
Yes, except for one problem: the example code (that I snipped,
above) is wrong. The bug is small and simple and easily corrected
(and will be caught by the compiler), but still, the example contains
a bug.

(In fact, the C part of the example is valid C89 but not valid C99.
This is, in effect, what is wrong with the C++ part of the example.)
>This question has come up several times here ...
And the answer here is "C++ defines a way to call C but not vice
versa, so you will get a better (peer-reviewed, as it were) answer
in comp.lang.c++, so you would be wiser to go there for advice."
>... and certain people have once again chosen to not only be
presumably off-topic but just completely wrong as well.
No, you and Marcin Wolcendorf were only *slightly* wrong. :-)

This sort of subtle error is *why* one should seek answers in a
more-appropriate forum. A newsgroup full of POSIX-specializing
programmers (such as comp.unix.programmer) is more likely to know
all the details of, say, using POSIX AIO -- even from C code --
than is a forum of "strictly ANSI/ISO C programmers" like the
comp.lang.c newsgroup.
--
In-Real-Life: Chris Torek, Wind River Systems
Salt Lake City, UT, USA (4039.22'N, 11150.29'W) +1 801 277 2603
email: forget about it http://web.torek.net/torek/index.html
Reading email is like searching for food in the garbage, thanks to spammers.
Aug 11 '07 #8

P: n/a
Chris Torek <no****@torek.netwrote:
fa*************@web.de wrote:
I have the problem to call a c++ funtion in a C project. ...
Marcin Wolcendorf <wo******@friko2.onet.plwrote in message
news:f9**********@nemesis.news.tpi.pl...
Well, other explaind why it doesn't work pretty well, so I'll skip this
part.
If you want to use C++ function in C and you don't want to change C++
code, add a wrapper [via C++'s extern "C" method]. [example snipped]

In article <70*********************@bgtnsc04-news.ops.worldnet.att.net>,
Bill Reid <ho********@happyhealthy.netwrote:
Well, looky there, an actual correct answer in this newsgroup.

Yes, except for one problem: the example code (that I snipped,
above) is wrong. The bug is small and simple and easily corrected
(and will be caught by the compiler), but still, the example contains
a bug.

(In fact, the C part of the example is valid C89 but not valid C99.
This is, in effect, what is wrong with the C++ part of the example.)
I should have written 'foo(....)', so you wouldn't be confused. Well, I
assumed, possibly wrongly, that 'looks something like that' is an
example that might not compile, but shows a concept. Perahaps I should
have put it in the footnote...
>
This question has come up several times here ...

And the answer here is "C++ defines a way to call C but not vice
versa, so you will get a better (peer-reviewed, as it were) answer
in comp.lang.c++, so you would be wiser to go there for advice."
... and certain people have once again chosen to not only be
presumably off-topic but just completely wrong as well.

No, you and Marcin Wolcendorf were only *slightly* wrong. :-)

This sort of subtle error is *why* one should seek answers in a
more-appropriate forum. A newsgroup full of POSIX-specializing
programmers (such as comp.unix.programmer) is more likely to know
all the details of, say, using POSIX AIO -- even from C code --
than is a forum of "strictly ANSI/ISO C programmers" like the
comp.lang.c newsgroup.
Have you actually read the description of this newsgroup? It's nice and
clear, one line only:
'Disscussion about C.'
I can't see here any 'strictly' nor 'ANSI' nor 'ISO'. The 'programmers'
have also been lost somehere in translation... The only match is 'C'.
Where *exactly* have you taken the description of this group from?
Regards,

M.W.
Aug 14 '07 #9

P: n/a
Marcin Wolcendorf wrote:
>
.... snip ...
>
Have you actually read the description of this newsgroup? It's
nice and clear, one line only:
'Disscussion about C.'
I can't see here any 'strictly' nor 'ANSI' nor 'ISO'. The
'programmers' have also been lost somehere in translation...
The only match is 'C'. Where *exactly* have you taken the
description of this group from?
The only factual descriptions of the C language are the ISO
standard(s) and, earlier, K & R.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>

--
Posted via a free Usenet account from http://www.teranews.com

Aug 15 '07 #10

P: n/a
header.h file
#ifdef__cplusplus
extern "C" {
#endif
int GetHostIPAddresses(ini i);
#ifdef__cplusplus
}
#endif

cpluplus.cpp
#include <header.h>
int GetHostIPAddresses(ini i)
{
......
}

cfile.c
#include <header.h>

Aug 15 '07 #11

P: n/a
Sudhanshu wrote:
>
header.h file
#ifdef__cplusplus
extern "C" {
#endif
int GetHostIPAddresses(ini i);
#ifdef__cplusplus
}
#endif

cpluplus.cpp
#include <header.h>
int GetHostIPAddresses(ini i)
{
.....
}

cfile.c
#include <header.h>
That enables C++ to call C, not the reverse direction.

Include adequate quotation from whatever you are answering, and
indent your code properly. Don't use tabs, use spaces.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>

--
Posted via a free Usenet account from http://www.teranews.com

Aug 16 '07 #12

P: n/a
In article <46***************@yahoo.com>,
CBFalconer <cb********@maineline.netwrote:
>[Using C++'s extern "C" construct] enables C++ to call C, not
the reverse direction.
Actually, it works both ways, provided some reasonably obvious
and straightforward restrictions are met.

(It is possible to write C++ code that can*not* call C code, nor
vice versa; and mixing one vendor's C compiler with another's C++
compiler can result in various disasters, but this is equally true
for mixing one vendor's C compiler with another vendor's C compiler.
But if the calls can be done at all, the C++ extern "C" method is
almost always the way to go. Further discussion about this really
belongs in comp.lang.c++ and/or vendor-specific newsgroups, of
course.)
--
In-Real-Life: Chris Torek, Wind River Systems
Salt Lake City, UT, USA (4039.22'N, 11150.29'W) +1 801 277 2603
email: forget about it http://web.torek.net/torek/index.html
Reading email is like searching for food in the garbage, thanks to spammers.
Aug 16 '07 #13

P: n/a
Background: Marcin Wolcendorf provided a mostly-correct and suitably
worded answer, to which I did not object. Then:
>>In article <70*********************@bgtnsc04-news.ops.worldnet.att.net>
Bill Reid <ho********@happyhealthy.netwrote:
>>>Well, looky there, an actual correct answer in this newsgroup.
>Chris Torek <no****@torek.netwrote:
>Yes, except for one problem: the example code (that I snipped,
above) is wrong. The bug is small and simple and easily corrected
(and will be caught by the compiler), but still, the example contains
a bug.

(In fact, the C part of the example is valid C89 but not valid C99.
This is, in effect, what is wrong with the C++ part of the example.)
In article <f9**********@nemesis.news.tpi.pl>,
Marcin Wolcendorf <wo******@friko2.onet.plwrote:
>I should have written 'foo(....)', so you wouldn't be confused. Well, I
assumed, possibly wrongly, that 'looks something like that' is an
example that might not compile, but shows a concept.
Yes -- this was, I think, the main reason I did not object at all
to your own posting. I was really responding to Bill Reid:
>This sort of subtle error is *why* one should seek answers in a
more-appropriate forum. A newsgroup full of POSIX-specializing
programmers (such as comp.unix.programmer) is more likely to know
all the details of, say, using POSIX AIO -- even from C code --
than is a forum of "strictly ANSI/ISO C programmers" like the
comp.lang.c newsgroup.
>Have you actually read the description of this newsgroup? It's nice and
clear, one line only:
'Disscussion about C.'
I can't see here any 'strictly' nor 'ANSI' nor 'ISO'.
The lack of anything more specific -- the generality of the phrase
"discussion about C" -- is precisely what creates this constraint!
In a group that addresses generic "C" -- not "C on Tandem Non-Stop",
not "C on VMS", not "the C routines provided by vxWorks" -- what
sort of advice will you get on when to use semBCreate() versus
semMCreate()? Who will tell you, correctly, all the details about
SYS$QIO? Will you get correct information about thread programming
here, or are you more likely to get correct information elsewhere?

Perhaps you think we *should* discuss these here. But then I would
have to wonder why we have comp.os.vms and comp.programming.threads.

(Incidentally, one should use semBCreate if the mutex will be used
for interrupt code. One should use semMCreate if the mutex needs
to do automatic priority elevation to avoid inversions, or to set
various options. Otherwise either one will generally suffice.)
--
In-Real-Life: Chris Torek, Wind River Systems
Salt Lake City, UT, USA (4039.22'N, 11150.29'W) +1 801 277 2603
email: forget about it http://web.torek.net/torek/index.html
Reading email is like searching for food in the garbage, thanks to spammers.
Aug 16 '07 #14

P: n/a
Chris Torek wrote:
CBFalconer <cb********@maineline.netwrote:
>[Using C++'s extern "C" construct] enables C++ to call C, not
the reverse direction.

Actually, it works both ways, provided some reasonably obvious
and straightforward restrictions are met.

(It is possible to write C++ code that can*not* call C code, nor
vice versa; and mixing one vendor's C compiler with another's C++
compiler can result in various disasters, but this is equally true
for mixing one vendor's C compiler with another vendor's C compiler.
But if the calls can be done at all, the C++ extern "C" method is
almost always the way to go. Further discussion about this really
belongs in comp.lang.c++ and/or vendor-specific newsgroups, of
course.)
The C++ system attempts to adorn external calls with information
about parameters, etc. in various ways. The C system has no way of
understanding this mess. Thus C can't call C++ bcause the
'adornments' are missing. However, C++ has a provision for
dropping those 'adornments' to call precompiled C code.

Since C provision for linking to C++ only involves a couple of one
line #includes, and no effort at the C++ level, I consider it
discussable here. C99 includes the reserved identifier
__cplusplus__ to guard those #includes.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>

--
Posted via a free Usenet account from http://www.teranews.com

Aug 16 '07 #15

P: n/a
CBFalconer wrote:
Chris Torek wrote:
>CBFalconer <cb********@maineline.netwrote:
>>[Using C++'s extern "C" construct] enables C++ to call C, not
the reverse direction.
Actually, it works both ways, provided some reasonably obvious
and straightforward restrictions are met.

(It is possible to write C++ code that can*not* call C code, nor
vice versa; and mixing one vendor's C compiler with another's C++
compiler can result in various disasters, but this is equally true
for mixing one vendor's C compiler with another vendor's C compiler.
But if the calls can be done at all, the C++ extern "C" method is
almost always the way to go. Further discussion about this really
belongs in comp.lang.c++ and/or vendor-specific newsgroups, of
course.)

The C++ system attempts to adorn external calls with information
about parameters, etc. in various ways. The C system has no way of
understanding this mess. Thus C can't call C++ bcause the
'adornments' are missing. However, C++ has a provision for
dropping those 'adornments' to call precompiled C code.
I think you are completely missing the point about it working both ways,
never mind.

--
Ian Collins.
Aug 16 '07 #16

P: n/a
CBFalconer <cb********@yahoo.comwrote:

# understanding this mess. Thus C can't call C++ bcause the
# 'adornments' are missing. However, C++ has a provision for

That comes as a shock and disappointment to all of us who
actually do this.

--
SM Ryan http://www.rawbw.com/~wyrmwif/
If you plan to shoplift, let us know.
Thanks
Aug 16 '07 #17

P: n/a
SM Ryan <wy*****@tango-sierra-oscar-foxtrot-tango.fake.orgwrites:
CBFalconer <cb********@yahoo.comwrote:

# understanding this mess. Thus C can't call C++ bcause the
# 'adornments' are missing. However, C++ has a provision for

That comes as a shock and disappointment to all of us who
actually do this.
http://developers.sun.com/sunstudio/...es/mixing.html
Aug 16 '07 #18

P: n/a
Hi Chris,

Chris Torek <no****@torek.netwrote:
Background: Marcin Wolcendorf provided a mostly-correct and suitably
worded answer, to which I did not object. Then:
>
>
...snip..

To make it short:
- Please, if you add some criticism- be specific. I'd be happy if you
pointed out mistakes I made. I guess this is what you object to do for
philosophic reasons. Well, I have no solution to that, then; I need
facts, not foggy clues and riddles anyway.
- I can see your point of limiting the topics to 'C only'; I somewhat
agree. Nevertheless making group too narrow will make it unusable
(IMHO). Some other groups may do the same- then someone looking for
answers will be bounced from every group with 'OT' excuse. IMO- this
is the place to provide answers, not frustration. What's more- if
you'll make it too strict, too narrow, you'll soon find there is
no-one to talk to.
Regards (and EOT),

M.W.

Aug 18 '07 #19

P: n/a
Marcin Wolcendorf said:

<snip>
- I can see your point of limiting the topics to 'C only'; I somewhat
agree.
Good.
Nevertheless making group too narrow will make it unusable
So will making it too wide. This newsgroup discusses C. That is a wide
enough topic to ensure that this group has been useful for almost a
quarter of a century.
(IMHO). Some other groups may do the same- then someone looking for
answers will be bounced from every group with 'OT' excuse. IMO- this
is the place to provide answers, not frustration.
Right - and the answer to your question is that C does not provide a
mechanism to interface specifically with C++ functions. If you find the
answer frustrating, that's unfortunate, but it happens to be the
correct answer nonetheless.
What's more- if
you'll make it too strict, too narrow, you'll soon find there is
no-one to talk to.
And if you make it too wide, you'll soon find there's nowhere left to
ask about C, because the S/N ratio will drop through the floor and the
C experts will give up bothering with the group, so the only people
left to answer your questions will be the guessers.

--
Richard Heathfield <http://www.cpax.org.uk>
Email: -www. +rjh@
Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
"Usenet is a strange place" - dmr 29 July 1999
Aug 18 '07 #20

P: n/a
Richard Heathfield <rj*@see.sig.invalidwrites:
Marcin Wolcendorf said:

<snip>
>- I can see your point of limiting the topics to 'C only'; I somewhat
agree.

Good.
>Nevertheless making group too narrow will make it unusable

So will making it too wide. This newsgroup discusses C. That is a wide
enough topic to ensure that this group has been useful for almost a
quarter of a century.
C and your lecturing on topicality you mean. There is FAR more noise in
this NG with our posturing and others rushing in with their OT
admonishments than there is from perceived "off topic" original
posts. Grow up and ignore them.

Aug 18 '07 #21

P: n/a
In article <2y************@homelinux.net>, Richard <rg****@gmail.comwrote:
....
>C and your lecturing on topicality you mean. There is FAR more noise in
this NG with our posturing and others rushing in with their OT
admonishments than there is from perceived "off topic" original
posts. Grow up and ignore them.
If it weren't for off-topics posts, we'd have no posts at all!

(Gloom, despair, and agony on me...)

Aug 18 '07 #22

P: n/a
Richard <rg****@gmail.comwrites:
Richard Heathfield <rj*@see.sig.invalidwrites:
>Marcin Wolcendorf said:
<snip>
>>- I can see your point of limiting the topics to 'C only'; I somewhat
agree.

Good.
>>Nevertheless making group too narrow will make it unusable

So will making it too wide. This newsgroup discusses C. That is a wide
enough topic to ensure that this group has been useful for almost a
quarter of a century.

C and your lecturing on topicality you mean. There is FAR more noise in
this NG with our posturing and others rushing in with their OT
admonishments than there is from perceived "off topic" original
posts. Grow up and ignore them.
A great deal of the noise in this group, and a majority of your own
contributions (no I haven't actually measured), consists of *you*
lecturing us about topicality.

Many, perhaps most, posts saying that something is off-topic are well
received by their targets, especially when such posts include a
redirection to a more appropriate forum.

In this particular thread, the original question is about calling a
C++ function from C. The simple fact is that C provides no mechanism
for doing this. But C++ does. There are questions about whether the
C++ mechanism supports both calling C++ from C and vice versa. We
could speculate at length here about those questions, with C
programmers who really don't know C++ very well guessing what C++
provides. Or the question could be redirected to comp.lang.c++, where
it can be answered quickly and definitively, probably with a simple
citation of the C++ FAQ.

It wasn't entirely unreasonable for the original poster to ask the
question here. It was entirely reasonable to redirect the OP to
comp.lang.c++. Going back over the history of this thread, the very
first response (from Jens Thoms Toerring) did exactly that. (Jens
also tried to answer the question in C++ terms, which IMHO was
unwise.) If we could have just left it at that, the OP would have
gotten his answer and we wouldn't be wasting our time arguing about
topicality.

You don't like us posting articles saying that C++ is off-topic?
"Grow up and ignore them."

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Aug 18 '07 #23

This discussion thread is closed

Replies have been disabled for this discussion.