问题描述
鉴于向量的当前内容和大小可以在运行时随机确定,并且在调用assign时必须销毁所有内容,C ++ 20的assign member function如何才能成为constexpr即。编译时?
解决方法
找到了我的答案here。引用
成为constexpr函数并不意味着该函数已执行 在编译时。它说,该功能有可能运行 在编译时。 constexpr函数也可以运行运行时。它的 通常是编译器和优化级别的问题,如果 constexpr函数在编译时或运行时运行。
Ergo与必须在编译时确定的constexpr变量不同,对一个constexpr函数的一次调用可以在编译时运行,具体取决于调用的情况(例如constexpr std :: vector),而在运行时(例如非constexpr std :: vector)。