user-defined-literals相关内容

在 C++ 中方便地声明编译时字符串

能够在 C++ 编译时创建和操作字符串有几个有用的应用.尽管可以在 C++ 中创建编译时字符串,但该过程非常繁琐,因为该字符串需要声明为可变字符序列,例如 using str = sequence; 字符串连接、子字符串提取等操作可以轻松实现为对字符序列的操作.是否可以更方便地声明编译时字符串?如果没有,是否有工作中的提案可以方便地声明编译时字符串? 为什么现有方法失败 理想情况下 ..
发布时间:2021-12-05 15:06:01 C/C++开发

标准预定义了哪些用户定义的文字?

我的问题听起来像是一个矛盾,但是除了 user-defined-literal .我不知道该如何引用新的文字语法. std :: string运算符“" s(const char * str,size_t len){返回std :: string(str,len);}assert("foo" s =="bar" s); 我记得听到用户定义的文字应该以 _ 前缀开头.这意味着该库为我们定义了 ..
发布时间:2021-04-20 18:37:05 C/C++开发

了解C ++ 20的用户定义字符串文字附加

我在用户定义的字符串文字中找到了以下内容: 对于用户定义的字符串文字,令str为不带后缀的文字: a)如果重载集包含带有非类型模板参数的字符串文字运算符模板,且该字符串的str如果是格式良好的模板参数,则将用户定义的文字表达视为函数调用 operator“”。 X(), 这对我来说听起来有点神秘。有人可以举一个例子说明如何使用它吗? 以下内容根本不起作用,我无法 ..
发布时间:2020-09-28 03:07:47 C/C++开发

文字运算符模板:为什么不字符串?

再一次,在回答另一个问题时,我忘记了(我的错)仅当找到整数或浮点文字时,才从声明集中选择文字运算符模板。 例如: template constexpr int运算符“” _x(){ 返回0; } 它可以用作 10_x ,但不能同时用作 foo_x 或“ foo” _x。 除了显而易见的原因是 因为标准说的是 ,在处理字符串文 ..
发布时间:2020-09-27 20:47:32 C/C++开发

何时以及如何使用模板文字运算符?

在 cppreference 上,有人提到可以使用模板用户文字运算符,但有一些限制: 如果文字运算符是模板,则它必须具有一个空参数列表并且可以具有只有一个模板参数,该参数必须是元素类型为 char 的非类型模板参数包,例如 模板双重运算符“” _x(); 所以我在下面的代码中写了一个: 模板 双重运算符“” _x( ..
发布时间:2020-09-27 20:30:09 C/C++开发

在左值上调用用户定义的文字

有什么方法可以在左值上调用用户定义的文字吗? 例如我想 int运算符“” _xor1(int a){返回a ^ 1; } //工作正常 17_xor1; auto myint = get_something_only_availabe_at_runtime(); //是否可以在myint上使用_xor1? _xor1(myint); //不起作用 ..
发布时间:2020-09-27 19:47:55 C/C++开发

为什么std :: string不定义乘法或文字?

在我最初被介绍的语言中,有一个函数repeat(),它接受了一个字符串,并重复了n次.例如,repeat ("hi", 3)给出"hihihi"的结果. 我确实有几次使用此函数,但令我沮丧的是,我从未在C ++中找到类似的东西.是的,我可以轻松制作自己的产品或使其更易于使用,但是令我感到惊讶的是它尚未包含在内. 一个非常合适的地方是std::string: std::string ..
发布时间:2020-05-13 19:20:07 C/C++开发