我正在研究一个已知只能在Windows上运行并在Visual Studio下编译的代码库(它与excel紧密集成,所以它不会去任何地方).我想知道我是否应该使用传统的包含警卫或#pragma once用于我们的代码.我认为让编译器处理#pragma once会产生更快的编译,并且在复制和粘贴时不易出错.它也稍微不那么难看;)
注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards,但这会在包含的文件和包含文件之间增加紧密耦合.通常它没关系,因为防护应该基于文件名,并且只有在你需要改变包含名称时才会改变.
拥有使用默认参数的类构造函数是一种好习惯,还是应该使用单独的重载构造函数?例如:
// 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++读写器锁.我们有一个不常见的作家和许多常见读者的用例,并希望为此进行优化.我更喜欢跨平台的解决方案,但只有Windows可以接受.
我正在研究在我们的系统中使用QueryPerformanceCounter的确切含义,并试图了解它对应用程序的影响.我可以看到在我的4核单CPU机器上运行它需要大约230ns才能运行.当我在24核4 cpu xeon上运行它需要大约1.4ms才能运行.更有趣的是,在我的机器上运行多个线程时,它们不会相互影响.但是在多CPU机器上,线程会导致某种交互,导致它们相互阻塞.我想知道他们都在查询总线上是否有一些共享资源?当我调用QueryPerformanceCounter时它到底发生了什么?它真正测量了什么?
我正在使用python和CherryPy创建一个约2人使用的简单内部网站.我使用带有CherryPy.quickstart的内置网络服务器,并且从不搞乱配置文件.我最近更换了机器,所以我安装了最新的Python和cherrypy,当我运行该站点时,我可以从localhost:8080访问它,但不能通过IP或Windows机器名称访问它.它可能是机器配置差异或CherryPy或Python的较新版本.我有什么想法可以绑定到正确的IP地址?
编辑:为了说清楚,我目前根本没有配置文件.
我想在python中编写一些脚本,对源代码进行一些自动更改.如果脚本确定需要更改文件,我想首先将其从perforce中检出.我不关心办理登机手续,因为我总是想先建立和测试.
据我所知,std :: map中值对中的键在插入后无法更改.这是否意味着使用键模板参数创建一个映射为const无效?
std::map<int, int> map1;
std::map<const int, int> map2;
Run Code Online (Sandbox Code Playgroud) 我正在做一个项目我们需要更多的性能.随着时间的推移,我们不断改进设计,使其更加并行(包括线程和分布式).然后最新的一步是将其中的一部分移动到具有16个核心的新机器上.我发现我们需要重新思考如何在共享内存模型中扩展到那么多内核.例如,标准内存分配器不够好.
人们会推荐哪些资源?
到目前为止,我发现Sutter的专栏Dobbs博士是一个良好的开端.我刚刚获得了多处理器编程的艺术和关于英特尔线程构建模块的O'Reilly书籍
我正在研究一个我正在尝试使用boost python的项目.在研究如何组织我的python接口时,我遇到了一个注释,声称存在boost python的性能问题.它的性能是否有任何实际问题?
在这种情况下,我正在使用一个大型项目,我们希望将其中的一些暴露给python.我发现boost python可以很容易地暴露我已经拥有的类.所以我更喜欢使用boost python的暴露类的方法,因为它很容易.除非有人有一个易于使用和高效的替代方案.
c++ ×6
python ×3
coding-style ×2
boost-python ×1
cherrypy ×1
constructor ×1
locking ×1
malloc ×1
overloading ×1
perforce ×1
performance ×1
scalability ×1
scripting ×1
std ×1
stdmap ×1
stl ×1
timing ×1
winapi ×1
windows ×1