在此过程中,我发现使用iframe是一种“糟糕的做法”。

这是真的吗?使用它们的利与弊是什么?

在Java中有命名枚举的约定吗?

我的偏好是枚举是一种类型。例如,你有一个枚举

Fruit{Apple,Orange,Banana,Pear, ... }

NetworkConnectionType{LAN,Data_3g,Data_4g, ... }

我反对将其命名为:

FruitEnum
NetworkConnectionTypeEnum

我知道这很容易挑选出哪些文件是枚举,但你也会有:

NetworkConnectionClass
FruitClass

此外,是否有一个好的文档描述相同的常量,在哪里声明它们,等等?

对于许多问题,答案似乎在“标准”中找到。然而,我们在哪里找到它呢?最好是网上。

谷歌有时会让人觉得毫无意义,尤其是对于C标准,因为它们淹没在编程论坛上的讨论洪流中。

首先,因为这些是我现在正在搜索的,哪里有好的在线资源:

C89 C99 C11 C + + 98 c++ 03 c++ 11 c++ 14 c++ 17

在过去的几年里,我不怎么使用C。当我今天读这个问题时,我遇到了一些我不熟悉的C语法。

显然,在C99中,以下语法是有效的:

void foo(int n) {
    int values[n]; //Declare a variable length array
}

这似乎是一个非常有用的功能。是否曾经讨论过将它添加到c++标准中,如果有,为什么省略了它?

一些潜在的原因:

编译器供应商难以实现 与标准的其他部分不兼容 功能可以用其他c++构造来模拟

c++标准规定数组大小必须是常量表达式(8.3.4.1)。

是的,当然我意识到在这个玩具示例中可以使用std::vector<int> values(m);,但这是从堆中分配内存而不是堆栈。如果我想要一个多维数组,比如:

void foo(int x, int y, int z) {
    int values[x][y][z]; // Declare a variable length array
}

矢量版本变得相当笨拙:

void foo(int x, int y, int z) {
    vector< vector< vector<int> > > values( /* Really painful expression here. */);
}

片、行和列也可能分布在整个内存中。

看看comp. stdc++上的讨论,很明显这个问题很有争议,争论双方都有一些重量级人物。当然,std::vector并不总是更好的解决方案。

我正在设计一个数据库表,问自己这个问题:名字字段应该多长?

谁有最常见的字段(如名字、姓氏和电子邮件地址)的合理长度的列表?

c++ 17现在特性已经完成,所以不太可能有大的变化。c++ 17提出了数百个建议。

在c++ 17中,哪些特性被添加到了c++中?

当使用支持“c++ 1z”的c++编译器时,当编译器更新到c++ 17时,哪些特性将可用?

在c++中,通常使用某种前缀来命名成员变量,以表示它们是成员变量,而不是局部变量或参数。如果你有MFC背景,你可能会使用m_foo。我偶尔也会看到myFoo。

c#(或者只是。net)似乎建议只使用下划线,就像在_foo中一样。c++标准允许这样做吗?