string-literals相关内容

如何用type_traits检测字符串文字?

如何在不是字符串文字的地方可靠地static_assert? 例如,在下面的代码中,我试图包装标准assert宏,但静态拒绝不是字符串字面量的消息的任何东西(因为除非是字符串字面量,在assert触发器时不会在运行时显示)。 #include #include #include #define my_a ..
发布时间:2016-10-27 04:50:51 C/C++开发

检查等号字符串字面值是否存储在同一地址

我正在开发一个使用无序容器的(C ++)库。这些都需要哈希(通常是模板结构的特殊化) std :: hash ),它们存储的元素的类型。在我的例子中,这些元素是封装字符串文字的类,类似于 conststr cpp / language / constexpr“rel =”nofollow“>此页面底部。 STL提供了对常量字符指针的专门化,然而,它只计算指针,如这里所述,在“备注”部分中: ..
发布时间:2016-10-26 22:33:58 C/C++开发

冲突:在C ++标准和Windows实现中wchar_t字符串的定义?

从c ++ 2003 2.13 一个宽字符串文字具有类型“ n const wchar_t “,并且有静态存储持续时间,其中n是下面定义的字符串的大小。 宽字符串文字的大小是转义序列的数目,通用字符名称和其他字符,加上一个用于终止L'\0'。 从c ++ 0x 2.14.5 一个宽字符串文字具有类型“ n const wchar_t 的数组”,其中n是下面定义的字符串 ..
发布时间:2016-10-23 23:10:51 C/C++开发

char *和int *

char * 和 int * 之间有什么区别?当然,他们是不同的类型,但我怎么能写 char * s1 =“hello world” 为 “hello world” 它不是一个字符,我不能写 * s1 作为 char * s1 = {'h','e' ,'l','o','','w','o','r','l','d' ..
发布时间:2016-10-23 14:19:17 C/C++开发

如何安全可靠的C ++字符串字面量?

所以,我想要更好地了解C ++中的字符串字面量如何工作。我主要关心的情况下,你将一个字符串字面量的地址分配给指针,并传递它。例如: char * advice =“不要把手放在烤面包机里。 现在让我们说,我只是通过复制指针在程序的持续时间传递这个字符串。当然,这可能不是一个好主意,但我很好奇在幕后将会发生什么。 另一个例子,假设我们创建一个返回字符串字面量的函 ..
发布时间:2016-10-23 12:19:42 C/C++开发

是“坏做法”在字符串文字中使用制表符字符?

作为的后续工作它强制要逃避在C和C ++中的制表符字符?(请注意,我不是所述问题的作者)。 我学到了这样的代码被认为是“不良做法”。这些评论似乎暗示着同样的事情。但是,由于某种原因,标准允许这个骗子,所以有人必须发现没有伤害或有一个用例。 不逃避的制表符字符被广泛接受“”\t“使用tab选项卡而不是转义它们('\t ',“\t”)是一种不好的做法,因为: 有一个标签。结果:错误的 ..
发布时间:2016-10-20 22:42:45 C/C++开发

当存在修饰符(L,u8等)时,使用相邻字符串字面串联会发生什么

它在C和C ++中有效,因为预处理器或编译器将 连接到相邻的字符串文字。 const char * zStr =“a”“b”; // valid 当字符串文字以 L (宽字符), u (UTF-16), U code> u8 (UTF-8)和原始字符串文字( R“foo(这是一个带双引号的”原始字符串文字“)foo” code>)? 例如,以下是允许的: ..
发布时间:2016-10-20 09:29:16 C/C++开发

原始字符串文字和文件编码

C ++ 11推出了原始字符串字面值,可以非常有用的代表引用的字符串,有许多特殊符号的文字如Windows文件路径,regex表达式等... std :: string path = R“(C:\teamwork\\\ ew_project\project1)”; //没有标签也不换行! std :: string quoted = R“(”quoted string“)”; st ..
发布时间:2016-10-20 08:45:19 C/C++开发

在C ++ 11的原始字符串文字R“(...)”中括号的原理是什么?

在C ++ 11中引入了一个非常方便的功能,称为原始字符串字面值,它是没有转义字符的字符串。而不是这样写: regex掩码(“\\t [0-9] + \\。 [0-9] + \\t\\\\SUB“); 您可以这样写: regex mask(R“(\t [0-9] + \。[0-9] + \t\\SUB)”); 更易读。但是,请注意字符串周围的额 ..
发布时间:2016-10-17 09:53:00 C/C++开发

C ++字符串字面量比较

我是一个c ++新手(只是oldschool c)。我的儿子要求帮助这个,我无法解释。如果他问我“如何比较字符串”,我会告诉他使用strcmp(),但这不是让我困惑。这是他问的: int main() { cout ..
发布时间:2016-10-16 14:40:45 C/C++开发