![](/img/trans.png)
[英]Type of a global object dependent on boolean flag (determined at runtime)
我想做類似下面的事情 type1_t和type2_t是自定義類。 上面代碼片段的問題是object對於每個 if else 子句都是局部的,但我不能在 if-else 之上定義它,因為類型依賴於flag 。 后期編輯:似乎我無法在我正在使用的代碼庫中使用 C++17 功能,因此std::vari ...
[英]Type of a global object dependent on boolean flag (determined at runtime)
我想做類似下面的事情 type1_t和type2_t是自定義類。 上面代碼片段的問題是object對於每個 if else 子句都是局部的,但我不能在 if-else 之上定義它,因為類型依賴於flag 。 后期編輯:似乎我無法在我正在使用的代碼庫中使用 C++17 功能,因此std::vari ...
[英]In smart_ptr constructor, why pass by value and not pass by const ref?
我一直在閱讀 Scott Meyer 的“Effective C++”和“More Effective C++”中關於智能指針的部分。 其中,有一個auto_ptr的實現,其構造函數編寫如下: 我的問題是:為什么構造函數中的指針不是由 const 引用傳遞的? p在構造函數中沒有改變,所以co ...
[英]Declare template if it does not already exist
澄清:我並不是真的在這里尋找解決方法,因為最簡單的解決方法就是安裝更新版本的庫。 只是問這個特定的事情是否可能。 更新:我剛剛意識到這個庫不僅僅是頭文件,這使得下面描述的用例不可行。 不過,抽象的問題仍然存在。 我有一些針對在其 API 中使用auto_ptr的第三方庫構建的代碼。 (存在該 ...
[英]Example of C++ std::vector<std::auto_ptr<T>> that compiles but fails
什么是簡單的 C++ 程序,其中std::vector<std::auto_ptr<T>>編譯但無法正確執行,而帶有std::vector<std::unique_ptr<T>>的同一程序編譯並工作正確,對於某些數據類型T ? 我知道std::aut ...
[英]c++ auto_ptr destroyed when passed into a function
假設我們有 我們有一個主要的 function: 書中說“當 UsePointer() 返回時,object 被銷毀,因為變量 spObj 從 scope 中消失,因此被銷毀” 我的問題是: 傳給UsePointer function時指針是否被復制? 因此所有權轉移了? 如果不希望 spObjec ...
[英]Using auto_ptr<std::ofstream> object
我需要將我的錯誤和日志消息存儲到文件中。 這是代碼示例: 如果我將cerrFile定義為全局變量,它會正確釋放嗎? 我需要像使用常規指針一樣在退出之前關閉日志文件嗎? ...
[英]Why unique_ptr works but auto_ptr doesn’t with STL
我已經在這些問題上提到了很多 StackOverflow 鏈接,其中auto_ptr無法與 STL 一起正常工作的原因是std::auto_ptr<>不滿足可復制和可分配的要求(因為auto_ptr有一個假的復制構造函數,基本上轉讓所有權)。 但是即使unique_ptr也沒有復制 c ...
[英]Why is using a reference or unique pointer member of a class a bad thing?
在赫伯·薩特(Herb Sutter)和安德烈·亞歷山大(Andrei Alexandrescu)在規則52中撰寫的“ C ++編碼標准。101規則,指南和最佳實踐”一書中,最后的報價是: “在極少數情況下,具有奇怪類型的成員的類(例如,引用,std :: auto_ptrs)是一個例 ...
[英]unique_ptr/auto_ptr look alike with custom deleter for c++98
auto_ptr不支持自定義刪除器,tr1 shared_ptr對我來說不是一個好選擇。 在c11之前,對於unique_ptr / auto_ptr與自定義刪除器看起來有什么好的選擇嗎? ...
[英]Resurrecting std::auto_ptr in GCC when compiling with -std=c++17
是否有宏或編譯器標志可以讓我在帶有-std=c++17 GCC 7/8中繼續使用auto_ptr ? 我已經輕松地找到了適用於clang和MSVC的宏,但是我的Google-fu不夠好,無法找到GCC的解決方案。 我不想使用-fpermissive (這會讓我無意間做了太多我不應該做的事 ...
[英]Alternative library/template class for the deprecated auto_ptr in C++17
具有共享的項目庫,必須使用各種編譯器C ++ 17 C ++ 03等進行編譯。因此,如果要保持代碼的通用性,僅適當地使用更好的unique_ptr或不太理想的auto_ptr是不理想的。 看一下#ifdef類型的解決方案,但它會變得混亂。 加上對經過良好測試和測試的編碼進行編輯並不是一個 ...
[英]What is the difference between *ptr and *ptr.get() when using auto_ptr?
為什么我將get()與* ,而不是只調用* ? 請考慮以下代碼: 結果完全一樣。 get()更安全嗎? ...
[英]How to debug regasm (what types get registered)
我們有一個托管C ++ DLL,當在regasm注冊時,它似乎向注冊表添加了一些垃圾類型。 在Blah類中,任何利用MyTeam.ManagedAutoPtr的私有變量都將添加到注冊表中。 我現在的問題是,是否可以調試為什么將某些內容添加到注冊表? 再氣/冗長無濟於事 Blah的相 ...
[英]Is get() reliable when an auto_ptr is uninitialized?
請考慮以下代碼: get()成員函數是否是檢查p尚未初始化的標准且可靠的方法? 它是否總是返回0,無論平台,編譯器,編譯器的優化標志等如何? ...
[英]Misleading performance warning for auto_ptr type passed by value
我正在使用Cppcheck 1.75檢查我的項目之一,並且此代碼(為清楚起見而減少): 我收到此新的性能警告: ID:passedByValue 摘要:函數參數“ task”應通過引用傳遞。 消息:參數“任務”按值傳遞。 它可以作為(const)引用傳遞,通常 ...
[英]Why auto_ptr initialization using the assignment syntax is not allowed
我正在閱讀本書C ++標准庫書 這是我無法理解的部分: 請注意,類auto_ptr <>不允許使用賦值語法初始化具有普通指針的對象。 我不明白為什么不允許這樣做。 他們試圖通過不允許使用賦值語法進行初始化來避免哪些陷阱 ...
[英]How is std::auto_ptr initialized with a rvalue?
注釋行: bar(foo())不編譯,因為bar接受非const引用而foo返回rvalue。 但是第二行用std::auto_ptr編譯。 std::auto_ptr復制構造函數也接受非const引用。 為什么然后它編譯? 我在foo1使用了std::rand()來消除RVO(返回值 ...
[英]why there are template copy constructor and override operator function in auto_ptr?
為什么在auto_ptr中有模板復制構造函數和覆蓋操作符函數? C ++的ISO標准為auto_ptr指定了以下接口。 (這是直接從2003年標准中復制的。) 為什么有: 我想只需auto_ptr(auto_ptr&) throw(); 沒關系 。 ...
[英]My Auto Pointer works even after ownership transfer
據我所知,auto_ptr用於所有權轉讓的概念。 同樣,一旦一個自動指針將其所有權轉移給另一個自動指針,它就不再能夠引用它指向的對象。 但是,並非如下面的程序所示,我發現了這種情況。 我想念什么嗎? 請幫忙。 L1行:由於p1不再擁有所有權,這如何工作? L2行:由於p1不 ...
[英]Warning linking libxml++-2.6 (c++11 obsoltes std::auto_ptr). Shall I just ignore it?
將gcc與-std = c ++ 11一起使用 2.40.1 得到很多這樣的警告:/usr/include/libxml++-2.6/libxml++/parsers/saxparser.h:224:8:警告:不推薦使用'template class std :: auto_ptr ...