小编Dar*_*enW的帖子

令人困惑的gcc抱怨Qt4 setValidator的使用

我们很困惑为什么gcc在我们的应用程序中抱怨这一行:

doubleFrom->setValidator(new QDoubleValidator(doubleFrom));
Run Code Online (Sandbox Code Playgroud)

抱怨这些:

error: expected type-specifier before 'QDoubleValidator'
error: expected `)' before 'QDoubleValidator'
error: no matching function for call to 'QLineEdit::setValidator(int*)'
candidates are: void QLineEdit::setValidator(const QValidator*)
Run Code Online (Sandbox Code Playgroud)

(我已经删除了文件,行号的冗长路径.)

是的,setValidator希望得到一个const QValidator*,这就是我们在这一行源代码中所做的事情.为什么gcc想要过早地看到')',并认为我们正在为setValidator提供一个int*?

当然,"昨天编好了,我们没有改变任何东西.真的!"

c++ gcc compiler-errors qt4

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

在Mac OSX上导出DLL函数的正确方法

我正在尝试在Mac OS X 10.6上编译一个简单的DLL,并且对于声明DLL为全世界提供使用的函数的正确方法感到困惑.以下来自可靠来源的示例代码,我提出:

__declspsec(dllexport) pascal int ReturnTheNumberFive(void)
Run Code Online (Sandbox Code Playgroud)

但gcc barfs就可以了.示例代码实际上是MACPASCAL和DLLExport,我假设是宏.我浏览了#defines的示例代码,SDK等,并插入了我发现的内容.这些定义可能已经埋没在#ifs中,所以我发现并不好.不合逻辑地,如果我只是做明显的并使用DLLExport和MACPASCAL,编译器也会barfs,所以这不是解决方案.

使应用程序可以使用DLL函数的正确方法是什么?

macos dll dllexport

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

SciPy zeta函数返回非常大的值

关于zeta函数状态的SciPy文档:

y = zeta(x,q)返回两个自变量的Riemann zeta函数:sum((k + q)**( - x),k = 0..inf)

根据Riemann zeta函数wiki条目给出x=2, q=0我们应该得到的参数应该给出大约1.645sum((k)**(-2),k=0..inf)

然而,SciPy给出了以下内容

>>> from scipy.special import zeta
>>> zeta(2,0)
1.7976931348623157e+308
Run Code Online (Sandbox Code Playgroud)

我错过了什么或scipy zeta功能坏了吗?

python scipy

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

对长字符串中单词的多个出现次数进行编号

我有一个像这样的字符串:

*******voltage:156.7;****current:44;****voltage:98;current:0.9;***voltage:45;***
Run Code Online (Sandbox Code Playgroud)

其中*是啰嗦的垃圾,我们不关心.我们想要做的是产生一个相同的新字符串,但要找到每个"电压"并用voltage1,voltage2等替换它,这样每个电压读数都有一个唯一的键名.同样适用于当前(和其他几个).

目前尚不清楚Perl中最简单的方法是什么.它必须是适度熟练的Perl程序员和EE可读的.终极速度并不重要,我们希望坚持使用内置的Perl功能,而不是使用一些疯狂的模块.我们这些谦虚熟练的家伙都没有找到一种方法来做到这一点,而不会制造出非繁琐的代码.

使用正则表达式可能有一个很好的方法,但如果它是一个复杂的大师唯一的正则表达式,没关系!

如果解决方案可以在古老的Perl 5.6版本上运行,那么第二个绿色复选标记

string perl substitution

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

是什么导致Python抱怨列表列表没有列表的代码?

在我写的文件中(从实际代码中删除)

e = numpy.zeros(4)
n = e.copy()
n[0]=e[0]
for i in range(len(e)-1)+1:
    n[i] = n[i-1]*e[i] + e[i]
Run Code Online (Sandbox Code Playgroud)

当我运行.py文件时,Python说:

>>> for i in range(len(e)-1)+1:
...     n[i] = n[i-1]
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我"i=1"将实际工作中的一行(或其他值)和一行粘贴到Python提示符中,则没有错误.无论如何,我没有看到任何名单; 它是所有numpy数组.

python numpy typeerror

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

为什么这个函数重载三个整数类型无法编译?

这种为三种大小的整数定义重载函数的尝试失败了.为什么?

byte hack(byte x)
{
   return x+1;
}

unsigned short hack(unsigned short x)
{
   return x+2;
}

unsigned int hack(unsigned int x)
{
   return x+3;
}
Run Code Online (Sandbox Code Playgroud)

编译器告诉我:zzz.cpp:98:错误:重新定义'unsigned int hack(unsigned int)'zzz.cpp:88:错误:'byte hack(byte)'先前在这里定义

c++ overloading compiler-errors

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

为什么严格抱怨所需的其他脚本中的变量?

这是usex.pl:

#use strict;
require 'x.pl';
print $x;
Run Code Online (Sandbox Code Playgroud)

这是x.pl:

#use strict;
our $x = 99;
1;
Run Code Online (Sandbox Code Playgroud)

如图所示,它运行正常.如果我取消注释usex.pl中使用strict的行,我得到

Global symbol "$x" requires explicit package name
Run Code Online (Sandbox Code Playgroud)

在x.pl中使用或不使用strict似乎并不重要(除非我删除'our'关键字,但我对此不感兴趣.)

我是Perl的新手.为什么严格使$ x在主脚本中不可见,这是什么正常的解决方案?

perl perl-module strict require

0
推荐指数
2
解决办法
271
查看次数