On Fri, 25 Oct 1996, Mark Crichton wrote:
> I KNOW the advantages for C++ for this sort of work :) I was going to try to
> avoid C++ since some of the people (including myself) don't have really strong
> C++ knowledge.
Good reason (=.
> Actually, my original idea was based (I think) off a Dr. Dobbs article about
> a C++ method of something Objective-C had, and that was functions that had
> many different parameter sets, and that ObjC took care of this automagically.
> (It went WELL beyond C++'s overloading....)
I looked into Objective-C, but I didn't really buy why you'd want to use
Objective-C over C++.
> (I also have the layout, also from Dr. Dobbs, for a C++ socket handler, so you
> can do:
> ch >> "Hello there" >>(Sock)
> and it'll print "Hello there" to the ch socket. Problem is that I dont think
> the socket clode is non-blocking *sigh*)
I do it more like
ch << "Hello there" << endl;
Pretty convenient and easy stuff, but really all a matter of semantics
(and some argue a little speedier than printf). However, you can do
something similar in C with stdargs anyways, like this:
#include <stdarg.h>
char buf3[MAX_STRING_LENGTH];
void Send_to_char(struct char_data *ch, const char * const messg, ...)
{
if (!ch->desc || !messg)
return;
va_list argptr;
va_start(argptr, messg);
vsprintf(buf3, messg, argptr);
va_end(argptr);
SEND_TO_Q(buf, ch->desc);
}
Now you have a send_to_char that works like printf so you can do:
Send_to_char(ch, "You see %d %s and a silly example!\r\n", num, str);
and pretty much use as many args as you'd like (well the limit is whatever
it is for printf).
This is also the way you'd want to set up a function to take a variable
amount of arguments as someone pointed out previously.
-cjd
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST