小编Mat*_*ice的帖子

#pragma曾经vs包括守卫?

我正在研究一个已知只能在Windows上运行并在Visual Studio下编译的代码库(它与excel紧密集成,所以它不会去任何地方).我想知道我是否应该使用传统的包含警卫或#pragma once用于我们的代码.我认为让编译器处理#pragma once会产生更快的编译,并且在复制和粘贴时不易出错.它也稍微不那么难看;)

注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards,但这会在包含的文件和包含文件之间增加紧密耦合.通常它没关系,因为防护应该基于文件名,并且只有在你需要改变包含名称时才会改变.

c++ coding-style

343
推荐指数
10
解决办法
19万
查看次数

使用C++构造函数的默认参数

拥有使用默认参数的类构造函数是一种好习惯,还是应该使用单独的重载构造函数?例如:

// Use this...
class foo  
{
private:
    std::string name_;
    unsigned int age_;
public:
    foo(const std::string& name = "", const unsigned int age = 0) :
        name_(name),
        age_(age)
    {
        ...
    }
};

// Or this?
class foo  
{
private:
    std::string name_;
    unsigned int age_;
public:
    foo() :
    name_(""),
    age_(0)
{
}

foo(const std::string& name, const unsigned int age) :
        name_(name),
        age_(age)
    {
        ...
    }
};
Run Code Online (Sandbox Code Playgroud)

这两个版本似乎都有用,例如:

foo f1;
foo f2("Name", 30);
Run Code Online (Sandbox Code Playgroud)

您更喜欢或推荐哪种风格?为什么?

c++ constructor coding-style overloading

111
推荐指数
6
解决办法
21万
查看次数

读者/作者用C++锁定

我正在寻找一个很好的C++读写器锁.我们有一个不常见的作家和许多常见读者的用例,并希望为此进行优化.我更喜欢跨平台的解决方案,但只有Windows可以接受.

c++ multithreading locking

63
推荐指数
6
解决办法
7万
查看次数

调用QueryPerformanceCounter时会发生什么?

我正在研究在我们的系统中使用QueryPerformanceCounter的确切含义,并试图了解它对应用程序的影响.我可以看到在我的4核单CPU机器上运行它需要大约230ns才能运行.当我在24核4 cpu xeon上运行它需要大约1.4ms才能运行.更有趣的是,在我的机器上运行多个线程时,它们不会相互影响.但是在多CPU机器上,线程会导致某种交互,导致它们相互阻塞.我想知道他们都在查询总线上是否有一些共享资源?当我调用QueryPerformanceCounter时它到底发生了什么?它真正测量了什么?

c++ windows winapi timing

19
推荐指数
1
解决办法
6977
查看次数

如何使用CherryPy配置IP地址?

我正在使用python和CherryPy创建一个约2人使用的简单内部网站.我使用带有CherryPy.quickstart的内置网络服务器,并且从不搞乱配置文件.我最近更换了机器,所以我安装了最新的Python和cherrypy,当我运行该站点时,我可以从localhost:8080访问它,但不能通过IP或Windows机器名称访问它.它可能是机器配置差异或CherryPy或Python的较新版本.我有什么想法可以绑定到正确的IP地址?

编辑:为了说清楚,我目前根本没有配置文件.

python cherrypy

17
推荐指数
3
解决办法
2万
查看次数

如何在python中查看perforce中的文件?

我想在python中编写一些脚本,对源代码进行一些自动更改.如果脚本确定需要更改文件,我想首先将其从perforce中检出.我不关心办理登机手续,因为我总是想先建立和测试.

python scripting perforce

15
推荐指数
2
解决办法
2万
查看次数

std :: map <int,int>和std :: map <const int,int>之间有区别吗?

据我所知,std :: map中值对中的键在插入后无法更改.这是否意味着使用键模板参数创建一个映射为const无效?

std::map<int, int> map1;
std::map<const int, int> map2;
Run Code Online (Sandbox Code Playgroud)

c++ stl stdmap std

8
推荐指数
1
解决办法
3392
查看次数

在多台计算机上扩展多线程应用程序

我正在做一个项目我们需要更多的性能.随着时间的推移,我们不断改进设计,使其更加并行(包括线程和分布式).然后最新的一步是将其中的一部分移动到具有16个核心的新机器上.我发现我们需要重新思考如何在共享内存模型中扩展到那么多内核.例如,标准内存分配器不够好.

人们会推荐哪些资源?

到目前为止,我发现Sutter的专栏Dobbs博士是一个良好的开端.我刚刚获得了多处理器编程的艺术和关于英特尔线程构建模块的O'Reilly书籍

malloc performance multithreading scalability

6
推荐指数
1
解决办法
863
查看次数

Boost Python的性能

我正在研究一个我正在尝试使用boost python的项目.在研究如何组织我的python接口时,我遇到了一个注释,声称存在boost python的性能问题.它的性能是否有任何实际问题?

在这种情况下,我正在使用一个大型项目,我们希望将其中的一些暴露给python.我发现boost python可以很容易地暴露我已经拥有的类.所以我更喜欢使用boost python的暴露类的方法,因为它很容易.除非有人有一个易于使用和高效的替代方案.

c++ python boost-python

5
推荐指数
1
解决办法
2478
查看次数