小编Abh*_*and的帖子

所有子类的c ++模板特化

我需要创建一个这样的模板函数:

template<typename T>
void foo(T a)
{
   if (T is a subclass of class Bar)
      do this
   else
      do something else
}
Run Code Online (Sandbox Code Playgroud)

我也可以想象使用模板特化来做它...但我从未见过超类的所有子类的模板特化.我不想为每个子类重复专门化代码

c++ templates template-specialization

9
推荐指数
2
解决办法
4697
查看次数

使用boost :: enable_shared_from_this时出现不完整的类型错误

在以下行

class Symbol : public boost::enable_shared_from_this<Symbol> {

我收到错误:

错误:无效使用不完整类型struct boost::enable_shared_from_this<Symbol> /usr/include/boost/smart_ptr/shared_ptr.hpp:63:错误:声明struct boost::enable_shared_from_this<Symbol>

知道为什么我会收到这个错误.符号是一个抽象类(如果重要的话)

c++ shared-ptr

9
推荐指数
1
解决办法
3343
查看次数

使用后停用变量

是否有一些注释可以让我告诉java编译器在注释后不应该使用变量?由于现代IDE的自动填充和复制粘贴功能,通过错误输入变量名称来引入错误太容易了.这样的注释将有助于在编译时检测这些错误中的某些错误(如果使用netbeans/eclipse等智能IDE,则会在打字时检测到).举个例子,我有以下字符串处理管道:

String input = ....
String pass1 = op1 (input);
...
String pass2 = op2 (pass1);
...
String pass3 = op3 (pass1); // typo: pass1 should be pass2
...
return pass3;
Run Code Online (Sandbox Code Playgroud)

如果我可以disable pass1op2调用的行之后说出一些内容,那么调用的行中的拼写错误op3将被检测为pass1超出范围作为假设disable注释的结果.

java encapsulation

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

C++ stl 容器的重载 &lt;&lt; 运算符

我希望我可以使用 cout << 打印集合/矢量/地图的内容。对于 stl 设计者来说,实现起来似乎并不困难:假设 << 是为 T 定义的,容器的 << 可以迭代元素并使用 ofstream << 打印它们。

有没有一种我不知道的简单方法可以打印它们?

如果没有,有简单的解决方案吗?我在一些地方读到扩展 stl 类是一个坏主意。是这样吗,为什么?

定义一个重载打印函数之类的东西怎么样?编辑:我正在寻找一个递归函数,它可以处理容器的容器......我同意不同的人会喜欢不同的格式,但可重写的东西总比没有好

c++ stl ofstream

4
推荐指数
1
解决办法
2840
查看次数

==为std :: map定义的运算符

std::map在refernce http://www.cplusplus.com/reference/stl/map/ 没有提到任何==oprerator.但我的代码包含m1==m2编译(其中m1和m2是类型map<,>).什么是==对地图做什么?我在看过时的参考吗?

c++ map

2
推荐指数
1
解决办法
172
查看次数

需要一个带有O(1)擦除的std :: vector

我很惊讶在调用erase时发现了vector :: erase移动元素.我认为它会将最后一个元素与"待删除"元素交换,并将大小减小一个.我的第一反应是:"让我们扩展std :: vector并覆盖erase()".但是我在很多线程中发现了" 从C++ STL容器中获取真的风险吗? ",它会导致内存泄漏.但是,我没有向vector添加任何新的数据成员.因此没有额外的内存可以释放.还有风险吗?

有些人认为我们应该更喜欢构成而不是继承.在这种情况下,我无法理解这个建议.为什么我要浪费我的时间在"机械"任务中包装其他精彩的std :: vector类的每个函数.继承确实对这项任务最有意义 - 或者我错过了什么?

c++ inheritance memory-leaks composition stdvector

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