草庐IT

用不完

全部标签

c++ - 不完整类型的 std::unique_ptr 无法编译

我将pimpl-idiom与std::unique_ptr结合使用:classwindow{window(constrectangle&rect);private:classwindow_impl;//definedelsewherestd::unique_ptrimpl_;//won'tcompile};但是,我在的第304行收到关于使用不完整类型的编译错误:Invalidapplicationof'sizeof'toanincompletetype'uixx::window::window_impl'据我所知,std::unique_ptr应该能够与不完整的类型一起使用。这是lib

c++ - 不完整类型的 std::unique_ptr 无法编译

我将pimpl-idiom与std::unique_ptr结合使用:classwindow{window(constrectangle&rect);private:classwindow_impl;//definedelsewherestd::unique_ptrimpl_;//won'tcompile};但是,我在的第304行收到关于使用不完整类型的编译错误:Invalidapplicationof'sizeof'toanincompletetype'uixx::window::window_impl'据我所知,std::unique_ptr应该能够与不完整的类型一起使用。这是lib

c++ - `std::pair` `second` 具有不完整的类型与 `unordered_map` 树

我正在审查我的一些旧代码,我看到代码使用指针来实现Variant的树。对象。它是一棵树,因为每个Variant可以包含unordered_map的Variant*.我查看了代码,想知道为什么它不只是使用值,std::vector,和std::unordered_map,而不是Variant*.所以我继续修改它。除了一件事似乎没问题,我得到了errors:/usr/local/include/c++/6.1.0/bits/stl_pair.h:153:11:error:'std::pair::second'hasincompletetype_T2second;///@csecondisa

c++ - 在显式实例化过程中什么时候可以使用不完整的类型?

我正在尝试制作一种自动创建包装对象的包装器类:#include#includetemplateclassFoo{std::unique_ptr_x;public:Foo();//willinitialize_x};此外,我希望能够隐藏T的实现细节来自Foo的用户(对于PIMPLpattern)。对于单翻译单元示例,假设我有structBar;//tobedefinedlaterexterntemplateclassFoo;//orjustimaginethecodeaftermain()isinaseparatetranslationunit...intmain(){Foof;//us

c++ - 具有不完整 Value 参数的 Boost.Iterator Facade

我正在尝试将boost::iterator_facade与不完整的Value一起使用模板参数。这失败了,因为iterator_facade正试图检查类型is_pod。这是预期的行为吗?我可以解决这个限制吗某种方式?我可以编写一个简单地代理foo和为它提供隐式转换,但我宁愿有一个更简单的解决方案。#includeclassiter:publicboost::iterator_facade{private:friendclassboost::iterator_core_access;voidincrement(){}boolequal(iterconst&other)const{retur

c++ - 不完整的球体 OpenGL

我想使用VBO绘制一个球体作为顶点、颜色和UV坐标作为纹理。我的问题是球体没有“封闭”,原点有一个洞。我知道这是因为我的代码取决于每个顶点之间的(1/segments)距离;我正在处理segments=40。我知道,如果我提高那个值,洞会变低,但程序会变慢。不知道有没有办法在不增加变量的情况下消除这个洞。代码如下:for(inti=0;i这是我的输出: 最佳答案 我不认为这是一个洞。您绘制了一个线段太多,并导致它在南极绘制额外的三角形,纹理环绕:for(inti=0;i在第一个循环迭代中,i=0,角度将小于-0.5*pi,导致图片中

c++ - 读取可能不完整的文件 C++

我正在编写一个程序来重新格式化DNS日志文件以插入到数据库中。日志文件中当前写入的行可能不完整。如果是,我想丢弃它。我开始相信eof函数可能很适合我的应用程序,但是我注意到很多程序员劝阻使用eof函数。我还注意到feof函数似乎非常相似。非常感谢你们能提供的关于这些功能的副作用的任何建议/解释,以及对更合适的方法的任何建议!编辑:我目前正在使用istream::peek函数来跳过最后一行,无论它是否完整。虽然可以接受,但确定最后一行是否完整的解决方案将是首选。我使用的具体比较是:logFile.peek()!=EOF 最佳答案 我会

c++ - 解决静态断言中不完整的类型

当表达式依赖于类类型本身时,有没有办法在类内部进行static_assert?也许延迟评估直到类型完成或模板实例化之后?示例代码:#includetemplatestructTest{Tx=0;//makenon-trivialstatic_assert(std::is_trivial>::value,"");};intmain(){//wouldlikestaticassertfailure,insteadget'incompletetype'errorTesttest1;Testtest2;return0;} 最佳答案 这是一个

c++ - 由于类型不完整,在 static_assert 中使用 std::is_base_of 失败

我想做的是让一些类继承自extention类。问题是extention类必须知道它正在扩展哪个类。这可以像这样简单地实现:templateclassExtention{public:voidcheck()const{std::cout::value{};classBar:publicExtention{};Foo和Bar类显示了扩展的好坏用法。Foo().check();→Extentionisvalid:trueBar().check();→Extentionisvalid:false我想在编译时检查模板的有效性,这让我写了templateclassExtention{static_

c++ - 用不克隆进程内存的调用替换 system 和 popen 调用

我正在编写宽度内存和性能敏感的多线程服务器。因此,我需要不使用fork()的标准system()和popen()调用的替代方法,它克隆了所有进程内存通常需要太多时间。看来,需要使用vfork()然后execve()来实现。谁能帮我解决两个问题:替换system()调用。行为示例:一个线程调用要执行的函数,例如touchfilename并调用线程等待直到执行结束。(所有其他线程必须继续工作)替换popen()调用行为示例:相同的行为,但需要获取命令的输出,例如ls-flags(此代码的替代:CorrectCode-Non-blockingpipewithpopen)谢谢