是否有const构造函数这样的东西?

cpp*_*guy 6 c++ visual-studio

今天我不小心把const我的构造函数的开头(复制粘贴错误)和它编译.我只在Visual Studio 2008中尝试过这个,它是C++ 11之前的版本.这种语法有什么意义吗?这是微软的早期尝试constexpr吗?

class foo
{
public:
    const foo(int i){}
};

foo f(1);
Run Code Online (Sandbox Code Playgroud)

vso*_*tco 4

您的代码不符合标准,不存在这样的事情。但是,从 C++11 开始,您可以拥有constexpr构造函数,因此您的对象是在编译时构造的,并且可以进一步在表达式中使用constexpr

尽管我没有使用它,但就标准合规性而言,MSVS 并不是最好的编译器,至少我从本网站上的各种问题中意识到这一点。