草庐IT

dependent-type

全部标签

c++ - 处理 "depends on non-NOTIFYable properties"警告

我有一个暴露给QML的C++对象,它具有“某种”只读属性,除了该属性仍然需要从QML设置,所以它定义了一个WRITE方法,但是除了初始的ma​​ndatory设置它永远不会改变,所以我觉得NOTIFY是多余的,因为它在使用时已经设置了该值,并且它永远不会改变。但是,QML不同意我的感受,并且无论如何它都会发出“表达式取决于不可通知​​的属性”警告。由于使用属性实例化对象的方式是设置该值的唯一适用方式,因此不可能使用可调用的setter,因为这样会要求对象已经“完成”并且没有它就无法真正完成那个值。因此需要属性机制和WRITE方法,不幸的是,这导致Qt相信属性会改变。我尝试将该属性设置为

c++ - std::type_info::hash_code() 的唯一性和 "should"的含义

是否意味着要保证相同的std::type_info::hash_code()值表示相同的类型?Cplusplus.com似乎是这么说的:Thisfunctionreturnsthesamevalueforanytwotype_infoobjectsthatcompareequal,anddifferentvaluesfordistincttypesthatdonot.[Emphasismine]Cppreference似乎另有说法:Returnsanunspecifiedvalue,whichisidenticalforobjects,referringtothesametype.No

c++ - 在 OSX 10.9.1 上使用 g++ 编译时出错 : unknown type name '__darwin_wctype_t'

在OSX10.9.1上使用g++从命令行编译基本代码(我附加了一个helloworld作为示例)时#includeintmain(){std::cout我用命令编译:g++hello.cc-ohw这会生成以下错误消息:Infileincludedfromhello.cc:1:Infileincludedfrom/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iostream:38:Infileincludedfrom/Applicat

c# - 读取 Dependency walker 输出

我在我的应用程序中使用其中一个Dll时遇到了一些问题,我在其上运行了dependencywalker。我不确定如何阅读它,但我得到了以下结果它是否暗示任何x86-x64不兼容?无论如何我可以解决这个问题吗?Error:Atleastonerequiredimplicitorforwardeddependencywasnotfound.Error:Atleastonemodulehasanunresolvedimportduetoamissingexportfunctioninanimplicitlydependentmodule.Error:ModuleswithdifferentCP

C++11 "enumerated types"(17.5.2.1.2)

引自C++11标准(17.5.2.1.2枚举类型):1SeveraltypesdefinedinClause27areenumeratedtypes.Eachenumeratedtypemaybeimplementedasanenumerationorasasynonymforanenumeration(Suchasanintegertype,withconstantintegervalues(3.9.1)).2Theenumeratedtypeenumeratedcanbewritten:enumenumerated{V0,V1,V2,V3,.....};staticconstenu

C++ 函数模板 : Derived and explicit return type

我有以下问题,我只是没有找到合适的解决方案(也许没有):我有一个模板化方法,其中返回类型取决于输入类型,感谢C++11decltype返回类型可以很容易地导出,但是如果需要,我还希望允许用户明确定义返回类型。更正式地说,我有一个模板化函数f,我想被调用为f(x),既没有显式定义输入类型,也没有显式定义返回类型。我也希望能够将其称为fx()明确定义返回类型,但输入类型仍然自动派生。现在,用C++11满足第一个约束很容易(假设还有另一个模板化方法:templateautof(constInT&in)->decltype(/*codederivingthereturntypeusingin*

c++ - type、value_type 和 element_type 之间有什么区别,何时使用它们?

我已经编写了一个模板类,它应该公开其模板参数,但我不确定合适的命名。我已经为本质上相同的东西找到了三个不同的名称(据我所知):容器,例如std::vector使用value_type智能指针,例如std::unique_ptr使用element_typestd::reference_wrapper仅使用type这些不同名称背后的想法是什么?哪些标准算法或特征类取决于哪个名称?我应该为我的类使用哪个名称(介于智能指针和引用包装器之间的名称)? 最佳答案 value_type是容器(以及迭代器等)的成员类型。它提供对象的类型,通常是一个

c++ - typeid 何时可以为同一类型返回不同的 type_info 实例?

AndreiAlexandrescu写入ModernC++Design:Theobjectsreturnedbytypeidhavestaticstorage,soyoudon'thavetoworryaboutlifetimeissues.安德烈继续说道:Thestandarddoesnotguaranteethateachinvocationof,say,typeid(int)returnsareferencetothesametype_infoobject.尽管标准不保证这一点,但在GCC和VisualStudio等常见编译器中如何实现这一点?假设typeid没有泄漏(并且每次调

c++ - "temporary of type ' A ' has protected destructor", 但它的类型是 B

在以下代码中,使用Clang8.0.0+和-std=c++17编译,使用B{}创建派生类实例会报错错误:'A'类型的临时对象具有protected析构函数。当临时文件的类型为B(因此应该有一个公共(public)析构函数)时,为什么A会出现在此消息中?https://godbolt.org/z/uOzwYaclassA{protected:A()=default;~A()=default;};classB:publicA{//canalsoomitthese3lineswiththesameresultpublic:B()=default;~B()=default;};voidfoo(

c++ - VC++ 2010 中的 "moveable-only types"问题

我最近安装了VisualStudio2010ProfessionalRC来试用它并测试在VC++2010中实现的几个C++0x功能。我实例化了std::unique_ptr的std::vector,没有任何问题。但是,当我尝试通过将临时对象传递给push_back来填充它时,编译器会提示unique_ptr的复制构造函数是私有(private)的。我尝试通过移动它来插入一个左值,它工作得很好。#include#includeintmain(){typedefstd::unique_ptrint_ptr;int_ptrpi(newint(1));std::vectorvec;vec.pu