草庐IT

c++ - "if constexpr"在模板之外有用吗?

我试图完全理解ifconstexpr。我明白,如果ifconstexpr(expr)在模板中使用,并且expr依赖于模板参数,那么在实例化期间,只有一个then/else分支会被实例化,其他的会被丢弃。我有两个问题:如果expr不依赖于模板参数,那么ifconstexpr(expr)的分支不会被丢弃,这是真的吗?如果是,标准在哪里这样说?我看不出标准在哪里有异常(exception),只有当expr依赖时才会发生丢弃。ifconstexpr在模板之外有用吗?如果是,这有哪些用例?你能举一些例子来理解它的用处吗? 最佳答案 Isitt

c++ - 临时生命周期延长在现代 C++ 中何时有用?

在C++中,您可以将函数的返回值(返回值,而不是引用)绑定(bind)到const引用,代码仍然有效,因为这个临时对象的生命周期将延长到作用域结束。例如std::stringget_string(){return"abc";}voidf(){conststd::string&str=get_string();std::cout我的问题是,它什么时候有用,例如什么时候的代码像Aget_a();constA&a=get_a();比代码更好Aget_a();Aa=get_a();以何种方式(例如更快、更小的二进制大小等)?A、get_a以及调用get_a后的代码应该如何实现?我已经手动测试了

c++ - 是否有用于 double 平方根倒数的快速 C 或 C++ 标准库函数?

我发现自己在打字doublefoo=1.0/sqrt(...);很多,我听说现代处理器有内置的平方根倒数操作码。是否有C或C++标准库的平方根倒数函数使用doublefloat?与1.0/sqrt(...)一样准确吗?与1.0/sqrt(...)的结果一样快还是更快? 最佳答案 没有。不,没有。不在C++中。不。 关于c++-是否有用于double平方根倒数的快速C或C++标准库函数?,我们在StackOverflow上找到一个类似的问题: https://s

java - 是否有用于检查字符串参数模式的android注释?

问题我正在使用Android和Kotlin,我想要一个注释来检查常量String参数(函数或构造函数)是否与特定模式(正则表达式)匹配。我读到了PatternAnnotation,但不确定它是否适用于我的问题以及它是否适用于Android。所以当我有这样的代码时funfoo(@MatchesPattern("a*b")bar:String)=println(bar)然后foo("aaaab")应该可以编译,但是foo("bb")不应该。这可能吗,最好没有任何第三方库?如果是,我将如何实现这样的注释?(对不起,我不熟悉编写自己的自定义注释)背景我想传递带有连字符分隔音节的单词作为参数,但

java - 是否有用于检查字符串参数模式的android注释?

问题我正在使用Android和Kotlin,我想要一个注释来检查常量String参数(函数或构造函数)是否与特定模式(正则表达式)匹配。我读到了PatternAnnotation,但不确定它是否适用于我的问题以及它是否适用于Android。所以当我有这样的代码时funfoo(@MatchesPattern("a*b")bar:String)=println(bar)然后foo("aaaab")应该可以编译,但是foo("bb")不应该。这可能吗,最好没有任何第三方库?如果是,我将如何实现这样的注释?(对不起,我不熟悉编写自己的自定义注释)背景我想传递带有连字符分隔音节的单词作为参数,但

c++ - RAII 的有用性无一异常(exception)

我最近在c++中发现了RAII,大多数RAII的例子都在谈论异常安全。如何在抛出异常时始终释放资源。我的问题是,如果您没有打开异常,RAII是否值得。在我们公司,我们从事arm的嵌入式项目,默认情况下异常是关闭的,我们认为没有任何必要。谢谢大家的回答! 最佳答案 有异常(exception)的RAII基本上是一项要求。无异常(exception)的RAII意味着您可以将资源分配与代码结合起来以处置资源。这让您拥有具有多个导出点的函数,简化了析构函数的编写(RAII繁重环境中的析构函数通常为空或默认),可以简化对象分配和移动(再一次,

c++ - GCC优化技巧,真的有用吗?

在看一些关于优化的问题时,这个acceptedanswer关于最有效地使用优化器的编码实践的问题激起了我的好奇心。断言是局部变量应该用于函数中的计算,而不是输出参数。有人建议这将允许编译器进行额外的优化,否则是不可能的。因此,为示例Foo类编写一些简单的代码并使用g++v4.4和-O2编译代码片段给出了一些汇编程序输出(使用-S)。汇编程序的部分仅包含如下所示的循环部分。在检查输出时,两者的循环似乎几乎相同,只是一个地址不同。该地址是指向第一个示例的输出参数或第二个示例的局部变量的指针。使用或不使用局部变量在实际效果上似乎没有变化。所以问题分为3个部分:a)GCC没有做额外的优化,即使

c++ - C++1z 中 std::make_unique 和 std::make_shared 的有用性

在C++17中,我们可以对类模板进行模板类型推导。所以很多make函数可能会过时。make_unique和make_shared怎么样?所以我们可以这样写unique_ptrmyPtr(newMyType());//vsautomyPtr=make_unique();那么我们可以忘记那些功能吗? 最佳答案 unique_ptr和shared_ptr都不能在没有明确提供类型的情况下构造,因为无法区分T*和T[]。编写unique_ptr{newint}格式错误。此外,std::make_shared不仅仅为您构造一个std::shar

c++ - 是否有用于编写 docx 文件的开发工具包/库(用 C 或 C++ 编写)?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有用于编写docx文件的开发工具包/库(用C或C++编写)?Microsoft有一个开发工具包,但它是用C#编写的。

c++ - UML 对描述模板化代码有用吗?

我想知道UML是否有助于描述大量模板化的代码。我知道UML(vector>----vector)中有参数化类的概念,但这不足以描述我们可以与模板建立的复杂duck-typed关系。我总是可以在这些类之间建立关联,但在我看来,这实际上无助于理解它是如何工作的。此外,考虑到例如STL库,算法通常作为函数实现,因此不太适合OOP模型,尽管它们的行为仍然很像在类之间引入关联的对象。那么,画UML图来描述这样的模板化代码有意义吗?如果是这样,哪种图表最有用——在“标准”OOP中,我看到大部分时间都在使用类图,但对于模板化代码,其他类型的图表可能更有用吗?如果UML不太适合,我还能使用什么?