sure thing: ----------------------------------------------
struct foo { // some stuff gets executed virtual void do_something(somestruct &s); // base case executed by default }; struct foo_foo : foo { // some stuff gets executed }; struct foo_bar : foo { // some stuff gets executed virtual void do_something(somestruct &s); // special case }; So then if we have say: foo *f; somestruct s; // ... some code that sets f to something and changes s f->do_something(s); ---------------------------------------- So now when the compiler is optimizing the code, it will optimize for the base case of foo::do_something by default unless it has information that is even better. If our code instead read with f as a function pointer, the compiler (assuming it can't determine the value) won't have a base case. On Nov 22, 2007 12:18 PM, Petr Baudis <[EMAIL PROTECTED]> wrote: > On Thu, Nov 22, 2007 at 12:04:53PM +1800, Nick Apperson wrote: > > right... well C++ does have this using virtual methods. I meant to add > that > > part. > > I'm sorry, I still don't get this - what do virtual methods have to do > with branch prediction? Can you elaborate, please? > > -- > Petr "Pasky" Baudis > We don't know who it was that discovered water, but we're pretty sure > that it wasn't a fish. -- Marshall McLuhan > _______________________________________________ > computer-go mailing list > computer-go@computer-go.org > http://www.computer-go.org/mailman/listinfo/computer-go/ >
_______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/