能否将重载运算符new变成constexpr函数?像这样:
constexpr void * operator new( std::size_t count );
这样做的原因是在重载运算符的函数体内执行constexpr函数,其中count参数值将作为输入数据...由于该运算符是通过以下方式调用的:
SomeClass * foo = new SomeClass();
数据类型的大小在编译时就已知,对吧?(
count == sizeof(SomeClass)
)所以,可以将计数视为编译时常量吗?constexpr void * operator new( std::size_t count )
{
if constexpr ( count >= 10 ) { /* do some compile-time business */ }
}
提前感谢任何愿意帮助的人!
N
字节的内存,则只需具有正确对齐且大小为N
的静态缓冲区即可。请注意,这个过程并不会改变原来的意思。 - François Andrieux