草庐IT

is_constexpr_copiable

全部标签

c++ - type_info 不考虑 cv 限定符 : is this right?

这段代码打印1是正确的行为还是g++4.5的怪癖?#include#includeusingnamespacestd;intmain(){structA{};cout我认为cv限定符的不同类型作为非常不同的类型受到威胁,即使较少的cv限定类型可以隐式转换为更多cv限定的类型。 最佳答案 typeid根据C++标准(摘自ISO/IEC14882:2003的§5.2.8)忽略cv限定符:Thetop-levelcv-qualifiersofthelvalueexpressionorthetype-idthatistheoperandof

c++ - 为什么 Foo::inner Constexpr 不会链接,而 User Literal{Foo::inner Constexpr} 会链接?

考虑以下简单类,这些类是我根据在实际项目中遇到的问题设计的。Triple是一种与内部一起使用的快速样板类型constexprFoo类中的s:#includeclassTriple{public:friendstd::ostream&operator如果我再写一个main()使用公共(public)内部函数constexpr来自Foo,如下,会链接失败(使用g++4.7.0,在Windows7上通过mingw-x86-64):intmain(intargc,char**argv){usingstd::cout;usingstd::endl;cout$g++-otest-O3--std=c

c++ - 了解 "template argument is invalid"错误消息

考虑代码:#include#includestructtest1{voidInvoke(){};};structtest2{templatevoidInvoke(){};};enumclassInvokableKind{NOT_INVOKABLE,INVOKABLE_FUNCTION,INVOKABLE_FUNCTION_TEMPLATE};templatestructget_invokable_kind{conststaticInvokableKindvalue=InvokableKind::NOT_INVOKABLE;};templatestructget_invokable_ki

c++ - 显式默认和删除的构造函数 : is there any similar functionality available in VS2012?

在VS2012中,“显式默认和删除特殊成员函数”功能(http://en.wikipedia.org/wiki/C++0x#Explicitly_defaulted_and_deleted_special_member_functions、http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm)尚不可用(http://msdn.microsoft.com/en-us/library/vstudio/hh567368.aspx)。是否有任何解决方法来使用此类功能,即使非常冗长?在实践中,我可以翻译这个吗struc

c++ - Visual Studio 2010 : "ConfigurationGeneral" rule is missing from the project

我想使用VisualC++2010Professional编译一个64位应用程序,但我一直收到这个错误,我不知道该怎么做:1>------Buildstarted:Project:Test,Configuration:Debugx64------1>Error:The"ConfigurationGeneral"ruleismissingfromtheproject.我在谷歌上搜索过这个问题,但所有的想法都没有解决我的问题。谢谢!如果需要这些信息,我有windows8.1Pro64bits,我使用的是visualstudio2010c++professional。编辑:尝试修复visua

c++ - 为什么模板参数上的 is_copy_constructible 静态断言失败?

我试图对模板参数进行静态断言,以检查/强制Type可复制构造。但是静态断言失败。我不明白为什么,也找不到任何文档为什么它会在静态评估中失败。实例化的类是可复制构造的,但是它使用了我认为被称为奇怪的重复模板参数模式的东西。完整的测试代码如下:#include#includeusingnamespacestd;templateclassFunContainer{//static_assert(is_copy_constructible::value,"Typemustbecopyconstructible!");//::value//::value;};};classFun:publicF

c++ - constexpr 结构是否被零初始化?

考虑以下示例:templatestructfoo{constexprfoo():a(){}inta[N];};intmain(){foo{}).a[0]>f;}尝试编译时,clang推断出foo作为f的类型同时g++因内部编译器错误而崩溃。然而,是a-foo的成员|保证为零,还是这种未定义/未指定的行为? 最佳答案 成员初始化器a()值初始化foo::a(通过[class.base.init]/7,这导致[dcl.init]/11)。[dcl.init]/8指定数组的值初始化对数组的每个元素进行值初始化。对于ints(和其他基本类型

c++ - 传递 constexpr 对象

我决定尝试一下constexpr的新C++14定义,为了充分利用它,我决定编写一些编译时字符串解析器。但是,在将对象传递给函数时,我一直在努力保持对象为constexpr。考虑以下代码:#include#includeclassstr_const{constchar*constp_;conststd::size_tsz_;public:templateconstexprstr_const(constchar(&a)[N]):p_(a),sz_(N-1){}constexprcharoperator[](std::size_tn)const{returnn我使用str_constclas

IS-IS的LSP分片扩展

原理IS-IS通过泛洪LSP来宣告链路状态信息,由于一个LSP能够承载的信息量有限,IS-IS将对LSP进行分片。每个LSP分片由产生该LSP的结点或伪结点的SystemID、PseudnodeID(普通LSP中该值为0,PseudonodeLSP中该值为非0)、LSPNumber(LSP分片号)组合起来唯一标识,由于LSPNumber字段的长度是1字节,因此,IS-IS路由器可产生的分片数最大为256,限制了IS-IS路由器可以发布的链路信息量。IS-ISLSP分片扩展特性可使IS-IS路由器生成更多的LSP分片,通过为路由器配置附加的虚拟系统、每个虚拟系统都可生成256个LSP分片(最多可

c++ - 当模板类 is_convertible 为众所周知的类型时,特化仿函数

所以我想在模板类型boost::is_convertible时应用特定代码至WellKnownType:templateclassFoo{public:Foo(){//applyspecificfunctiontom_t//ifTisconvertibletoWellKnownType}Tm_t;};为此,我想到了使用仿函数:templatestructmy_functor{voidoperator()(T&t){//donothingbydefault}};然后,我想在boost::is_convertible时特化这​​个仿函数来做其他事情。:templatestructmy_fu