@cire
| First thing I noticed: Function definitions which are supplied in the definition of the class are implicitly inline. There is no reason to preface each one with inline |
I just want to ensure that all functions must be completely "inline". :)
| What's with the union? It appears to be solely for purposes of obfuscation. |
Yes they are only like "comments", they are not used so you can remove it.
| What's with everything being public? |
I want to keep it simple. It's a custom vector. I don't think anyone will call a '_' reserved function for no reason :)
| Why are you using memcpy as opposed to std::copy? |
I'm worried about performance, so if you want it to support constructors, turn it off. Otherwise if you only want to manage data, turn memcpy on.
| Why are you using realloc as opposed to new? |
"new" only does allocate. "realloc" is more convenient, it does allocate & copy like "malloc" & "memcpy".
| Why do you have member functions that don't access member data? |
Yeah, some functions seem like don't access member data. But probably they're used many times, so I packed them. Also I think doing so can give hints to the compiler.
| Why are you using assert as opposed to propagating exceptions? |
"assert" is not used very much. It only appears on debug and it's used to catch memory exceptions or access (at). I don't think they will appear much so I removed "exceptions" and then replaced with "assert".