草庐IT

is_const

全部标签

c++ - 将 const 添加到 size_t 会导致编译失败是标准行为吗?

我最近读了一篇很酷的文章:https://akrzemi1.wordpress.com/2015/08/20/can-you-see-the-bug/在ideone上玩简化版时,我得到了令人惊讶的行为:#include#includeusingnamespacestd;intmain(){constsize_tsz=258;strings{sz,'#'};assert(2==s.size());}不编译,但是删除const的相同程序编译:#include#includeusingnamespacestd;intmain(){size_tsz=258;strings{sz,'#'};as

c++ - 为什么标准同时提供了 is_integer 和 is_exact?

std::numeric_limits提供了2个互斥的常量:is_integer:“true对于所有整数算术类型T”is_exact:“true对于所有使用精确表示的算术类型T”是否存在非精确整数类型的可能性?在这里允许做什么?在我知道我是否正在处理精确数字的所有模板中,我使用了is_integer,我现在是否还需要添加对is_exact的检查? 最佳答案 来自is_exactcppreference页面:NotesWhileallfundamentaltypesTforwhichstd::numeric_limits::is_ex

c++ - 没有用于使用可变参数调用 std::forward(const std::string &) 的匹配函数

我正在尝试为不可复制、不可移动的类制作一个可移动的包装器,但是我在将conststd::string变量传递给构造函数时遇到问题。下面的最小示例会产生以下错误:#include#include#include#includestructX{std::stringx;X(conststd::string&x):x(x){}X(constX&x)=delete;X(X&&x)=delete;};structWrapper{std::unique_ptrx;Wrapper(constWrapper&wrapper)=delete;Wrapper(Wrapper&&wrapper)=defau

c++ - 将 const 添加到引用

我想通过typedefconstAB;将const添加到引用类型。不知何故它不起作用。这在C++中是不可能的吗?测试:#includetypedefint&A;typedefconstAB;//::typeB;//alsodoesn'twork.static_assert(std::is_const::type>::value,"isconst");intmain(){return0;}编译错误:add2.cpp:5:1:error:staticassertionfailed:isconststatic_assert(std::is_const 最佳答案

c++ - 如何在现代 C++ 中使用生成器初始化 const 容器?

为了避免可变的容器/状态,我目前想知道什么是最接近从某些输入构建constSTL容器的东西,例如constvectorinput={2,13,7,1};我想做的是这样的:constautotransformed=generate_from>(input.begin(),input.end(),to_string);do_something(transformed);虽然您发现最多的方法是创建一个可变对象并对其进行修改(我想避免这种情况):vectorbad_mutable_container;for(constauto&elem:input){bad_mutable_container

解决[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated

一、问题描述在使用MySQL查询时报了一个没有见过的错误:[Err]1055-Expression#1ofORDERBYclauseisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'information_schema.PROFILING.SEQ'whichisnotfunctionallydependentoncolumnsinGROUPBYclause;thisisincompatiblewithsql_mode=only_full_group_by二、解决方法1、在windows环境下,MySQL的安装路径中有一个my.ini文件,在里

c++ - const 临时类型的最佳实践

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion假设我正在做一个涉及创建一个我不会修改的临时对象的计算:autotmp=val*val;//Dosomecalculationswithtmp...此外,我不需要tmp是一个左值,因为我不会获取它的地址。在这些情况下,我应该在我的代码中使用哪种习语:1.autotmp=val*val;2.constautotmp=val*val;3.constauto&tmp=val*val;4.auto

c++ - 允许成员为 const,同时仍然支持类上的 operator=

我的类中有几个成员是const,因此只能通过初始化列表进行初始化,如下所示:classMyItemT{public:MyItemT(constMyPacketT&aMyPacket,constMyInfoT&aMyInfo):mMyPacket(aMyPacket),mMyInfo(aMyInfo){}private:constMyPacketTmMyPacket;constMyInfoTmMyInfo;};我的类可以用在我们内部定义的一些容器类(例如vector)中,这些容器需要在类中定义operator=。当然,我的operator=需要做这样的事情:MyItemT&MyItemT

c++ - OpenGL LookAt 函数 : is the up vector arbitrary?

我正在尝试理解glLookAt函数。需要3个三元组。第一个是眼睛位置,第二个是眼睛凝视的点。那个点会出现在我的视口(viewport)的中心,对吧?第三个是“向上”vector。如果它垂直于从眼睛到凝视点的vector,我理解“向上”vector的含义。问题是,是否允许为up指定其他vector,如果可以,那是什么意思?gluPerstpective、glLookAt和glFrustum的图形详细解释的链接也将不胜感激。官方OpenGL文档似乎不适合新手。请注意,我理解upvector垂直于eye->objectvector时的含义。问题是什么意思(如果有的话),如果不是的话。我无法通

c++ - 虚拟功能 : Iterating over a vector<Base Class> that is populated with subclass objects

简短描述:我正在迭代一个vector,在vector中的每个对象上调用一个虚函数,以执行一系列操作。vector和迭代器一样属于基类。所有的对象都是child。当调用虚函数时,它会执行基类的函数。(真的)长描述:我正在尝试为具有一组行为的生物建模。我的基类是抽象的,只有两个函数(虚拟),所有子类都已覆盖:classBehavior{public:Behavior();~Behavior(void){}virtualvoidexecute(){}virtualBEHAVIOR_TYPEgetType(){returnm_Type;}protected:BEHAVIOR_TYPEm_Typ