标签: standards

为什么strlen()返回64位整数?我错过了什么吗?

编译64位应用程序时,为什么strlen()返回64位整数?我错过了什么吗?

我理解strlen()返回一个size_t类型,根据定义,这不应该改变,但是......为什么strlen 需要返回一个64位整数?

该函数旨在与字符​​串一起使用.照这样说:

程序员通常会创建数千兆字节或多字节的字符串吗?如果他们这样做了,他们是否需要更好的方法来确定字符串长度而不是搜索NULL字符?

我认为这很荒谬,事实上,我们可能需要一个带回调的StrLenAsync()函数来处理在40TB字符串中搜索NULL的超长进程.听起来很愚蠢?是的,strlen()返回一个64位整数!

当然,提出的StrLenAsync()函数是一个笑话.

c++ 64-bit standards

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

将没有定义的静态const int的地址传递给模板是合法的C++吗?

我无法确定这些代码是否应该编译,或者我只是尝试了两个编译器都有错误(GCC 4.2和Sun Studio 12).通常,如果您在头文件中声明了静态类成员,则需要在某个源文件中定义它.但是,静态常量积分的标准中存在例外.例如,允许这样做:

#include <iostream>

struct A {
    static const int x = 42;
};
Run Code Online (Sandbox Code Playgroud)

无需在类体外部添加x的定义.我正在尝试做同样的事情,但我也取x的地址并将其传递给模板.这导致链接器错误抱怨缺乏定义.下面的例子没有链接(缺少A :: x的定义),即使它们都在同一个源文件中:

#include <iostream>

template<const int* y>
struct B {
    static void foo() { std::cout << "y: " << y << std::endl; }
};

struct A {
    static const int x = 42;
    typedef B<&x> fooness;
};

int main()
{
    std::cout << A::x << std::endl;
    A::fooness::foo();
}
Run Code Online (Sandbox Code Playgroud)

这是奇怪的,因为只要我不将地址传递给模板,它就可以工作.这是一个错误还是某种技术上符合标准的?

编辑:我应该指出&A :: x 不是运行时值.在编译时为逻辑分配的变量留出内存.

c++ standards static templates const

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

这是有效的C++吗?

struct SomeStruct
{
  int a; 
  int b;
};

SomeStruct someFn( int init )
{
  SomeStruct ret = { init, init };
  //...
  return ret;
}

void someFn2( SomeStruct* pStruct )
{
  // ..
}

int main( )
{
  someFn2( &someFn(32) );
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction standards

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

C++标准在哪里定义float类型的值范围?

据我所知,浮点值的形式为n*2 ^ e,其中

  • 浮点范围为n = - (2 ^ 23-1) - (2 ^ 23-1),e = -126 - 127,
  • 双范围是n = - (2 ^ 52-1) - (2 ^ 52-1),并且e = -1022-1023

我正在查看C++标准,但未能找到标准指定的位置,或者要求float,double和long double类型与其他(IEEE)标准中定义的范围相关联.我在3.9.1.8中找到的唯一相关内容是:

有三种浮点类型:float,double和long double.double类型提供至少与float一样多的精度,long double类型提供至少与double一样多的精度.float类型的值集是double类型的值集的子集; double类型的值集是long double类型的值集的子集.浮点类型的值表示是实现定义的.

并没有提到该类型提供的最小范围.

标准在何处/如何指定浮点类型的(最小?)值范围?或者编译器可以自由选择任何值范围并且仍然符合标准吗?

c++ floating-point double standards range

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

公共图书馆的char或std :: string数组?

我的问题很简单:
我应该使用char数组,例如:

char *buf, buf2[MAX_STRING_LENGTH]  
Run Code Online (Sandbox Code Playgroud)

等或者我应该在一个库中使用std :: string,这些库将被其他程序员使用,他们可以在他们选择的任何SO和编译器上使用它吗?

考虑性能和便携性......

从我的角度来看,std字符串更容易,性能相同或差别太小,不能使用std:string,关于可移植性,我不知道.我想因为它是标准的,所以不应该有任何编译器在没有它的情况下编译C++,至少是任何重要的编译器.

编辑:
该库将在3个主要操作系统上编译,理论上,作为库分发

你的意见?

蒂,

c++ compiler-construction string standards char

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

linux管道输出两个inpdendent文件

如何在两个inpdendent文件中管道linux管道的标准输出?

我使用一个名为openRTSP的工具,它在两个独立的文件中标准输出,即openRTSP>/tmp/file1>/tmp/file2

linux standards pipe

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

基本类型

我一直认为以下类型是"基本类型",所以我认为我对这个问题的回答是正确的,但令人惊讶的是它被推翻了......

搜索网络,我发现了这一点.所以,IBM也说这些类型是基本类型..

那么你如何解读标准? 以下类型(和类似类型),"基本类型"是否符合C++标准?

unsigned int
signed char
long double
short int
unsigned short int
Run Code Online (Sandbox Code Playgroud)

编辑:
再次与这个问题相关:Comceau和gcc不要将"long double","short int"或"unsigned int"等类型视为"基本类型"!(而ibm,intel和microsoft编译器都这样做.)如果他们确实将这些类型视为基本类型,则应编译以下代码:short int i = short int()

编辑:
删除long long类型,因为我忘了他们还没有正式标准..

c++ standards types

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

HTML选择和文本输入

我们已经看到无数的表单实例,其中选择下拉列表中的一个选项为"其他",并且在选择该选项时,我们可以看到输入文本框(一直隐藏),要求我们输入输入.

有没有更好的方法来实现这个?那里有插件可以让我做得更好吗?或者标准HTML元素是否足够(某些设置为select标签,可能是)?

html javascript standards select input

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

边缘CSS属性

你们如何处理边缘CSS?通过边缘,我的意思是需要斜体或粗体的单个词或短语.用刚才宣布'大胆'的课程似乎很愚蠢

Bold { font-weight: bold; }
Run Code Online (Sandbox Code Playgroud)

或斜体,或者!

Italic { font-style: italics; }
Run Code Online (Sandbox Code Playgroud)

但我发现自己犹豫是否将这样的课程放入我的css重置中.

<p>
    <span class="Italic">This</span> man? 
    <span class="Bold">What</span> are you thinking?
</p>
Run Code Online (Sandbox Code Playgroud)

显然,如果你要结合一堆属性来使某些东西看起来不同,那就有意义......

.HoverOnMe
{
    color: #880;
    text-decoration: underline;
    font-style: italic;
}
Run Code Online (Sandbox Code Playgroud)

但我将上述css风格归类为"非边缘".

我们被教导说元素喜欢<b><i>不好因为它们混合了结构和风格,因此我们不应该使用它们.那么处理'边缘css'的正确方法是什么?

html css standards

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

Web标准 - 页面大小

我想知道是否有关于网页文件大小的网络标准,考虑到用户具有平均互联网连接,页面上的总资产重量应该多少.

谢谢

html performance standards

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