今天我不小心把 const
放在我的构造函数的开头(复制粘贴错误)并且它编译了。我只在 C++11 之前的 Visual Studio 2008 中试过这个。这个语法有什么意义吗?这是微软在 constexpr
上的早期尝试吗?
class foo
{
public:
const foo(int i){}
};
foo f(1);
最佳答案
您的代码不符合标准,没有这样的东西。但是,从 C++11 开始,您可以拥有 constexpr
构造函数,因此您的对象是在编译时构造的,并且可以进一步在 constexpr
表达式中使用。
虽然我没有使用它,但就标准合规性而言,MSVS 并不是最好的编译器,至少我是从这个站点上的各种问题中了解到的。
关于c++ - 有 const 构造函数这样的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436564/