草庐IT

is_deleted

全部标签

c++ - 术语的含义 - Resource Acquisition Is Initialization

我知道RAII的作用。当/如果代码抛出异常时,这都是为了防止内存泄漏等。现在,我想了解那个智能术语的含义。http://en.wikipedia.org/wiki/AcquisitionAcquisition意味着获得某物。那么,当我们说资源获取就是初始化时,这是什么意思?我只是在这里谈论这个术语的含义,而不是一般的概念。 最佳答案 之前有人说过(可能是ScottMeyers说的,我记不清了),RAII应该被称为“Destructionisresourcerelease”,或者类似的词。“资源获取即初始化”字面上的意思是,当一个对象

c++ - 使用 boost::is_any_of 拆分会混淆定界符 ",,"和 ","

我目前有一个具有以下结构的字符串xxx,xxx,xxxxxxx,,xxxxxx,xxxx现在我使用下面的代码std::vectorvct;boost::split(vct,str,boost::is_any_of(",,"));现在,一旦找到“,”而不是我不想要的“,,”,boost就会拆分字符串。有什么方法可以让我明确指定只有在找到“,,”而不是“,,”时才拆分 最佳答案 is_any_of(",,")将匹配列表中指定的任何内容。在这种情况下,,或,你要找的是沿线boost::algorithm::split_regex(vct,

c++ - 传递 std::ofstream 作为参数时,为什么我要生成 "use of deleted"函数?

这个问题在这里已经有了答案:Whycopyingstringstreamisnotallowed?(3个答案)C++copyastreamobject(5个答案)关闭7年前。我有一个成员是std::ofstreamfBinaryFile和一个voidsetFile(std::ofstream&pBinaryFile){fBinaryFile=pBinaryFile;}输出:Data.h:86:16:error:useofdeletedfunction‘std::basic_ofstream&std::basic_ofstream::operator=(conststd::basic_o

c++ - `is_trivially_destructible` 不适用于继承类

#includeusingnamespacestd;classNoConstructOperation{protected:NoConstructOperation()=default;virtual~NoConstructOperation()=default;public:NoConstructOperation(constNoConstructOperation&)=delete;NoConstructOperation&operator=(NoConstructOperation&)=delete;NoConstructOperation(NoConstructOperatio

c++ - 在 C++ 中重载 new、delete

我遇到这一行是stroustrup运算符函数必须是成员或至少采用一个用户定义类型的参数(重新定义new和delete运算符的函数不需要)。operatornew和operatordelete不是将用户定义的类型作为它们的参数之一吗?这是什么意思,我在这里遗漏了什么吗 最佳答案 Stroustrup的引述显然适用于运算符重载。C++语言仅支持用户定义类型的运算符重载。这意味着重载函数(operator)必须是用户定义类型的成员,或者是具有至少一个用户定义类型参数的独立函数。这正是相关引述的意思。但独立(非成员(member))oper

C++ 初学者 : what is the point of using a variable by reference if using "const"?

我想知道这个函数声明中的逻辑:CMyException(conststd::string&Libelle=std::string(),...按引用使用变量有什么意义?通常,只要变量可能在内部被修改,您就会通过引用传递一个变量...因此,如果您使用关键字const,这意味着它永远不会被修改。这是矛盾的。谁能给我解释一下? 最佳答案 实际上引用是用来避免不必要的对象拷贝。现在,要理解为什么使用const,试试这个:std::string&x=std::string();//error编译会报错。这是因为表达式std::string()创

JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\r, \n, \t) is

JSONparseerror:Illegalcharacter((CTRL-CHAR,code31)):onlyregularwhitespace(\r,\n,\t)isallowedbetweentokens;nestedexceptioniscom.fasterxml.jackson.core.JsonParseException:Illegalcharacter((CTRL-CHAR,code31)):onlyregularwhitespace(\r,\n,\t)isallowedbetweentokensat[Source:(org.springframework.util.Strea

c++ - 我应该在我的 C++ WIn32 应用程序中重写 operators new/delete

我知道Microsoft自己曾经建议通过调用HeapCreate()和HeapAlloc()来覆盖operatornew,但那是不久前的事了。有关详细信息,请参阅KB139638。在Win32上重写new/delete是否仍然有益?推荐的实现方式是什么?TIA。 最佳答案 这篇文章说你可以做,而不是说你应该。其中的代码写得很糟糕,一点也不有趣,而且它不是线程安全的。通常,提供的new和delete实现可以很好地满足所有一般编程需求。只有当您确定了重新实现可以解决的特定问题时,您才应该考虑重新实现它们。

c# - Windows Mobile 开发 : C++ or C# -- which one is better? 为什么?

在进行WindowsMobile开发时,我应该使用哪种语言?C#或C++或其他?为什么一个比另一个好? 最佳答案 这取决于您编写的代码。可以通过C#中的P/Invoke对操作系统进行native调用,但通过nativeC++进行广泛使用可能更容易。您还需要C++才能使用一些未被CompactFramework包装的硬件。大多数硬件(GPS、相机等)都可以通过CF获得。如果您使用的是WinMobile6.x设备,您可能最好使用C#。除了硬件之外,PocketOffice(POOM)的对象模型也可用于C#,因此您可以与其集成。值得注意的

c++ - C++ delete 语句的动态是什么?

这只是出于好奇,因为除了最基本的用途外,我没有在c++中使用过new和delete。我知道delete会释放内存。我想知道的是它如何处理更复杂的情况?例如,如果我有这样一个用户定义的类:classMyClass{public:MyClass();~MyClass(){delete[]intArray;}//publicmembershereprivate:int*intArray;};假设该类以某种方式为intArray分配内存,然后在析构函数中释放它,如果我这样使用该类会怎样:MyClass*myClass=newMyClass();并稍后使用deletemyclass;发布它del