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