小编DrH*_*ell的帖子

警告:返回临时引用(来自const)

早上好:情况如下

.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)

c++ temporary

5
推荐指数
0
解决办法
117
查看次数

VSCode:键入时禁用 linting

前提:当我使用 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

(暂时我禁用了智能感知,看看它是否解决了问题。它没有)

lint jshint visual-studio-code

5
推荐指数
1
解决办法
502
查看次数

标签 统计

c++ ×1

jshint ×1

lint ×1

temporary ×1

visual-studio-code ×1