小编xis*_*xis的帖子

将枚举转换为int

我在这段代码上遇到了问题:

template <typename T>
void dosth(T& value,const T& default_value)
{
   if (condition)
       value = 10;
   else
       value = default_value;
}
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

enum {
    SITUATION1,
    STIUATION2
};

int k;
dosth(k,SITUATION1);
Run Code Online (Sandbox Code Playgroud)

编译器(g ++ 4.5)说

没有匹配函数来调用'dosth(int&,)'

为什么编译器不会自动将枚举转换为int?

c++ enums templates casting

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

为什么valarray在C++ 03中没有像vector这样的交换函数?

作为标题,我对此感到困惑.swap如果我们面临一个迭代问题,应该非常有用.可以通过交换指针到内存而不是内容来交换旧向量和新向量.但是,这是有效std::vector但不在std::valarray.我想知道为什么.在C++ 0x中似乎添加了该函数,但为什么不在C++ 03中添加?

c++

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

如何将redis模块安装到AWS elasticache?

基本上,我们知道AWS中的ElastiCache正在使用MemCached或Redis.我们选择了Redis,发现了一个对我们有用的模块.有没有办法可以将模块安装到我们的ElastiCache实例中?

amazon-web-services redis

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

为类成员函数设置断点不成功

我有一个类看起来像这样:

namespace madoka
{
class polarizable_sites
{
public:
void resize(const size_t dim_);
void clear(void);
};
}
Run Code Online (Sandbox Code Playgroud)

在gdb中,我可以设置明确的断点

b 'madoka::polarizable_sites::clear()'
Run Code Online (Sandbox Code Playgroud)

但是,对于成员函数调整大小,a

b 'madoka::polarizable_sites::resize(const size_t)'
Run Code Online (Sandbox Code Playgroud)

不起作用.GDB报告错误:

类madoka :: polarizable_sites没有任何名为resize的方法(const size_t)提示:尝试'madoka :: polarizable_sites :: resize(const size_t)'或'madoka :: polarizable_sites :: resize(const size_t)'(注意引导单引号.)

我想知道为什么因为功能样式是由TAB自动完成的.

顺便说一句:我正在使用GDB

GNU gdb(Ubuntu/Linaro 7.2-1ubuntu11)7.2版权所有(C)2010 Free Software Foundation,Inc.

用编译器'

g ++(Ubuntu/Linaro 4.5.2-8ubuntu4)4.5.2版权所有(C)2010 Free Software Foundation,Inc.

c++ gdb

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

mov%rax,%rax的目的是什么?

我目前正在通过拆解一些C代码来学习ASM.我感兴趣的是gcc编译器生成这样的代码

movq %rax,%rax
Run Code Online (Sandbox Code Playgroud)

这显然毫无意义.那么这样做的目的是什么?

我想知道它是否用于浪费几个CPU周期以改善管道?

谢谢你的暗示!

assembly gcc

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

使用CMake检测BLAS/LAPACK供应商

所以我的代码想要在不同的BLAS/LAPACK供应商发生时包含不同的头文件.是否有任何预定义的宏或类似的东西让我检查它?

cmake blas lapack

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

如何使Ruby捕获线程中的语法错误

我正在尝试使用ruby编写一个双线程客户端,一个线程从套接字读取数据并将其打印出来,另一个线程读取本地数据并将其发送到远程服务器.我发现的问题是看起来Ruby无法捕获线程中的错误,这是一个例子:

#! /usr/bin/ruby

Thread.new {
  loop {
    $stdout.puts "hi"
    abc.puts ef
    sleep 1
  }
}


loop {
  sleep 1
}
Run Code Online (Sandbox Code Playgroud)

显然,如果我键入abc.puts ef代码,那么在线程之外将永远不会运行,因为Ruby将报告"未定义变量abc".但是,如果它在一个线程内,则没有错误报告.我的问题是,如何让Ruby捕获这样的错误?或者至少,在一个帖子中报告错误?

ruby multithreading

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

Python语法中的Python字符串

使用'str in str in str'语法看一段代码很奇怪,例如:

>>> 'test' in 'testtest' in 'testtesttest'
True
>>> 'test' in 'testtest' in 'tb3'
False
>>> 'test' in 'testtesta' in 'testtesttest'
False
>>> 'test' in ('testtest' in 'testtesttest')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    'test' in ('testtest' in 'testtesttest')
TypeError: argument of type 'bool' is not iterable
Run Code Online (Sandbox Code Playgroud)

似乎'in ... in ...'类似于'<... <...'比较.但是一个快速的谷歌没有引导我到官方的答案.有帮助吗?

python

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

在typedef中警告const

当我使用icc 11编译C++程序时,它发出了这样的警告:

警告#21:类型限定符在此声明中没有意义
typedef const direction_vector_ref_t direction_vector_cref_t;

它说的const毫无意义.我很好奇这个,因为如果这typedef扩大它将变成const array<double,3>&,这const绝对是有意义的.为什么会发出这个警告?

c++ warnings typedef const

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

只检查要被证明的字符串的语法,而不是在Ruby中评估

正如标题所提到的,我需要让用户输入一些Ruby脚本代码,我的脚本将存储它们以供以后调用.如何在不实际评估的情况下检查用户输入语法?

ruby string eval

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