草庐IT

is_constexpr_copiable

全部标签

c++ - 如果函数被称为 constexpr,则有条件地 static_assert

我知道有人提议使用constexpr()运算符,但这还没有在gcc/clang中实现。我也知道有一个使用机器代码编辑等技巧的实现:http://saadahmad.ca/detecting-evaluation-context-inside-constexpr-functions/我想知道是否有一个有点受限的解决方案:structF{constexprF(intv){ifconstexpr(constexpr()){static_assert(v>0);}else{assert(v>0);}}};//...constexprFf{0};//shouldtriggeracompile-t

c++ - 提升图形库 : Is there a neat algorithm built into BGL for community detection?

有人在大型生产服务器上使用BGL吗?您的网络由多少个节点组成?你如何处理communitydetectionBGL有什么很棒的方法来检测社区吗?有时两个社区可能通过一条或两条边连接在一起,但这些边并不可靠并且会逐渐消失。有时根本没有边缘。有人能简单谈谈如何解决这个问题吗?请打开我的思路并启发我。到目前为止,我已经设法计算出两个节点是否在一个岛上(在一个社区中)以最便宜的方式,但现在我需要计算出不同岛屿上的哪两个节点彼此最接近。我们只能尽量少地使用不可靠的地理数据。如果我们把它形象地比作一个大陆和一个岛屿,并把它从社会距离的背景中拿出来。我想计算出水域中哪两block土地距离最近。

c++ - C/C++ 转换为程序集,低级内存行为 : how is it done?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭12年前。我在游戏编程学校学习,我们必须学习代码速度,这似乎很重要。在使用C/C++编程时,是否有任何需要注意的教程或列表?我想知道很多事情,例如为什么C的默认行为是通过传递数据而不是引用/地址,或者编译器如何将引用转换为汇编程序,或者C循环如何将自身转换为JMP。我对此很担心,因为python使用了另一种方式,但另一方面,python不使用运算符来复制值,而是使用语法繁重的函数。我真的不认为知道如何在汇

c++ - boost Weak_Ptr : Destruction is more expensive than expected

无论出于何种原因,我们看到销毁弱指针的成本相当高。这是罪魁祸首代码:~weak_count()//nothrow{if(pi_!=0)pi_->weak_release();//Consumesahugechunkofourtime.#ifdefined(BOOST_SP_ENABLE_DEBUG_HOOKS)id_=0;#endif}我们没有处于Debug模式,调试Hook也没有启用。弱释放消耗了非常多的时间。这是一个已知的问题?我们做错了什么吗?boost版本:1.36编译器:VS2008编译器套件。不幸的是,由于各种原因,我们被锁定在这个Boost版本中,所以我更想知道这些奇怪的

c++ - 在同一类中使用 constexpr 作为模板参数时出错

如果我尝试编译以下C++0x代码,我会收到一个错误:templatestructfoo{};structbar{staticconstexprintnumber(){return256;}voidfunction(foo&);};对于gcc4.6.1,错误信息是:test.cc:6:27:error:‘staticconstexprintbar::number()’usedbeforeitsdefinitiontest.cc:6:28:note:intemplateargumentfortype‘int’使用clang2.8,错误信息是:test.cc:6:20:error:non-t

c++ - 不完整类型的嵌套静态 constexpr。 C++ 是否有效?

Clang和GCC在以下代码是否有效C++11上存在分歧:structThing{intvalue;staticconstThingthing;};constexprThingThing::thing{3};Clang编译它并且GNUGCCversion4.7.2说:错误:重新声明“Thing::thing”在“constexpr”中不同constexprThingThing::thing{3};哪个编译器对标准的解释是正确的?C++14标准似乎要对此事发表一些新的看法吗? 最佳答案 简介该代码段在C++11中是合法的,并且在C++

c++ - constexpr 构造函数是否允许 return 语句?

如thispage中所述,constexpr构造函数主体的复合语句,如果不删除也不默认,必须满足constexpr函数主体的约束,即它可能包含任何声明,除了:asm声明goto语句try-block非文字类型或静态或线程存储持续时间或未执行初始化的变量的定义标准似乎没有限制可能出现的return语句的数量,而在C++11中,只允许出现一个。现在,考虑以下代码:classThing{public://Shouldn'tthisconstructorbefineunderbothC++11andC++14?constexprThing(){return;}};intmain(){Thing

模板类型的 C++ Constexpr 成员

我想创建一个模板类,其成员是一个constexpr数组。当然,数组需要根据它的类型进行不同的初始化,但我不能在不初始化数组的情况下声明它。问题是在模板专门化之前我不知道数组的值。//A.hpptemplateclassA{public:staticconstexprTa[];constexprA(){};~A(){};}//B.hppclassB:publicA{public:constexprB();~B();};//B.cpptemplateconstexprintA::a[]={1,2,3,4,5};B::B(){}B::~B(){}如何正确初始化B中的A::a[]?

c++ - constexpr 模板参数怪异

GCC(5.3)&Clang(3.8)声称test中的第一行是错误的,但第二行是好的。MSVC(2015.2)说,两者都无效。templatevoidf(Nn,Tt){std::get(t);}voidtest(){std::get()>(std::make_tuple(123));//notokf(std::integral_constant(),std::make_tuple(123));//okforgcc,clang,butnotmsvc}根据标准,究竟有什么区别?这段代码一开始是合法的吗?第一行的clang错误:Infileincludedfrommain.cpp:2:/us

c++ - 从 std::true_type 继承 vs static constexpr const bool 成员

我知道这不是一个非常尖锐的问题。使用一个比另一个有优势(编译时间、依赖性、调试符号大小、可用性、可读性等)吗?templatestructIsSharedPtr:std::false_type{};对比templatestructIsSharedPtr{staticconstexprboolvalue=false;};相关问题...templatestructS;templatestructS{};templatestructS{};对比templatestructS;templatestructS{};templatestructS{}; 最佳答案