草庐IT

enable_cli

全部标签

c++ - boost::enable_if 类模板方法

我得到了带有模板方法的类:structundefined{};templatestructis_undefined:mpl::false_{};templatestructis_undefined:mpl::true_{};templatestructfoo{templatetypenameboost::disable_if>::typeapply(constF&f,constV&variables){}templatetypenameboost::enable_if>::typeapply(constF&f,constV&variables){}};显然,两个模板都被实例化,导致编译

c++ - 使用 boost::enable_shared_from_this 时出现不完整的类型错误

在下一行classSymbol:publicboost::enable_shared_from_this{我得到错误:错误:不完整类型的无效使用structboost::enable_shared_from_this/usr/include/boost/smart_ptr/shared_ptr.hpp:63:错误:声明structboost::enable_shared_from_this知道为什么我会收到此错误。Symbol是一个抽象类(如果重要的话) 最佳答案 哎呀。错误是因为我没有包含定义enable_shared_from_

c++ - enable_shared_from_this 的双重继承

我有一个对象(Z),它派生自另外两个对象(A和B)。A和B都派生自enable_shared_from_this,分别enable_shared_from_this和enable_shared_from_this.我当然会调用shared_from_this()在Z上。当然,编译器将其报告为不明确。我的问题是:从enable_shared_from_this继承两次是否安全?或者它会创建两个独立的引用计数(不好!)如果不安全,我该如何解决?注意:我发现了另一个问题badweakpointerwhenbaseandderivedclassbothinheritfromboost::ena

C++ CLI System.String^ 到 MFC LPCTSTR

如何将系统(.net)C++\CLIString^转换为MFCC++LPCTSTR字符串。将LPCTSTR转换为String^非常容易,但到目前为止还没有找到相反的方法。 最佳答案 如果您有VisualStudio2008或更高版本,您应该能够使用C++/CLI编码(marshal)处理库来执行此操作,如下所示:#includeusingnamespaceSystem;usingnamespacemsclr::interop;...String^cliString;marshal_contextcontext;LPCTSTRcstr

c++ - enable_shared_from_this(c++0x): what am I doing wrong?

我只是在研究即将推出的新C++标准中的智能指针。但是我没有掌握shared_from_this函数的用法。这是我所拥有的:#include#includeclassCVerboseBornAndDie2:publicstd::enable_shared_from_this{public:std::stringm_Name;CVerboseBornAndDie2(std::stringname):m_Name(name){std::coutp=vbad->shared_from_this();}并在行中抛出std::bad_weak_ptr异常std::shared_ptrp=vbad-

c++ - 使用 constexpr 函数作为参数时,enable_if 在 Visual Studio 中不起作用

我目前正在研究VisualStudio2017(如果有任何帮助,请使用/std:c++latest进行编译)。有问题的代码只是根据一些模板化constexpr函数的结果选择结构特化。GCC和clang编译它没有问题。这是我的MCVE:#includestructA{enum{test_trait=true};};templateconstexprintchoose(){returnT::test_trait;}templatestructChosen;templatestructChosen()==1>>{};voidfoo(){//Thisworksconstexprintchose

c++ - enable_shared_from_this 和堆栈上的对象

有没有办法阻止shared_from_this()调用堆栈分配的对象?基类列表中的enable_shared_from_this是类用户的强指标,但有没有办法强制正确使用?示例代码:classC:publicenable_shared_from_this{public:shared_ptrmethod(){returnshared_from_this();}};voidfunc(){Cc;shared_ptrptr=c.method();//exceptioncomingfromshared_from_this()} 最佳答案 因此

c++ - C++/CLI 中的值类

在C++/CLI中使用值类有什么好处?值类可以包含成员函数吗? 最佳答案 一个值类是一个ValueType-这意味着,无论何时将其分配给同一类型的另一个变量,整个对象都会被复制到另一个变量中,从而为您留下两个单独的拷贝。这方面的示例是基本数字数据类型,如int、bool或double。ValueTypes是密封的,这意味着您不能从它们派生。refclass是一种引用类型-如果您将它分配给另一个相同类型的变量,您只复制一个引用。所以这两个变量基本上“指向”同一个数据。所以valueclass和refclass的主要区别在于复制语义。两

c++ - CLI/C++ 究竟是什么?它与 'normal' c++ 有何不同?

首先让我阐明“普通”C++的含义——我目前正在阅读WalterSavitch的“C++中的问题解决”。据我所知,这不是专门为Microsoft或Unix编写的。所以我的问题是,我在这本书中学习的内容(我用它来获取C++的通用知识)与我一直阅读的有关CLIC++的内容有何不同?如果我使用VisualC++,我会遇到CLIC++吗?我完全糊涂了。 最佳答案 C++/CLI(有时也称为C++/CLR)指的是一种介于原生C++和.NET框架之间的语言。它通常用于需要桥接一些native代码(纯C++)和托管代码(如VB、C#、F#等)的应用

.net - C++/CLI 能否用于从 native C++ 应用程序调用 .NET 代码?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我已经用C++/CLI完成了另一种方法(从.NET调用纯C++代码),并且它(在大多数情况下)有效。native到C++/CLI方向是如何完成的?我真的不想使用COM互操作...