小编Cor*_*Xii的帖子

C++是无上下文还是上下文敏感?

我经常听到C++是一种上下文敏感语言的说法.请看以下示例:

a b(c);
Run Code Online (Sandbox Code Playgroud)

这是变量定义还是函数声明?这取决于符号的含义c.如果c变量,则a b(c);定义名为btype 的变量a.它是直接初始化的c.但是如果c是一个类型,则a b(c);声明一个名为a的函数b,c并返回一个a.

如果您查找无上下文语言的定义,它基本上会告诉您所有语法规则必须具有仅由一个非终端符号组成的左侧.另一方面,上下文敏感语法允许左侧的任意字符串的终端和非终端符号.

浏览"C++编程语言"的附录A,除了左侧的单个非终端符号之外,我找不到单个语法规则.这意味着C++是无上下文的.(当然,在无上下文语言形成上下文敏感语言的子集的意义上,每种无上下文语言也都是上下文敏感的,但这不是重点.)

那么,C++是无上下文还是上下文敏感?

c++ syntax grammar context-free-grammar context-sensitive-grammar

394
推荐指数
14
解决办法
6万
查看次数

XPath用于查找包含具有特定值属性的元素的最近祖先元素

ancestor::foo[bar[@attr="val"]]

我认为这会奏效,但事实并非如此.我需要foo在树中找到最近的元素bar,该元素具有子元素,而子元素的attr属性为val.

xpath

27
推荐指数
3
解决办法
7万
查看次数

什么是正则表达式匹配任何东西,除了双引号之前没有反斜杠?

换句话说,我有一个字符串:

"任何东西,逃脱双引号:\",是的,"这里的任何东西都不能匹配.

如何匹配引号内的所有内容?

我在想

^"((?<!\\)[^"]+)"

但我的头脑旋转,应该是积极的还是消极的看法?或者它是否有效?

如何匹配任何字符,除了双引号之外没有反斜杠?

regex

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

使用PHP mysqli获取UPDATE查询匹配的行数

较旧的mysql扩展有CLIENT_FOUND_ROWS连接标志,但我找不到mysqli的任何等价物.

我有一个update查询,想知道它的where子句匹配了多少行,而不是实际更改了多少行(如图所示mysqli -> affected_rows).

到目前为止我唯一想到的方法是用正则表达式解析mysqli -> info(看起来像Rows matched: 40 Changed: 40 Warnings: 0).但这看起来很糟糕.

php mysql mysqli

12
推荐指数
2
解决办法
5604
查看次数

有效的D:最佳实践和设计模式

一个非常有趣的会议是关于D-Specific设计模式的,在D社区中,有些人认为它可能是一关于有效编码技术的的起点.其他人认为现在为时尚早,因为没有多少人有很多经验,这样一本书的作者会对有效性的概念有一些偏见/个人欣赏.SO是一种更具互动性的媒体(有其局限性).因此,等待'Effective D'出来,如果我们可以分享一些(查杀)建议/技术/模式以使D代码看起来更好,那将是很好的.我认为如果答案会更清楚:

  • 揭露一种独特的技术
  • 本质上是一段注释代码
  • (如果它太大)只是代码的链接(公共要点......)

d phobos

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

输入光标颜色

如何在输入某个值时更改HTML输入类型文本中的内容颜色.还有焦点时的光标颜色.

html css colors cursor

11
推荐指数
2
解决办法
3万
查看次数

具有C或D的浮点语义的整数类型

我正在寻找CD的现有实现,或者实现具有浮点语义的实现,有符号和/或无符号整数类型的建议.

也就是说,这表现为浮点类型整型运算做什么时候:溢出产生无穷大(-infinity的签署下溢),而不是缠绕或具有不确定的行为,不确定的操作产生的NaN

本质上是一个浮点版本,其中可呈现数字的分布均匀地落在数字线上,而不是在0附近聚合.

此外,所有操作都应该是确定性的 ; 任何给定的二进制补码32位架构应该为相同的计算产生完全相同的结果,无论其实现如何(而浮点可能,并且通常会产生稍微不同的结果).

最后,性能是一个问题,让我担心潜在的"bignum"(任意精度)解决方案.

另请参见:定点饱和算术.

c floating-point int d fixed-point

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

网格算法拼图

我有一个宽度和高度的网格,其中每个单元格可以有三个可能的值(在此图中显示为白色,绿色和红色):

插图http://corexii.com/grid-algorithm-problem-2.png

您可以选择任意数量的绿色单元格(下图中标记为蓝色),其中覆盖所选单元格周围预定方形半径(此处为2)的所有红色单元格(标记为黄色):

插图http://corexii.com/grid-algorithm-problem-3.png

目标是:

  • 覆盖尽可能多的红细胞
  • 使用尽可能少的蓝色细胞
  • 尽可能快地做到

任何人对算法都有任何想法?

我正在研究很多理论,但我最感兴趣的是近似快速而非准确地做到这一点.快速,合理的结果比整天计算最佳结果更可取.

(上面的插图可能会显示这些单元格的最正态分布,但不应假设它们类似于所有可能的分布.)

algorithm geometry

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

检测整数溢出

如何检测D中的整数溢出?(检查携带标志?)

原始示例:

ubyte a = 100;
ubyte b = 200;
ubyte c = a + b;
// c can't represent 300; how to detect the overflow now?
Run Code Online (Sandbox Code Playgroud)

修改后的例子:

uint a = 2_000_000_000;
uint b = 3_000_000_000;
uint c = a + b;
// c can't represent 5_000_000_000; how to detect the overflow now?
Run Code Online (Sandbox Code Playgroud)

还有乘法和前/后增量.

int d

8
推荐指数
2
解决办法
1259
查看次数

是否可以通过cfmail向包含拉丁语unicode字符的地址发送电子邮件?

我们需要能够将包含cfmail的电子邮件发送到包含a具有急性拉丁语的拉丁语的电子邮件地址.我假设我们最终还必须允许其他Unicode字符 - 示例电子邮件地址是foobár@example.com.ColdFusion在此电子邮件地址上引发错误,这在技术上是有效的.由于急性a是UTF-8字符,并且cfmail的默认编码是UTF-8,我不确定我需要启用哪些其他设置才能使其工作.这可能吗?

我得到的错误是标签CFMAIL的属性验证错误.

详细信息:属性的值(当前为foobár@example.com)无效.

email unicode coldfusion cfmail

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