可能重复:
根据一组编码标准检查C/C++源代码的免费工具?
我正在开始一个涉及我无法直接访问的几个人的c ++项目.我们就编码风格指南达成了一致意见,例如根据可访问性定义了班级成员的外壳(即帕尔卡案中的私人情况,骆驼案中的公众和受保护人.请不要开始讨论风格指南.我已经足够了.谢谢.).
我现在要做的是生成一些样式指南违规报告.我不想强制执行样式指南,例如在提交时,但我想提供一个工具,每个开发人员可以使用它来查看他/她的代码违反样式指南的位置(如果他/她想要检查它).
你知道一个可以做这项工作的工具吗?
(它需要能够理解一些C++,例如检测类成员的可访问性.)
我正在为C++中基于接口的运行时对象组合寻找一个简单,轻量级的解决方案.我希望能够指定实现这些的接口(方法声明)和对象(可通过工厂模式创建).在运行时,我希望机制实例化这些对象并基于接口连接器互连这些对象.在运行时调用的方法应该保持相当便宜,即每次调用只有几个指令,与仿函数模式相当.
整个事情需要与平台无关(至少MS Windows和Linux).解决方案需要获得许可,如开源LGPL或(甚至更好)BSD或其他东西,特别是允许使用商业产品.
我不想要的是网络,进程间通信,额外的编译器步骤(一次性代码生成是可以的),或者对某些重型库(如Qt)的依赖性等重要事项.
具体方案是:我在一个更大的软件中有这样一种机制,但机制并没有很好地实现.接口由Dlls导出的基类实现.这些Dll还导出工厂函数,以基于手写的类ID实例化实现对象.
在我现在开始重新设计并自己实现更好的东西之前,我想知道是否有更好的东西.
编辑:该解决方案还需要支持多线程环境.此外,由于一切都将在同一个过程中发生,因此我不需要任何类型的数据序列化机制.
编辑:我知道这些机制是如何运作的,我知道几本教学书籍都包含相应的例子.我不想自己写.我的问题的目的是:是否存在某种"行业标准"的库?这是一个小问题(在一个过程中),我真的只是在寻找一个小解决方案.
编辑:我有建议添加一个我真正想做的伪代码示例.所以这里是:
在某个地方我想定义接口.我不在乎它是C-Headers还是一些语言和代码生成.
class interface1 {
public:
virtual void do_stuff(void) = 0;
};
class interface2 {
public:
virtual void do_more_stuff(void) = 0;
};
Run Code Online (Sandbox Code Playgroud)
然后我想提供(多个)实现.这些甚至可以放在基于Dll的插件中.特别是,这两个类我可以在两个不同的Dll中实现,这些Dll在编译时彼此不了解.
class A : public interface1 {
public:
virtual void do_stuff(void) {
// I even need to call further interfaces here
// This call should, however, not require anything heavy, like data serialization or something.
this->con->do_more_stuff();
}
// Interface connectors of some kind. Here I use something …Run Code Online (Sandbox Code Playgroud) 我目前正在编写我的第一个Windows Phone(8)应用程序,这也是我的第一个Xaml应用程序.所以很可能我只是没有找到我自己的问题的解决方案,因为我不知道谷歌要用哪些词.我试过了,但没发现任何有用的东西 我发现了一个,但它没有帮助:
这是我的XAML的重要部分:
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel VerticalAlignment="Top">
<TextBlock x:Name="InfoText" TextWrapping="Wrap" VerticalAlignment="Top" Text="VersionInfoText"/>
</StackPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
我将以编程方式更改我的TextBlock的内容InfoText.文本可能足够短,完全适合,或者可能相当长.这就是我将它嵌入ScrollViewer的原因.(顺便说一句,稍后会有更多的控件添加到StackPanel.)
如果ScrollViewer无法进一步滚动,则会产生这些"超弹"效果.如果文本很大,这很好,但是当没有任何东西要滚动时,我不希望这个效果是visilbe.
我试过VerticelScrollBarVisibility="Disable",它成功地禁用了效果.现在我的问题:
我可以自动地(通过XAML魔法)之间切换Auto,并Disable根据我的StackPanel和我的ScrollViewer的海特的高度?
我希望Auto能做到这一点,但它没有(在VS2013仿真器WVGA中测试).