Questions tagged «standards-compliance»

22
什么是C ++中的“->”运算符?
Наэтотвопросестьответына 堆栈溢出нарусском:Чтотакоеоператор “ - >” вС++? 看完后隐藏的功能和C ++ / STL的暗角上comp.lang.c++.moderated,我完全意外的是,下面的代码片断编译并在两个Visual Studio 2008和G ++ 4.4的工作。 这是代码: #include <stdio.h> int main() { int x = 10; while (x --> 0) // x goes to 0 { printf("%d ", x); } } 输出: 9 8 7 6 5 4 3 2 1 0 …

13
在另一个html表单中包含html表单是否有效?
是否具有以下内容是有效的html: <form action="a"> <input.../> <form action="b"> <input.../> <input.../> <input.../> </form> <input.../> </form> 因此,当您提交“ b”时,您只会在内部表单中获得字段。提交“ a”时,您将获得减去“ b”中所有字段的所有字段。 如果不可能,那么针对这种情况有哪些解决方法可用?

18
html元素可以有多个ID吗?
我了解ID在HTML / XHTML页面内必须唯一。 我的问题是,对于给定的元素,我可以为其分配多个ID吗? <div id="nested_element_123 task_123"></div> 我意识到我只需使用一个类就可以轻松解决问题。我只是对以这种方式使用id感到好奇。



3
站点coderbyte上的'gets(stdin)'是怎么回事?
Coderbyte是一个在线编码挑战网站(我在2分钟前找到了它)。 您遇到的第一个C ++挑战有一个您需要修改的C ++框架: #include <iostream> #include <string> using namespace std; int FirstFactorial(int num) { // Code goes here return num; } int main() { // Keep this function call here cout << FirstFactorial(gets(stdin)); return 0; } 如果你稍微熟悉C ++的第一件事*在你的眼睛持久性有机污染物是: int FirstFactorial(int num); cout << FirstFactorial(gets(stdin)); 因此,好的,代码调用gets从C ++ 11开始不推荐使用,而从C ++ 14开始删除,这本身就是不好的。 …

11
main()真的是C ++程序的开始吗?
C ++ Standard的$ 3.6.1 / 1部分内容如下: 程序应包含一个称为main的全局函数,这是程序的指定开始。 现在考虑这段代码, int square(int i) { return i*i; } int user_main() { for ( int i = 0 ; i < 10 ; ++i ) std::cout << square(i) << endl; return 0; } int main_ret= user_main(); int main() { return main_ret; } 此示例代码执行了我打算执行的操作,即在进入main()应该作为程序“开始” 的函数之前,打印从0到9的整数平方。 …

2
什么时候在空实例上调用成员函数会导致未定义的行为?
考虑以下代码: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): void baz() { x = 5; } int x; }; int main() { foo* f = 0; f->bar(); // (a) f->baz(); // (b) } 我们预期(b)会崩溃,因为xnull指针没有对应的成员。实际上,(a)不会崩溃,因为this从未使用过指针。 因为(b)取消引用this指针((*this).x = 5;),并且this为null,所以程序将输入未定义的行为,因为始终将取消引用null视为未定义的行为。 会(a)导致不确定的行为吗?如果两个函数(和x)都是静态的怎么办?


2
constexpr暗示内联吗?
考虑以下内联函数: // Inline specifier version #include<iostream> #include<cstdlib> inline int f(const int x); inline int f(const int x) { return 2*x; } int main(int argc, char* argv[]) { return f(std::atoi(argv[1])); } 和constexpr等效版本: // Constexpr specifier version #include<iostream> #include<cstdlib> constexpr int f(const int x); constexpr int f(const int x) { return 2*x; …

6
从Shell脚本启动Web浏览器的干净方法?
在bash脚本中,我需要启动用户Web浏览器。似乎有很多方法可以做到这一点: $BROWSER xdg-open gnome-open 在GNOME上 www-browser x-www-browser ... 有没有一种比其他方法更标准的方法可以在大多数平台上使用,或者我是否应该使用类似这样的方法: #/usr/bin/env bash if [ -n $BROWSER ]; then $BROWSER 'http://wwww.google.com' elif which xdg-open > /dev/null; then xdg-open 'http://wwww.google.com' elif which gnome-open > /dev/null; then gnome-open 'http://wwww.google.com' # elif bla bla bla... else echo "Could not detect the web browser to use." …

5
RegEx解析或验证Base64数据
是否可以使用RegEx来验证或清除Base64数据?这是一个简单的问题,但是导致这个问题的因素是什么使它变得困难。 我有一个Base64解码器,它不能完全依赖输入数据来遵循RFC规范。因此,我面临的问题是可能未将Base64数据分解为78(我认为是78,我必须仔细检查RFC,因此如果确切的数字有误,请不要给我发声)字符。行,或者行不能以CRLF结尾;因为它可能只有CR或LF,也可能没有。 因此,我很难解析这样格式化的Base64数据。因此,无法可靠地解码以下示例。为了简洁起见,我将仅显示部分MIME标头。 Content-Transfer-Encoding: base64 VGhpcyBpcyBzaW1wbGUgQVNDSUkgQmFzZTY0IGZvciBTdGFja092ZXJmbG93IGV4YW1wbGUu 好的,所以解析没有问题,而正是我们期望的结果。在99%的情况下,使用任何代码至少验证缓冲区中的每个字符都是有效的base64字符,都可以正常工作。但是,下一个示例将一把扳手扔进了锅里。 Content-Transfer-Encoding: base64 http://www.stackoverflow.com VGhpcyBpcyBzaW1wbGUgQVNDSUkgQmFzZTY0IGZvciBTdGFja092ZXJmbG93IGV4YW1wbGUu 这是Base64编码的一种版本,在一些病毒和其他东西中,我已经看到它们试图利用某些邮件阅读器,他们希望不惜一切代价来解析mime,而不是严格按照书本或RFC进行解析。如果可以的话。 我的Base64解码器将第二个示例解码为以下数据流。请记住,原始流是所有ASCII数据! [0x]86DB69FFFC30C2CB5A724A2F7AB7E5A307289951A1A5CC81A5CC81CDA5B5C1B19481054D0D 2524810985CD94D8D08199BDC8814DD1858DAD3DD995C999B1BDDC8195E1B585C1B194B8 任何人都有同时解决两个问题的好方法吗?我不确定是否有可能,除了对数据应用了不同的规则进行两次转换并比较结果之外。但是,如果您采用这种方法,那么您信任哪个输出?看来ASCII启发式技术是最好的解决方案,但实际上,该代码涉及的病毒扫描程序又要复杂多少呢?代码,执行时间和复杂性又会增加多少呢?您将如何训练启发式引擎来了解什么是可接受的Base64,什么不是? 更新: 对于这个问题继续得到的观点,我决定发布一个简单的RegEx,该正则表达式已经在C#应用程序中使用了3年,涉及数十万笔交易。老实说,我最喜欢Gumbo给出的答案,这就是为什么我选择它作为选定答案。但是对于使用C#并寻找一种至少能检测出一个字符串或byte []是否包含有效Base64数据的快速方法的人,我发现以下内容对我来说非常有效。 [^-A-Za-z0-9+/=]|=[^=]|={3,}$ 是的,这仅适用于STRING的Base64数据,而不是格式正确的RFC1341消息。因此,如果您要处理此类数据,请在尝试使用上述RegEx之前将其考虑在内。如果您出于其他目的(URL,文件名,XML编码等)使用Base16,Base32,Radix或什至Base64,那么强烈建议您阅读Gumbo在其回答中提到的RFC4648,因为您需要保持良好状态在尝试使用此问题/答案集中的建议之前,请了解实现所使用的字符集和终止符。


6
为什么MySQL允许没有聚合功能的“分组”查询?
惊喜-这是MySQL中完全有效的查询: select X, Y from someTable group by X 如果您在Oracle或SQL Server中尝试了此查询,则会收到自然错误消息: Column 'Y' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 那么MySQL如何确定每个X显示哪个Y?它只是选择一个。据我所知,它只是选择找到的第一个Y。理由是,如果Y既不是聚合函数也不在group by子句中,则在查询中指定“选择Y”是没有道理的。因此,作为数据库引擎的我将返回我想要的任何东西,而您会喜欢它。 甚至还有一个MySQL配置参数来关闭这种“松散性”。 http://dev.mysql.com/doc/refman/5.7/zh-CN/sql-mode.html#sqlmode_only_full_group_by 这篇文章甚至提到MySQL在这方面被批评为不符合ANSI-SQL。 http://www.oreillynet.com/databases/blog/2007/05/debunking_group_by_myths.html 我的问题是: 为什么MySQL以这种方式设计?他们打破ANSI-SQL的理由是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.