const-cast

    0熱度

    2回答

    我寫了一個簡單的日誌記錄類,在Windows上使用Visual Studio在C++中支持variadic模板。我創建了一個通用的Log函數模板,其中包含許多專業知識,以滿足可能輸入的通用組合。 #pragma once #include <Windows.h> #include <locale> #include <codecvt> #include <string> #includ

    1熱度

    2回答

    我使用的const_cast修改元素的initializer_list內,象下面這樣: #include <initializer_list> int main() { auto a1={1,2,3}; auto a2=a1;//copy or reference? for(auto& e:a1) { int*p=const_cast<int

    0熱度

    2回答

    考慮下面的函數返回一個大對象: std::list<SomethingBig> DoSomething() { std::list<SomethingBig> TheList; //do stuff return TheList; } 我想要得到的列表,而不是它的複製品。因爲如果我必須複製這些對象,性能價格是昂貴的。我知道返回值優化可能爲我照顧這個,但根據優化

    0熱度

    2回答

    我搜索了互聯網和StackOverflow關於const_cast <>以及它造成的困惑,我發現有用的東西,但是我仍然有一個問題。 考慮到這種代碼, #include <iostream> using namespace std; int main(void) { const int a = 1; int *p = const_cast<int*>(&a);

    2熱度

    1回答

    考慮下面的代碼: #include <set> struct X { int a, b; friend bool operator<(X const& lhs, X const& rhs) { return lhs.a < rhs.a; } }; int main() { std::set<X> xs; // some ins

    2熱度

    1回答

    這是更多的學術問題,因爲我知道通常要避免const_cast。 但是我正在研究第3章#27的Thinking in C++,Vol。 1. 創建一個double的double數組和一個volatile的volatile數組。通過每個數組索引 並使用const_cast分別將每個元素轉換爲非常量和非揮發性的 ,併爲每個元素分配一個值。 我看到如何const_cast單瓦爾: const int i

    0熱度

    1回答

    我正在寫入對非託管代碼中的WCF調用的響應。問題是我有一個整數,我想轉換成WS_STRING並回應。 std::towstring僅轉換爲wstring,不轉換爲WS_STRING。我怎樣才能做到這一點? 我看到有一箇舊的線程有類似的問題,但它似乎沒有答案。 int i = 100; responseWsString = std::to_wstring(i); //Throws compile

    1熱度

    2回答

    我想知道如果使用指針恆定整數時,有一個排序變量之間的隱式轉換的, 例如,如果我使用的變量類型的地址INT或const int的它接受,如果我使用普通指針爲int它不允許存儲常量的地址詮釋類型來存儲它,但是 ,這是爲什麼?在此先感謝 int i=4; const int ii=4; //pointer to constant int const int *pci=&i; //OK. pci

    2熱度

    1回答

    假設我們有一個帶有成員函數f的類A。 對外界來說,f只是計算一個值而不修改任何東西A;但在執行,它臨時修改A: class A { int f() const { tiny_change(b); // since copying "b" is expensive int result = compute(b); tiny_recover(b

    2熱度

    1回答

    我有以下的C++代碼。我可以在Linux機器上用g ++ 4.9.2編譯它。然後當我運行它時,它會打印10.看起來,創建了一個新對象並將其分配給在默認構造函數中使用const_cast創建的指針。沒有內存泄漏(我使用valgrind檢查過)。這是某種未定義的行爲還是合法的? #include <iostream> using namespace std; class A { p