转发声明一个标准容器?

2023-12-07

是否可以在头文件中转发声明标准容器?例如,采用以下代码:

#include <vector>

class Foo
{
private:
    std::vector<int> container_;
    ...
};

我希望能够做这样的事情:

namespace std
{
    template <typename T> class vector;
}

class Foo
{
private:
    std::vector<int> container_;
    ...
};

这可以做到吗?


声明vector in the std命名空间是未定义的行为。因此,您的代码可能有效,但也可能无效,并且编译器没有义务告诉您您的尝试何时无效。这是一场赌博,而且我不知道避免包含标准 C++ 头文件是否值得。

请参阅以下 comp.std.c++.moderated 讨论:

向前声明 std::vector。可行,但它符合法律和标准吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

转发声明一个标准容器? 的相关文章

  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • DispatcherTimer 未按时执行

    我正在使用 c 中的 DispatchTimer 编写一个时钟应用程序 但由于某些原因 我的时钟似乎时不时地跳过 1 秒 例如 52 秒 gt 54 秒 跳过 53 秒 在我看来 计时器并不是每秒都执行一次 DispatcherTimer
  • 扫描文本文件时如何跳过行?

    我想扫描一个文件并在阅读之前跳过一行文本 我试过 fscanf pointer n struct test i j 但这个语法只是从第一行开始 我可以使用 scanf 使用以下指令跳过行 fscanf config file n n 格式字
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 使用不带参数的 Split() 时,默认分隔符是什么?

    所以我看了看String Split 今天 C 中的方法 我意识到你也可以向它传递零参数 这是我从未考虑过的 使用时默认的分隔符是什么Split 没有任何参数 如果没有值 则为空白 来源自here https msdn microsoft
  • 如何将字节块读入结构体

    我有一个需要处理的资源文件 它包含一组文件 首先 资源文件列出了其中包含的所有文件 以及一些其他数据 例如在此结构中 struct FileEntry byte Value1 char Filename 12 byte Value2 byt
  • 特定设备的不同字体大小

    我目前正在开发通用应用程序 我需要分别处理移动设备和桌面的文本框字体大小 我找到了一些方法 但都不能解决问题 使用 VisualStateManager 和 StateTrigger 为例
  • 用 C# 制作 Vista 风格的应用程序

    我正在运行 Windows Vista 并且希望外观看起来像常规 Vista 程序 有没有关于如何构建 Vista 风格应用程序的真正好的教程 文章 我还想学习如何使用本机代码并将其转换为 C 如this http bartdesmet n
  • 导出到 CSV 时 Gridview 出现空行

    这个问题是由进一步讨论引发的这个问题 https stackoverflow com questions 6674555 export gridview data into csv file 6674589 noredirect 1 com
  • 如何使用泛型类型的 DataContractSerializer 编写自定义序列化器?

    我想编写一个自定义序列化器 用于将会话状态存储到Azure 缓存 预览版 这意味着这个自定义序列化器必须实现IDataCacheObjectSerializer 如果我错了 请告诉我 我需要编写这个自定义序列化程序的原因是我需要序列化一些包
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 有没有更好的方法来获取每个项目与谓词匹配的子序列?

    假设我有一个 IEnumerable 例如 2 1 42 0 9 6 5 3 8 我需要获得与谓词匹配的项目的 运行 例如 如果我的谓词是 bool isSmallerThanSix int number 我想得到以下输出 2 1 0 5
  • Dynamics Crm:获取状态代码/状态代码映射的元数据

    在 Dynamics CRM 2011 中 在事件实体上 状态原因 选项集 也称为状态代码 与 状态 选项集 也称为状态代码 相关 例如看这个截图 当我使用 API 检索状态原因选项集时 如下所示 RetrieveAttributeRequ
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐

  • 总结为每组赋予相同的值

    使用代码获取每个物种的平均花瓣长度 group sp lt group by iris iris Species mean plength lt summarise group sp mean iris Petal Length mean
  • Spring MVC Java 配置

    我想从 Spring Web 应用程序设置一个简单的响应主体 我的问题很简单 就是出现网络错误 我的 POM xml 是
  • SQL Server 数据库项目构建期间使用错误的编译器

    我在使用 Visual Studio 2015 编译 SSDT SQL Server 数据库项目时遇到问题 我想在我的数据库项目中使用 C 6 功能 但它似乎不受支持 例如 我在我的数据库项目中添加了下一个类 namespace Datab
  • JSR303 复合注释

    我创建了一个由 Digits 和 Min 组成的复合注释 Digits integer 12 fraction 0 Min value 0 ReportAsSingleViolation Documented Retention Reten
  • 在 AS3 中设置属性是否会阻止时间线补间?

    如果我有一个分配有类的影片剪辑 并且我在代码中更改了该影片剪辑的属性 则该属性似乎无法再在时间轴上进行补间 例如 如果我的类设置 this x 100 并且稍后在时间轴上补间对象的位置 则不会发生该时间轴补间 更改scaleX或scaleY
  • 将 DateTime 分组为 5、15、30 和 60 分钟间隔

    我尝试将一些记录分组为 5 分钟 15 分钟 30 分钟和 60 分钟间隔 SELECT AVG value as AvgValue sample date 5 60 as TimeFive FROM DATA WHERE id 123 A
  • ConfBridge:当管理员用户退出时结束会议

    这几天我在做一些关于ConfBridge的事情 当管理员用户退出时 我使用 confbridge kick all 结束会议 但会议中的其他人会听到 您已被踢出此会议 这不是结束会议的好方法 是否有任何配置或命令可以设置会议在管理员用户退出
  • javascript 中有没有一种好方法可以从 javascript 对象(而不是数组)中删除 Falsy 值?

    在 JavaScript 中 您可以使用很好的 filter 方法从数组中删除 null 或 false 值 到目前为止 我还没有找到从 JavaScript 对象中删除相同内容的方法 为什么会这样呢 目前 您可以为数组创建一个函数 例如
  • 管理 FCM 设备组

    我试图弄清楚如何使用 REST API 从应用程序服务器管理 FCM 设备组 AFAIK 这些是更新的文档 https firebase google com docs cloud messaging android device grou
  • jQuery:如何创建元素然后将其包装在另一个现有元素周围?

    所以我知道如何使用 wrap wrapInner and wrapAll但我想知道如何将 jQuery 1 4 中引入的快速创建语法和包装函数一起使用 基本上我希望能够使用 var targetUl this would be popula
  • 阻止谷歌翻译翻译日期选择器

    http jsfiddle net tkRaQ 51 这里的 addClass datepicker datepicker addClass notranslate 没有修复它 谷歌翻译停止工作日期的选择 由于某种原因 其他代码修复了它 f
  • 没有窗口的 Windows 应用程序中的窗口消息

    我有一个应用程序想要在后台运行 没有可见的窗口或控制台 为了实现这一点 我创建了一个 Windows 应用程序 但不创建窗口 当请求关闭时 即当用户注销时 应用程序需要进行一些清理 如何确定何时关闭 我可以简单地创建一个处理 WM CLOS
  • JS,数组矩阵和forEach行为的区别

    我正在为我的 JS 课程做一些培训任务 我得到一个必须实现一个函数的函数 该函数接受正整数 n 并返回如下所示的矩阵 已传递 5 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 我能够使用
  • 为 Fortran 数组操作指定冒号

    Fortran 允许更轻松地使用数组操作 例如 double precision a 3 3 b 3 3 c 3 3 Given a and b已初始化 我知道一个简单的c a b将导致矩阵加法 使用同样可以实现c a b 我知道第二种方法
  • 前端 Ajax 和 WordPress - 数据库未更新

    所以我正在开发一个 WordPress 网站 我在获取用户输入来更新数据库方面遇到了一些困难 JS var ID this attr id var name name input ID val var createDate created
  • 如何显示进度条?

    我创建了一个隐写术 隐藏位图中的文本 应用程序 我想添加一个进度条来显示该过程的运行时间 procedure TForm1 Button2Click Sender TObject var x y i currentBit bitInChar
  • Scala.Option 的 Spring RequestParam 格式化程序

    我们在 Scala 应用程序中使用 Spring MVC 我想弄清楚如何打开 ScalaOption这样它们就可以使用正确转换 RequestParam 我认为解决方案可能与格式化程序 SPI 但我不确定如何让它很好地工作Option可以包
  • 向 CSV 文件添加一行 - 类型错误:必须是 str,而不是 tuple

    尝试以以下格式向我的 CSV 文件添加一行 名称 值 这是 CSV 文件 Japanese Yen 169 948 US Dollar 1 67 Pound Sterling 1 Euro 5 5 以下是负责向 CSV 文件添加行的代码部分
  • jQuery 在 Firefox 中不工作

    jQuery 在 Firefox 中不工作 它在 IE 和 Google Chrome 中工作正常 但是当我尝试在 Mozilla Firefox 中运行我的应用程序时 jQuery 无法工作 有什么猜测吗 这是我的代码
  • 转发声明一个标准容器?

    是否可以在头文件中转发声明标准容器 例如 采用以下代码 include