- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我进行了搜索以查看是否找到了解决此问题的方法,但没有找到答案。我遇到的问题是在我的代码编译时,我没有得到 intellisense
如果我收到一个参数(或声明一个变量),例如使用模板 T :
unique_ptr<vector<unique_ptr<T>>> & dataSets;
intellisense 找到 dataSets.get() 但没有找到 dataSets.get()->clear();但是,如果我这样做,它编译得很好。 但是,如果它不是模板,它似乎工作正常。
代码:
template <typename T>
void mtsql::MTMySQL<T>::executePrepareStatement(const string & sqlText,const unique_ptr<vector<SQLDataType>> & argList,unique_ptr<vector<unique_ptr<T>>> & dataSets)
{
dataSets.get()->clear();
unique_ptr<sql::ResultSet> rs;
for (auto iter = argList->cbegin(); iter != argList->cend() ; ++iter)
{
auto ps = this->createPreparedStatment(sqlText,args);
rs.reset(ps->execute());
dataSets.get()->insert(std::move(rs));
ps.release();
}
}
我是 c++11 的新手,所以我可能正在执行额外的步骤或可能是错误的步骤(例如,我认为不需要 ps.release() ……我的意思是删除它,但是因为是一个聪明点)
感谢您的帮助!
编辑 1:多亏了帮助,我的代码看起来好多了并且没有可能的泄漏。谢谢你!
dataSets->clear();
for (auto iter = argList->cbegin(); iter != argList->cend() ; ++iter)
{
auto ps = this->createPreparedStatment(sqlText,args);
dataSets->push_back(std::move(rs));
}
最佳答案
C++ 不是一种简单的解析和语义语言。因此,您不能指望 IntelliSense 能够完美地处理复杂类型。
至于你的代码,你可以简化代码来做:
dataSets->clear(); // no need to use `get` here.
for (auto& ignored : *argList) { // use range-based for.
auto ps = this->createPreparedStatment(sqlText,args);
dataSets->insert(ps->execute()); // no need to define 'rs'.
// no need to release explicitly, if they are indeed smart pointers.
}
(如果 dataSets
真的是一个 unique_ptr<vector<unique_ptr<T>>>
我认为你应该使用 dataSets->push_back
而不是 insert
。)
编辑:MSVC 2010 does not support range-based for .不过它确实支持 lambda:
std::for_each(argList->cbegin(), argList->cend(), [&](const vector<SQLDataType>&) {
auto ps = this->createPreparedStatment(sqlText,args);
dataSets->insert(ps->execute()); // no need to define 'rs'.
});
关于c++ - IntelliSense Visual Studio 2010 SP1 unique_ptr : unique_ptr<vector<unique_ptr<T>>> T,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11475785/
我现在选择Objective-J Cappuccino开发的编辑器是Sublime Text2。不幸的是,我没有找到Objective-J智能感知自动完成插件的运气。似乎应该可行,因为Objectiv
我想在 VSCode 中使用代码片段。但是,当我在 javascript 文件中键入 for 时,Intellisense 不会建议片段“for-loop” - 我需要手动滚动下拉列表并选择它。有没有
我正在 VisualStudio 中编写一个 dll。该库包含两个名称相同但 namespace 不同的类。 public namespace XCharting { public class
我们正在使用 MVVM Light Toolkit(来自 Galasoft - Laurent Bugnion)。 到目前为止,我们使用的是 Visual Studio 2010。 一切都运行良好(感
我们目前正在 Blend 3 中构建 WPF 解决方案,Intellisense 非常慢。 Visual Studio 2008 和 2010 beta 2 没有任何问题,Blend 2 也没有任何问
我正在为 Visual Studio Code 中的自定义语言编写扩展。语法检测通过 tmLanguage 文件运行良好。我试图弄清楚如何添加智能感知并转到符号支持,我既无法找到清晰的文档,也无法找到
/// <reference path="jquery-1.5.vsdoc.js" /> // IntelliSense works here. function ($, window, doc
我正在尝试为示例 Backbone.js 项目安装 TypeScript 定义。 在项目目录中,我发出了以下命令: npm init npm install typings typings insta
我最近通过 Web 平台安装程序安装了 ASP.NET MVC 3。我在 Razor View 中没有对 ViewBag 的智能感知支持。 Intellisense 适用于 Razor View 中的
我不想在 Visual Studio Code 中对 Markdown 文件进行单词补全,如何禁用它?理想情况下,仅适用于 Markdown,但在最坏的情况下,即使是全局切换也会很好。 最佳答案 VS
我有 VS 2012 的 RTM 版本,它很棒 - 但是 CSS 编辑器中的 VS11 中的智能感知不建议参数信息,但是......其他的东西,我不太确定那实际上是什么,它看起来像一些样本。 需要明确
我在 js 文件中添加了 vsdoc jquery 引用: /// 这工作得很好,但是一旦我在一个无冲突的包装器中写入内部... (function ($) { ...here... })(jQue
烦人的废话。我正在使用 VS 2012;我安装了 ReSharper 和 StyleCop (SC)。如果在一行代码上启用了 StyleCop 警告,除非修复它,否则我无法摆脱它。我想稍后处理 SC
我在 PPT 2013 中的“彩色参数帮助”功能有问题。 http://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a
在 javascript 上下文中查看异步模块定义 (AMD) 后,我想知道如何在 Visual Studio 2010 中为依赖模块获取智能感知。 例如给定模块A: define(function(
我有一个问题:我想将我的 Visual Studio 2012 的 UI 设置为默认(英语)语言,但我还希望有关 .NET 类型的 IntelliSense 提示以另一种语言显示。在 Visual S
可以去Resharper -> Options -> IntelliSense -> General吗并使用 Resharper 5 中的命令从 Resharper 切换到 Visual Studio
使用 Visual Studio 2015 Community edition 它会针对以下内容标记错误: { "type": "Microsoft.Compute/virtualMachi
我无法在Visual Studio 2017中找到该选项。我知道您可以更改正在编写的代码的字体,但是看不到IntelliSense的选项使我认为这是不可能的。 最佳答案 工具–选项–环境–字体和颜色>
我看过相关问题 Intellisense for custom config section problem with namespaces它描述了我遇到的同样问题。虽然解决方案对我不起作用。 我在这
我是一名优秀的程序员,十分优秀!