小编Any*_*orn的帖子

operator <<(stream)去哪个命名空间?

如果我有一些为库本地对象定义的重载ostream运算符,那么它们可以转到std命名空间吗?如果我没有在std命名空间中声明它们,那么我必须使用using ns:: operator <<.

作为一个可能的后续问题,是否有任何运算符应该转到标准或全局命名空间?

c++ namespaces conventions operators

15
推荐指数
3
解决办法
3223
查看次数

C++常量引用生命周期(容器适配器)

我的代码看起来像这样:

class T {};

class container {
 const T &first, T &second;
 container(const T&first, const T & second);
};

class adapter : T {};

container(adapter(), adapter());
Run Code Online (Sandbox Code Playgroud)

我认为不断引用的生命周期将是容器的寿命.但是,否则看起来,在创建容器后销毁适配器对象,留下悬空引用.

什么是正确的寿命?

适配器临时对象的堆栈范围是容器对象或容器构造函数的范围?

如何正确实现绑定临时对象到类成员引用?

谢谢

c++ const reference lifetime

15
推荐指数
2
解决办法
7565
查看次数

C++ typeof运算符

很短的问题.

是C++ typeof运营商标准吗?事实上的标准?哪些编译器没有提供它(除了Microsoft C++)?

c++ typeof

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

ublas矩阵表达教程/示例

我正在尝试实现某些矩阵操作,但我迷失在ublas库的内部.是否有一个资源,如教程或如何实现新的ublas矩阵表达式的例子?

谢谢

c++ boost expression ublas

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

如果是一个适当的功能,而不是一个特殊的形式

我终于开始学习函数式语言(emacs lisp),它明确区分了函数和特殊形式,例如流控制,例如if.

特殊形式与功能有何不同,是否存在基本/理论上的原因?任何语言都提供功能if吗?

谢谢

lisp functional-programming function special-form

14
推荐指数
2
解决办法
835
查看次数

复制后的std :: vector容量

  • vector :: operator =改变向量容量吗?如果是这样,怎么样?
  • vector的复制构造函数是否具有复制能力?

我查看了文档,但找不到具体的答案.它是依赖于实现的吗?

c++ stl vector capacity

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

C++匿名类初始化

是否可以在匿名类中初始化成员变量?

例如

class {
public: int &value;
} container;
Run Code Online (Sandbox Code Playgroud)

c++

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

C++ STL数据结构对齐,算法向量化

有没有办法使用属性((对齐))强制STL容器对齐到特定字节?目标编译器不是Microsoft Visual C++.

哪些库(如果有的话)提供具有特定显式向量化的STL算法的专用模板,例如SSE.我感兴趣的编译器是g ++,Intel和IBM XL.

c++ stl alignment vectorization

13
推荐指数
2
解决办法
3658
查看次数

C++返回类型重载hack

我很无聊,想出了这样的黑客(伪代码):

 1 struct proxy {
 2     operator int(); // int function
 3     operator double(); // double function
 4     proxy(arguments);
 5     arguments &arguments_;
 6 };
 7
 8 proxy function(arguments &args) {
 9     return proxy(args);
10 }
11 int v = function(...);
12 double u = function(...);
Run Code Online (Sandbox Code Playgroud)

在真实的代码中使用它是邪恶的吗?

我可能的使用场景是例如数组元素的产品,可能会/可能不会溢出:

int size(short *array);
short size(short *array);
Run Code Online (Sandbox Code Playgroud)

如果使用模板,则可以从函数参数推断函数的原因,而不是模板参数

c++ overloading function

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

Valgrind和"警告:新的重定向与现有的冲突"

我在Valgrind得到这个.

--24101-- REDIR: 0xbb20580 (operator delete(void*)) redirected to 0x93b7d48 (operator delete(void*))
--24101-- REDIR: 0xbb22580 (operator new[](unsigned long)) redirected to 0x93b88b7 (operator new[](unsigned long))
==24101== WARNING: new redirection conflicts with existing -- ignoring it
--24101--     new: 0x15632010 (__GI_strlen         ) R-> 0x093b96b0 strlen
--24101-- REDIR: 0xbb205c0 (operator delete[](void*)) redirected to 0x93b79c4 (operator delete[](void*))
Run Code Online (Sandbox Code Playgroud)

有什么顾虑吗?

c++ valgrind

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