Which language are we talking here? Cpp? Because typeof hasn’t ever seemed useful to me in how I use cpp or how I have ever really used a language. I also remember it being criticized in java class more than 20 years ago when OOP was solely preached, even for scientific people like me.
This sure looks like C#. I use typeof every once in a while when I want to check that the type of a reference is a specific type and not a parent or derived type. But yea, really not that often.
I’m working on a background fun project where there’s a base class that is for olde style CPU emulation. Where you can derive a class from the base class and essentially design 8bit style CPUs.
I have a separate class as a generic Assembler that will work with any of the created CPUs. But, to be able to do that I need to be able to get information about instructions, arguments, opcodes, registers etc from the derived class.
So the assembler is instantiated with Assembler\ and then it uses typeof to instantiate the actual CPU class being used to get all the information.
So, that’s just an example of when you’d use something like this.
TypeScript has all of these patterns, they are used very frequently and they are necessary because TypeScript tends to be interesting from time to time since its types only exist at compile time, because it compiles to JavaScript, which is a language without types.
TypeScript also allows any as a keyword, which says “I don’t know which type this is and I don’t care”, which still produces valid JavaScript. To get back to typed variables it is necessary to use typeof (or similar constructs like a type guard).
But generic type syntax is a feature exclusive to Typescript while typeof is a JavaScript thing. You’d never get Pie[Pie[T]] as a result from a typeof check. (Please excuse the square brackets; seems like the markdown parser here isn’t quite right and it keeps messing up the angle brackets)
Which language are we talking here? Cpp? Because typeof hasn’t ever seemed useful to me in how I use cpp or how I have ever really used a language. I also remember it being criticized in java class more than 20 years ago when OOP was solely preached, even for scientific people like me.
This sure looks like C#. I use typeof every once in a while when I want to check that the type of a reference is a specific type and not a parent or derived type. But yea, really not that often.
It looks exactly like c++ and c# and java and probably others.
Java only has
instanceof
andgetClass
, not typeof.But neither c++ or Java have typeof
deleted by creator
Standard C does not have typeof. That’s just a compiler extension…
Also the equivalent of typeof is most likely decltype or auto.
Typescript! Though it’s less useful, since the Typescript types aren’t available at runtime, so you’ll just get
object
for non-primitive values.Probably because Java and C# take much inspiration from C++. They aren’t called “C-based” languages for nothing 😉
Yeah in C# it has quite a few uses.
I’m working on a background fun project where there’s a base class that is for olde style CPU emulation. Where you can derive a class from the base class and essentially design 8bit style CPUs.
I have a separate class as a generic Assembler that will work with any of the created CPUs. But, to be able to do that I need to be able to get information about instructions, arguments, opcodes, registers etc from the derived class.
So the assembler is instantiated with Assembler\ and then it uses typeof to instantiate the actual CPU class being used to get all the information.
So, that’s just an example of when you’d use something like this.
This is likely referring to TypeScript.
TypeScript has all of these patterns, they are used very frequently and they are necessary because TypeScript tends to be interesting from time to time since its types only exist at compile time, because it compiles to JavaScript, which is a language without types.
TypeScript also allows
any
as a keyword, which says “I don’t know which type this is and I don’t care”, which still produces valid JavaScript. To get back to typed variables it is necessary to usetypeof
(or similar constructs like a type guard).https://www.typescriptlang.org/docs/handbook/2/typeof-types.html
But generic type syntax is a feature exclusive to Typescript while
typeof
is a JavaScript thing. You’d never getPie[Pie[T]]
as a result from atypeof
check. (Please excuse the square brackets; seems like the markdown parser here isn’t quite right and it keeps messing up the angle brackets)Also, it’s
typeof foo
nottypeof(foo)
in jsIt’s very useful in zig’s comptime.
TypeScript?