草庐IT

auto-import

全部标签

c++ - `template <auto>` 和部分类模板特化排序

考虑:#includetemplatestructTag{};templateautotag=Tag{};templatestructSelectorImpl;//1templatestructSelectorImpl...>{};//2template*tag,auto...xs>structSelectorImpl,std::integral_constant...>{};templatestructSelector:SelectorImpl...>{};intmain(){Selector,1,2>{};}gcc和clang都无法编译它,报告SelectorImpl的特化不明确。

c++ - decltype(auto) 函数返回类型不推导 && 类型

如果一个函数返回decltype(auto),它返回一个int&&类型的局部变量,为什么返回类型是int&?如果我将变量转换为它自己的类型,那么返回类型就是我所期望的(int&&)#includenamespace{autoi=5;autoj=5;decltype(auto)foo1(){int&&ret=std::move(i);returnret;}decltype(auto)foo2(){int&&ret=std::move(j);returnstatic_cast(ret);}}intmain(){static_assert(std::is_same_v);static_ass

c++ - 大 vector 的返回值优化与 auto_ptr

如果我使用auto_ptr作为填充大vector的函数的返回值,这会使该函数成为源函数(它将创建一个内部auto_ptr并在返回非constauto_ptr时移交所有权)。但是,我不能将此函数与STL算法一起使用,因为为了访问数据,我需要取消对auto_ptr的引用。我猜一个很好的例子是大小为N的vector场,每个vector有100个分量。如果N很大,则函数按值或按ref返回每个100个分量vector是不一样的。此外,当我尝试这个非常基本的代码时:classt{public:t(){std::coutautoFun(){returnstd::auto_ptr(newt());}a

C++11: `auto` 对 const 和引用类型的操作的标准引用

假设我有一个类型T:typedef...T;然后我有这些功能:Tf11();T&f12();T&&f13();constTf21();constT&f22();constT&&f23();然后像这样称呼他们:autox11=f11();autox12=f12();autox13=f13();autox21=f21();autox22=f22();autox23=f23();从C++11标准的哪些部分/条款可以推导出x11..x23的等效非自动声明? 最佳答案 它在§7.1.6.4autospecifier中。在您的函数返回类型示例中

c++ - 有没有办法为 C++03 实现 auto 关键字

在C++03或更早版本中,是否有实现auto关键字的方法?不是对象类,而是可以像这样使用它[C++11]autox=5;std::cout我很快“搞定”了一个实现,但它很垃圾,因为你可以将它转换为任何类型-太像一个object类,而且非常基础,我知道,但无论如何,这里是:classauto_t{public:templateauto_t(const_Ty&_Value):__data(_Value){}templateoperator_Ty(){return(_Ty)__data;}private:void*__data;};#defineautoauto_t

c++ - auto_ptr 陷阱和误区

除了使用auto_ptr的所有已知好处之外,auto_ptr的“最坏做法”是什么?创建auto_ptr的STL约束器。auto_ptr不满足“CopyConstructable”要求。另请参阅ScottMeyer的“有效STL”,第8项。创建数组的auto_ptr销毁时,auto_ptr的析构函数使用“delete”(而不是“delete[]”)来销毁拥有的对象,因此此代码会产生未定义的行为:auto_ptrapi(newint[42]);在使用auto_ptr成员的类中没有处理copy-ctor和op=。人们可能会天真地认为通过使用auto_ptr成员不需要为类实现复制构造函数/赋值

c++ - 如何在 Qt Cmake 项目中使用 QML_IMPORT_PATH?

我需要为项目提供一些模块。现在,它在QT目录中查找它们(我已经将它安装在$HOME中),但我想让它在/usr/lib/x86_64中搜索而不是它-linux-gnu/qt5/qml/.我尝试过的:a)在.bashrc中定义QML_IMPORT_PATH-没有成功b)在$HOME/Qt5.5.1/Tools/QtCreator/bin/qml/中复制需要的模块:这里我们有一些不同的东西。如果我打开.qml文件-它不会在import行下划线(没关系)。但是,如果我使用控制台运行可执行文件-同样的消息moduleorg.bla.blaisnotinstalled。所以,如果复制没有帮助,也许

C++14 auto lambda 可以接受 Obj<std::tuple<void>>——但模板函数不能?

下面是一个程序,它完全演示了我所看到的问题。首先,我从一个使用其他类型的分组定义的对象开始,我开始使用std::tuple来管理分组。templateclassobject;templateclassobject>{};我打算这些对象能够具有散布在“包”中的类型void。我已经意识到无法“实例化”这种类型的元组(参见Voidtypeinstd::tuple)我想传递这些对象,也许复制/移动它们......它们的数据成员都不是这些类型的元组。事实上,我可以使用上面的空对象定义重现该问题。我可以让它工作,使用类似的东西:templatestructTGrp{};templateclasso

c++ - 单例模式 : different behavior of auto_ptr and unique_ptr

在实现工厂类时,我遇到了一个我无法理解的std::auto_ptr行为。我将问题简化为以下小程序,所以...让我们开始吧。考虑以下单例类:单例.h#ifndefSINGLETON_H_#defineSINGLETON_H_#include#includeclasssingleton{public:staticsingleton*get(){std::coutptr_;//staticstd::unique_ptrptr_;};#endif单例.cpp#includeostd::auto_ptrsingleton::ptr_(0);//std::unique_ptrsingleton::

iphone - XCode 如何处理多个目标中的#import header 语句?

我有一个包含2个目标的XCode项目(两者都是iPhone应用程序共享95%的相同代码)。但是,一个模块不是“可共享的”;实现方式差异太大。我的解决方案(不起作用)是在我的项目目录中的Classes/文件夹中添加2个子目录-每个目标一个。在每个目录中,我都放置了一个名为ExampleSentencesViewController的ViewController类。当然,每个文件都只编译为一个目标的一部分——我正在寻找一种“自动切换”来根据目标使用哪个实现。在每个目标的设置中,我将每个目录添加到“标题搜索路径”设置(每个目标的每个路径)。奇怪的是,它只针对原始目标进行编译。我后来添加的目标