草庐IT

code-sharing

全部标签

c++ - NMAKE : fatal error U1077: 'cd' :return code '0x2' cl. 可执行程序

我正在尝试从源代码编译QCAD(一个依赖Qt的开源CAD应用程序),以便我可以为msvs2008构建它。我一直在按照此处给出的说明进行操作:http://www.qcad.org/en/component/content/article/78-qcad/111-qcad-compilation-from-sources.我已成功配置和编译Qt4.8.5,并设置了环境变量PATH。我创建了一个新的环境变量QMAKESPEC并将值设置为win-32-msvc2008。我毫无问题地完成了QCAD的配置。但是,在编译大约30分钟后,我遇到了以下错误:NMAKE:fatalerrorU1077:

c++ - 子类和 get_shared_from_this()

我需要找到一个解决方案来允许子类获得其正确的智能指针。classParent:publicenable_shared_from_this{...}classChild:publicParent{publicChild(){boost::shared_ptrpointer=shared_from_this();//shouldworkboost::shared_ptrpointer=shared_from_this();//won'twork....}如何使用shared_from_this()获取正确的智能指针?背景:我正在写一些通知程序/监听器的东西,有些类自然需要从通知程序注册和注

c++ - `boost::system::error_code`失败时应该提供哪个 `boost::asio::ip::tcp::resolver::resolve()`值?

我想返回一个boost::system::error_code指示主机/服务是否可以解析。主机/服务查找失败可能有多种原因(例如网络连接问题或无效参数)。应该返回什么? 最佳答案 您必须提供错误代码和类别才能创建error_code对象。这是一个示例,假设该错误是由于另一台主机拒绝连接造成的:error_codeec(errc::connection_refused,system_category());returnec;您也可以在使用系统类别时将errno值作为错误代码传递。例如:#include#include#includev

c++ - 如何从 boost 库中取出单个元素(例如 shared_ptr)?

我一直在玩弄一些Boost组件,我认为在我正在从事的项目中唯一直接需要的是boost::shared_ptr。只包含shared_ptr所需的文件会很困难,或者至少只包含Boostsmart_ptr目录的文件到我的项目中?它们似乎对Boost的其他部分有一些外部依赖性-但我认为有一种简单的方法可以只使用Boost库的某些组件,而我错过了它。如果您能告诉我我需要哪些部分或指出一个好的教程,我将不胜感激! 最佳答案 您可以使用bcp工具仅提取所需的header。bcpshared_ptr/foo这会将shared_ptr和所有依赖项复制

C++智能指针enable_shared_from_this

enable_shared_from_this介绍enable_shared_from_this其实是智能指针中的内容,它的作用就是用于在类的内部,返回一个this的智能指针。对于enable_shared_from_this,初学者可能不明白它的使用场景和使用的必要性,可能有得童鞋们会问既然有了this这个指向自己的指针,为什么还需要enable_shared_from_this这个东西呢,直接用this代替不就好了吗?我们来看看以下代码例子,如果先不运行,你能看出什么问题吗?#includeclassPerson{public:Person()=default;~Person(){};st

c++ - C 和 Matlab : Why does this one line in Matlab become so many lines in C++ code generated by Matlab Coder?

我有一些运行了数百万次的Matlab代码,如以下问题所述:Matlab:Doescallingthesamemexfunctionrepeatedlyfromaloopincurtoomuchoverhead?我正在尝试对其进行混合以查看是否有帮助。现在,当我使用MatlabCoder工具从Matlab代码生成代码时,代码通常是合理的,但是这一行Matlab代码(在下面第一行的C++注释中)导致了这种怪异,我不知道为什么。任何有助于理解和降低其复杂性的帮助将不胜感激。对于context,d是一个二维矩阵,s1是一个行vector。s1_idx在前面的C++代码中被指定为length(s

c++ - TMP : how to write template code which converts any struct into a tuple?

是否可以使用模板元编程将任何结构或类转换为元组?例如:structFoo{charc;inti;std::strings;};typedefstd::tupleFoo_Tuple;如果有一些模板代码可以自动为我生成Foo_Tuple就好了。回答对于这样一个简单的案例来说,这太过分了,但是对于更复杂的案例(例如ORM或任何时候你需要编写大量样板代码,而仅仅模板或宏不足以完成任务),BoostMirror看起来就像它可能非常有用。我更深入地研究了BoostMirror:基本的反射功能(在Mirror和Puddle中)不难理解,很容易设置并且似乎相当广泛(可以处理许多结构,包括C++11枚举

c++ - boost::shared_ptr 和 std::shared_ptr 共存

我们都知道boost和c++11都支持shared_ptr。有些编译器支持c++11,有些则不支持。我想编写我的代码,以便当编译器支持c++11shared_ptr时,它使用std::shared_ptr;如果没有,请使用boost::shared_ptr。这方面的常见/最佳做法是什么?让我将讨论限制在GCC而不是特定版本。 最佳答案 C++0x/C++11可用性到目前为止,我知道检测GCC是否使用C++0x/C++11的唯一方法是检查预定义宏__GXX_EXPERIMENTAL_CXX0X__:#ifdef__GXX_EXPERI

c++ - shared_ptr 不能为空?

使用std::shared_ptr表示共享所有权和可选性(可能为空)。我发现自己处于这样一种情况,我只想在我的代码中表达共享所有权,而没有任何选择权。当使用shared_ptr作为函数参数时,我必须让函数检查它是否不为null以保持一致/安全。在许多情况下,传递引用而不是当然是一种选择,但有时我也想转让所有权,因为可以使用shared_ptr。是否有一个类可以替换shared_ptr而不可能为空,是否有一些约定来处理这个问题,或者我的问题没有多大意义? 最佳答案 您正在请求not_null包装器类。幸运的是,C++专家已经解决了您的

c++ - 在基于范围的 for 循环中使用 shared_ptr 到 std::vector

我编写了一个c++函数,它组装一些数据,然后将std::shared_ptr返回到新分配的包含数据的std::vector。类似于此的内容:std::shared_ptr>shared_ptr_to_std_vector_of_ints(){autov=std::make_shared>();for(inti=0;ipush_back(i);returnv;}我尝试使用基于范围的for循环遍历vector的内容,但它表现得好像vector是空的。在摆弄之后,我发现我可以通过将从函数返回的值分配给局部变量,然后在循环中引用它来让它按照我的预期运行://Executesloopzeroti