小编Ano*_*ous的帖子

如何使用QueryPerformanceCounter?

我最近决定我需要为我的Timer类从使用毫秒更改为微秒,经过一些研究后,我认为QueryPerformanceCounter可能是我最安全的选择.(关于Boost::Posix它可能不适用于Win32 API 的警告让我有点失望).但是,我不确定如何实现它.

我正在做的是调用GetTicks()我正在使用的任何esque函数并将其分配给Timer的startingTicks变量.然后找到通过的时间量我只是从中减去函数的返回值startingTicks,当我重置计时器时,我再次调用该函数并为其分配startingTicks.不幸的是,从我看到的代码中,它并不像调用那么简单QueryPerformanceCounter(),而且我不确定我应该传递什么作为它的参数.

c++ windows timer

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

模板元编程 - 使用Enum Hack和静态Const的区别

我想知道在使用模板元编程技术时使用静态const和枚举黑客有什么区别.

EX :(斐波那契通过TMP)

template< int n > struct TMPFib {
  static const int val =
    TMPFib< n-1 >::val + TMPFib< n-2 >::val;
};

template<> struct TMPFib< 1 > {
  static const int val = 1;
};

template<> struct TMPFib< 0 > {
  static const int val = 0;
};
Run Code Online (Sandbox Code Playgroud)

template< int n > struct TMPFib {
  enum {
    val = TMPFib< n-1 >::val + TMPFib< n-2 >::val
  };
};

template<> struct TMPFib< 1 > {
  enum { val = …
Run Code Online (Sandbox Code Playgroud)

c++ templates metaprogramming

54
推荐指数
2
解决办法
6268
查看次数

按值或按引用传递C++字符串

我想知道C++字符串是否被认为足够小,以便在通过值而不是通过引用传递时更高效.

c++ string

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

从文件中读取,清除它,写入它

我正在尝试从文本文件中读取数据,清除它,然后使用fstream该类按顺序写入它.

我的问题是如何在阅读后清除文件.我知道我可以打开一个文件并同时清除它,但是我可以在流上调用一些函数来清除它的内容吗?

c++ file-io file

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

静态变量与成员

如果你有一个类的数据将被修改并需要在整个程序中保留,但只在一个成员函数中使用,是否优先使该变量成为它所在的例程的局部静态变量或使其成为班上的一员?

c++

13
推荐指数
2
解决办法
2680
查看次数

boost :: system ::(...)_ category定义但未使用

我目前正在收到编译器警告,类似于我在问题标题中给出的警告.警告如......

warning: 'boost::system::generic_category' defined but not used

warning: 'boost::system::posix_category' defined but not used

warning: 'boost::system::errno_ecat' defined but not used

warning: 'boost::system::native_ecat' defined but not used

据我所知,该计划不受任何影响.但是,我不喜欢挂着警告,但我不知道这些警告试图告诉我什么,除了那些定义和与boost相关的东西悬挂在某个没有被使用的地方.但是,我已经定义过的所有东西,我已经习惯了.我正在使用的boost库是随机库和文件系统库.

当我检查警告的来源时,它会调出Boost的error_category.hpp文件并突出显示一些static const被注释为"预定义错误类别"或"已弃用的同义词"的文件.也许这个问题与我在使用库时的错误处理(或缺少)有关?

任何人都可以对这些警告突然出现的原因有所了解吗?我完全错过了什么吗?

PS警告是最高级别.

c++ boost compiler-warnings unused-variables

11
推荐指数
2
解决办法
7157
查看次数

编写深拷贝 - 复制指针值

在为包含动态分配内存的指针的类编写复制构造函数时,我有一个问题.

如何指定我希望将复制的对象的指针值复制到复制到对象的指针.显然这样的事情不起作用......

*foo = *bar.foo;
Run Code Online (Sandbox Code Playgroud)

因为,bar对象被删除(首先复制对象的目的),这只是复制到对象的foo指向同一个地方.

这里有什么解决方案?如何获取动态分配的内存的值,并将其复制到不同的地址?

c++ pointers copy

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

具有"共同"标题的实践

通常我不是指实用程序,我的意思是包含多个类型想要使用的枚举的标题,等等.

例如,如果多个类型可以有一个Color枚举,那么您可以使其可用.有些人会说它把它"放在最适合的"类中,但是这会产生头依赖性问题.

我真的不喜欢创建一个包含这样的东西的标题,因为它似乎使代码更复杂.我正在寻找其他人在遇到这样的情况时所采用的技术的想法.如果他们使用"Common"标题等

c++ header

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

如何处理所需的默认构造函数

在为我的一个类(包含其他UDT的一些对象)编写一个复制构造函数时,我需要为这些UDT创建一个默认构造函数,即使它们从来没有真正意图拥有一个.

是否可以实现一个空白的默认构造函数并完成它?调用默认构造函数的唯一时间是在复制期间,创建对象时,然后将相应对象的值复制到其中.因此,在默认构造函数中分配给对象的任何值都将永远不会被使用.

我看到的问题是一些成员变量没有在一个空的默认构造函数中初始化.我应该只写一个给出虚拟值的东西吗?还有其他推荐的方法吗?

编辑:我知道如果我要为其他类定义复制构造函数,复制构造函数不需要默认构造函数,但我没有,所以它确实需要它.

c++

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

函数重载的歧义-整数与双精度

假设我希望有2个函数,一个函数在给定范围内生成一个随机整数,另一个函数在给定范围内生成一个随机双精度数。

int GetRandomNumber( int min, int max );
double GetRandomNumber( double min, double max );
Run Code Online (Sandbox Code Playgroud)

请注意,方法名称相同。我正在尝试决定是命名功能还是...

int GetRandomInteger( int min, int max );
double GetRandomDouble( double min, double max );
Run Code Online (Sandbox Code Playgroud)

第一种选择的好处是用户不必担心他们正在呼叫哪个。他们可以只使用整数或双精度值调用GetRandomNumber并获得结果。

The second option is more explicit in the names, but it reveals unneeded information to the caller.

I know this is petty, but I care about petty things.

Edit: How would C++ behave regarding implicit conversion.

Example:

GetRandomNumber( 1, 1 ); 
Run Code Online (Sandbox Code Playgroud)

This could be implicitly converted for the GetRandomNumber …

ambiguity

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