小编P45*_*ent的帖子

如何让devenv.exe在控制台上显示其输出

我正在使用devenv/Rebuild,但是没有输出写入控制台.这很烦人,因为我想跟踪进度.

如果我使用/ out log.txt然后它写入"log.txt",当然,我可以在构建后检查.

也许有一些符号foo代表控制台所以我可以写/输出foo?

visual-c++

12
推荐指数
1
解决办法
3756
查看次数

添加到std :: map的元素是否自动初始化?

假设我有一张地图

std::map<int, double> foo;

是否foo[2] += 3.0;定义了我写作的行为?也就是说,0.0在我的情况下,是否有任何隐式添加的地图元素自动初始化(希望如此)?

如果没有,我是否引入了卡车装载的未定义行为?如果是这样,我可以用分配器做一些时髦的事情来强制执行初始化0.0吗?

c++ dictionary initialization

12
推荐指数
1
解决办法
143
查看次数

分配给std :: shared_ptr成员变量

我有一个类foo,其成员bar类型std::shared_ptr<int>:

class foo
{
    std::shared_ptr<int> bar;
    /*other stuff here*/
};
Run Code Online (Sandbox Code Playgroud)

在I类要分配new intbar.但我不能写,bar = new int();因为指针没有公共赋值运算符.

如何应该我做这个?我可以std::move或者std::swap但这些都不对.

c++ c++11

12
推荐指数
2
解决办法
1160
查看次数

为什么MSVC选择长期为-2147483648的类型?

我的片段:

auto i = -2147483648;
int j = 3;
std::swap(i, j); // Compile error about mismatched types here. 
Run Code Online (Sandbox Code Playgroud)

编译器声明文字i是a long long.这是为什么?-2147483648适用于intMSVC x64.

我的编译器是MSVC,目标是64位.

c++ visual-c++

12
推荐指数
1
解决办法
643
查看次数

调用构造函数时,你有多明确?

我有这门课

struct foo
{
    explicit foo(const std::uint32_t& x, const std::uint32_t& y);
};
Run Code Online (Sandbox Code Playgroud)

和方法

int main()
{
    std::int32_t x = -1;
    std::int32_t y = -1;
    foo f(x, y);
}
Run Code Online (Sandbox Code Playgroud)

在我的编译器(MSVC2012)上,它编译并运行值xy包含在无符号类型中.我没想到这一点,但由于类型不匹配而期待编译错误.

我错过了什么?

c++ c++11

11
推荐指数
1
解决办法
263
查看次数

替换std :: bind2nd

我有一个foostd::vector<int>.它表示一组范围的"边缘"值.

例如,如果foo是{1,3,5,7,11},那么范围是1-3,3-5,5-7,7-11.对我而言,这相当于4个时期.请注意,每个句点包括范围中的第一个数字,而不是最后一个数字.所以在我的例子中,8出现在第3个(从零开始)的时期.7也出现在第3期.11以上不会出现在任何地方.2出现在第0期.

鉴于bar哪个是int,我使用

std::find_if(
    foo.begin(),
    foo.end(),
    std::bind2nd(std::greater<int>(), bar)
) - foo().begin() - 1;
Run Code Online (Sandbox Code Playgroud)

给我应该包含的时期bar.

我的问题:std::bind2nd已被弃用,所以我应该重构.使用更新函数的等效语句是什么?std::bind不会以明显的方式"堕入".

c++ bind bind2nd c++11

11
推荐指数
3
解决办法
4606
查看次数

autocloseable习语上可能的空指针异常

考虑以下try-with-resources块:

try (Foo foo = getAFoo()) {

}
Run Code Online (Sandbox Code Playgroud)

对于某些Foo实现的类java.lang.AutoCloseable.

如果getAFoo()要返回null,那么是否会在结束括号上抛出空指针异常(由于运行时试图调用close)?

java try-with-resources

11
推荐指数
1
解决办法
1387
查看次数

使用基类作为指针的安全容器

所以我在构造函数中查看了这个问题内存分配异常,我的老板在他的漂亮答案中说明析构函数不会被调用.

这让我想知道,

如果我要写

struct XBase
{
    int* a;
    char* b;
    float* c;

    XBase() : a(nullptr), b(nullptr), c(nullptr) {} 
    ~XBase()
    {
        delete[] a; delete[] b; delete[] c;
    }   
};
Run Code Online (Sandbox Code Playgroud)

struct X : XBase
{
    X() {
        a = new int[100];
        b = new char[100];
        c = new float[100];
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,如果c失败的分配(抛出异常),那么XBase将调用析构函数,因为已经构造了基类.

没有内存泄漏?

我对么?

c++

11
推荐指数
1
解决办法
164
查看次数

如果一个类是最终的,我如何告诉使用反射

假设我有一个班级:

public final class Foo

以及Class clz引用该类的反映参考.

我怎么知道(使用clz)那Foofinal什么?

java reflection

10
推荐指数
2
解决办法
984
查看次数

我怎么能(暂时)取消打字?

我使用的是第三方库,typedefŠ bytechar.

(这char可能是邪恶的,signedunsigned取决于编译器的选择).

不幸的是,这typedef已经蔓延到我维护的代码库中,我很想删除它们:uint8_t直接使用.

有一种方法,一旦我到达我的代码(即直接后),我可以以某种方式撤消这个?typedef#include <3rdpartylib>

一旦我删除了所有的bytes,我将能够从我的代码库中删除"解决方案" .

c++

10
推荐指数
1
解决办法
2872
查看次数