草庐IT

is_constexpr_copiable

全部标签

c++ - 将代码转换为 constexpr

将代码转换为constexpr的一般技巧是什么?比如说,有一种算法可以对(输入)几何图形进行一些几何变换。输入和输出的性质和大小各不相同,并且彼此之间存在非平凡的依赖关系。目前它作为一个类实现,目前使用std::map和std::vector(不失一般性)。有什么方法可以重构代码,使用动态内存来获得符合常量表达式要求的代码?我可以想象constexpr兼容容器和constexpr兼容"stackallocator"实现的某种组合(用于足够大的存储)用于每个使用的容器value_type。但是有一个问题:我从来没有遇到过这样的容器。但也许还有其他方法? 最佳答

c++ - 每当使用 constexpr 指定调用的函数时,将委托(delegate)方法声明为 constexpr

请考虑以下类(class)templateclassfoo{public:autobar(){returnm_t.bar();}private:Tm_t;};如果我们想要foo::bar不抛出任何时候T::bar是非抛出的,我们可以将其声明更改为autobar()noexcept(noexcept(m_t.bar())){returnm_t.bar();}但如果我们想要,我们能做什么foo::bar用constexpr指定每当T::bar用constexpr指定?我们可以写吗constexprautobar()noexcept(noexcept(m_t.bar())){returnm_

c++ - 警告 : section "__textcoal_nt" is deprecate since updating to Mac OSX Sierra

这个问题在这里已经有了答案:Disableassemblerwarning".section__TEXT,__textcoal_nt,coalesced,pure_instructions"(3个答案)关闭6年前。更新到Sierra后,我将我的Xcode从7.2.1更新到Xcode8。所以问题可能只是通过更新Xcode发生的。我降级回7.2.1,但仍然遇到同样的问题。这是我在编译C++程序时遇到的错误/var/folders/cj/1h3_84h56c9bgzt_ryhpf4940000gn/T//ccgjxtCM.s:4:11:warning:section"__textcoal_n

c++ - 为什么我不能将 assert 与 std::is_same 一起使用?

有人可以向我解释为什么这个代码片段无法正常工作吗?#include#includeusingnamespacestd;intmain(){assert(is_same::value);}编译失败,因为根据编译器:prog.cpp:7:33:error:macro"assert"passed2arguments,buttakesjust1assert(is_same::value);^prog.cpp:Infunction'intmain()':prog.cpp:7:2:error:'assert'wasnotdeclaredinthisscopeassert(is_same::valu

为什么这种constexpr函数不正确?

根据10.1.5[dcl.constexpr]第5段(N4659),对于既不默认也不是模板的constexpr函数或constexpr构造函数,如果不存在参数值因此,函数或构造函数的调用可能是核心常数表达式(8.20)的评估亚表达,或者,对于构造函数,对于某些对象(6.6.2)的恒定初始器(6.6.2),该程序是错误的,没有诊断式的诊断必需的。[例子:constexprintf(boolb){returnb?throw0:0;}//OKconstexprintf(){returnf(true);}//ill-formed,nodiagnosticrequired...-最终示例]我不确定为什么

c++ - 当类没有 constexpr 构造函数时简化冗余 std::array 初始化

我有以下代码的更复杂版本:#include#includeusingnamespacestd;classDummy{public:Dummy(constdoublea,constdoublef){//Somecomplexcalculations}};constexprdoublevalues[]{0.1,0.2,0.3,0.4};constexprautoN=sizeof(values)/sizeof(values[0]);staticconstarraydummies{Dummy(10*values[0],M_PI*0),Dummy(10*values[1],M_PI*1),Dum

c++ - boost::container::allocator_traits::is_partially_propagable 是什么意思?

我很想理解boost::container::allocator_traits当我遇到boost::container::allocator_traits::is_partially_propagable时。我在网上找不到任何其他关于它的文档,我可以理解boost::container::allocator_traits除了is_partially_propagable和storage_is_unpropagable之外的所有其他成员。编辑:以及,它们是如何实现的以及在编写容器时如何使用它们? 最佳答案 它(is_partially

c++ - 为什么 `std::is_function_v` 没有按预期工作?

#include#include#includeusingnamespacestd;templateboolf(T&&v){returnis_function_v(v))>;}intmain(){cout输出是:(clang6.0&gcc8.0)>truefalse但我期望的结果应该是:>truetrue为什么std::is_function_v没有按预期工作? 最佳答案 您需要删除对T的引用。templateboolf(T&&v){returnis_function_v(v))>>;//~~~~~~~~~~~~~~~~~~}当se

c++ - 为什么我不能在类中另一个函数的声明中使用静态 constexpr 的结果?

这是我的准系统代码:#include#includeclasscColor{public:enumeValue{k_Red,k_Green,k_Blue};staticconstexprstd::size_tNumValues(){return3;}staticconstexprstd::arrayValues(){return{k_Red,k_Green,k_Blue};}};intmain(){std::cout我正在尝试将Values()声明为静态constexpr,我认为我应该能够使用NumValues(),因为它也是一个静态constexpr。然而,这个程序failstoco

【论文笔记】An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion

Abstract本文提出了一种方法:仅使用用户给出的3-5张图像作为提供的参考,如物品或风格,通过学习冻结文本到图像模型的嵌入空间中的新“单词”(words)来表示它。这些"words"可以组成自然语言语句,直观地指导个性化创作。有证据表明,单个word的嵌入足以捕获独特且多样化的概念。图1:(左)在描述特定概念的预训练文本到图像模型的嵌入空间中发现了新的伪词(pseudo-words)。(右)这些pseudo-words可以组成新的句子,将目标置于新的场景,改变他们的风格或构成,或者直接融入到新的产品中。1Introduction将一个新的概念引入大规模扩散模型非常困难,使用扩展后的数据集为