早上好:情况如下
.h文件
extern const std::string void_string_;
extern const int zero_int;
template <typename Class>
inline const Class& zero()
{
// an error message
}
template <>
inline const int& zero<int>()
{
return zero_int;
}
template <>
inline const std::string& zero<std::string>()
{
return void_string_;
}
Run Code Online (Sandbox Code Playgroud)
.cpp文件
const std::string void_string_="";
const int zero_int=0;
Run Code Online (Sandbox Code Playgroud)
然后我用这两个函数调用
zero<int>()
zero<string>()
Run Code Online (Sandbox Code Playgroud)
现在,编译器给我一个警告
zero<int>()
Warning: returning reference to temporary
Run Code Online (Sandbox Code Playgroud)
好吧,我知道,理论上,为什么我会收到警告:当我使用临时引用时.没关系.仍然我不明白为什么const int zero_int; 被认为是暂时的.
谢谢你的任何澄清.
编辑:根据评论的建议,我编辑了Class&zero模板.虽然最初我不能包含错误代码(因为错误消息是一个函数),我清理它以在此处发布并有效地在过程中我理解错误的原因.特别:
template <typename Class>
inline const Class& zero()
{
std::cout << …Run Code Online (Sandbox Code Playgroud) 前提:当我使用 Visual Studio Code 时,我想在保存时检查 linting,我喜欢智能感知。
尽管如此,当我输入. 它们绝对没用(我从不看它们),分散注意力,屏幕底部出现和消失所有华丽的东西,昨天,当我的电脑由于其他原因已经变慢时,它使打字变得缓慢。
由于我找不到在打字时禁用 linting 的方法,我进入了设置并禁用了大部分打字稿控件(因为它们是最严重的罪犯,对我来说没用,因为我很少使用 .ts,无论如何我使用flow+jshint,已经绰绰有余了)。而且,出于一些神奇的原因,它甚至似乎在打字时禁用了 linting,只在保存时保持活动状态。
但是今天,当我打开 VSCode 时,打字时的 linting 重新启动。[ts] 错误现在很少了,但是 jshint 仍然会产生一些错误。幸运的是,Flow 可以按预期工作,并且只能在保存时使用。
那么,有没有办法在打字时禁用 linting,让智能感知、代码完成建议和保存时的 linting 保持活动状态?
编辑:我启用了以下扩展:HTML CSS Support 0.2.0、html to javascript string 0.0.6、JavaScript Booster 0.10.2、jshint 0.10.20、Sorting HTML and Jade attributes 2.1.0、Todo Tree 0.0.116、 vscode-流-ide 1.2.0
(暂时我禁用了智能感知,看看它是否解决了问题。它没有)