我的项目使用CMake作为其构建系统,我希望它能够执行我的Boost.Test测试用例.
我怎样才能做到这一点?在Boost.Build中,我可以这样做:
import testing ;
use-project /my_lib : ../src ;
unit-test my_test
: my_test.cpp
/my_lib
boost_unit_test_framework
;
lib boost_unit_test_framework ;
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试使用我的Android应用程序支持更大范围的设备.然而,即使在阅读了Android Dev Guide对此问题的评论之后,我仍然不确定为什么我应该为ldpi,mdpi和hdpi提供不同的图形.
我知道图像会自动缩放,所以我只能提供hdpi图形,让设备完成剩下的工作.如果设备能够降低扩展质量吗?这会是性能问题吗?现在我更担心将APK大小乘以3.
我在我的应用程序中使用了几个按钮,但layout_width/height"wrap_content"和"fill_parent"看起来都很奇怪.前者很小而后者太大 - 看起来都很奇怪,前者不容易用手指击打.
我应该如何调整按钮尺寸?倾角定义它们的尺寸是否典型?或者我应该使用填充"fill_parent"?按钮在我的应用程序中看起来很奇怪,在其他应用程序中则不然
我需要一个类的模拟实现 - 用于测试目的 - 我想知道我应该如何做到这一点.我可以想到两种一般方式:
我习惯于在Java中使用它的第一种方式,它也很常见(可能因为它们有专用的接口类型).但是我几乎没有在C++中看到这种界面沉重的设计,因此我很想知道.
第二种方式可能会起作用,但我不禁想到它有点难看.有人这样做吗?
如果我按照第一种方式,我需要一些命名帮助.我有一个音频系统,负责加载声音文件和播放加载的曲目.我正在使用OpenAL,因此我将接口称为"音频"和实现"OpenALAudio".但是,这意味着所有特定于OpenAL的代码都必须进入该类,这感觉有点限制.另一种方法是保留类"名称"Audio"并为界面找到不同的名称,例如"AudioInterface"或"IAudio".你会建议哪个,为什么?
我不知道如何在C++中订购我的函数.在C中,我只是放置了一个函数,该函数使用该函数下面的另一个函数,尽可能接近 - 这很常见.像这样:
void bar()
{
}
void foo()
{
bar();
}
Run Code Online (Sandbox Code Playgroud)
但是,在C++中,有几种类型的函数:
我目前正在使我的函数顺序依赖于它们在.hpp文件中的排序方式,例如:
class Foo_bar {
public:
Foo_bar();
void foo();
private:
int some_member;
void bar();
Run Code Online (Sandbox Code Playgroud)
但是现在,如果构造函数使用foo()或bar(),它们将位于源文件中的构造函数下方,与我通常的顺序不一致.我当然可以重新排序我的标题以考虑到这一点:
class Foo_bar {
private:
int some_member;
void bar();
public:
void foo();
Foo_bar();
Run Code Online (Sandbox Code Playgroud)
但我认为那是一团糟.
此外,在Java中,与我的第一个示例相反似乎很常见:
void foo()
{
bar();
}
void bar()
{
}
Run Code Online (Sandbox Code Playgroud)
这可能是由于OOP中常见的自上而下的思维,与程序/函数式编程中常见的自下而上的思维形成鲜明对比.但是,对于没有原型的自由函数,这种自上而下的风格是不可能的.
甚至可以以一致的方式在C++中命令函数吗?
我必须管理Java构建,我不知道如何最好地管理软件的版本,以便它可以显示在一个关于对话框等.
你们是怎么做到的?我们正在使用Maven,我可以以某种方式重用pom.xml中定义的版本吗?我也有兴趣知道Ant通常是如何完成的.