假设我正在使用DOxygen/Visual studio兼容注释记录成员函数,如何在不创建编译器警告的情况下使用小于'<'的符号,但仍保持代码库中的可读性?
例如,如果我这样做:
/// <summary>
/// Verifies x < y
/// </summary>
bool VerifyIsLessThan(float x, float y);
Run Code Online (Sandbox Code Playgroud)
编译器说:
1>c:\MyProject\VerificationLib.h(246) : warning C4635: XML document comment applied to 'VerificationLib.VerifyIsLessThan(System.Single,System.Single)': badly-formed XML: Whitespace is not allowed at this location.
Run Code Online (Sandbox Code Playgroud)
有没有办法逃脱这种方式,使其在代码库和Doxygen生成的文档中仍然可读?
[编辑]
我开始认为这更像是视觉工作室方面而不是Doxygen.我们使用的形式应该适用于两者.原始问题中提到的警告来自visual studio而不是Doxygen.
深入挖掘它看起来像直接不支持逐字?
作为我正在构建的测试平台的一部分,我正在寻找一个简单的类来计算整数值的直方图(算法解决问题的迭代次数).答案应该是这样的:
Histogram my_hist = new Histogram();
for( uint i = 0; i < NUMBER_OF_RESULTS; i++ )
{
myHist.AddValue( some_result );
}
for( uint j = 0; j < myHist.NumOfBins; j++ )
{
Console.WriteLine( "{0} occurred {1} times", myHist.BinValues[j], myHist.BinCounts[j] );
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶有点谷歌搜索没有找到一个简洁的解决方案,但也许我没有找到正确的事情.那里有通用的解决方案还是值得我自己推出?
在我的项目中,我实现了基本的类CVector.该类包含指向原始浮点数组的float*指针.使用标准malloc()函数动态分配此数组.
现在我必须使用这样的向量加速一些计算.不幸的是,因为内存没有使用_mm_malloc()进行分配,所以它没有对齐.
据我所知,我有两个选择:
1)重写代码,分配内存以使用_mm_malloc(),例如使用如下代码:
void sub(float* v1, float* v2, float* v3, int size)
{
__m128* p_v1 = (__m128*)v1;
__m128* p_v2 = (__m128*)v2;
__m128 res;
for(int i = 0; i < size/4; ++i)
{
res = _mm_sub_ps(*p_v1,*p_v2);
_mm_store_ps(v3,res);
++p_v1;
++p_v2;
v3 += 4;
}
}
Run Code Online (Sandbox Code Playgroud)
2)第二个选项是使用_mm_loadu_ps()指令从未对齐的内存加载__m128,然后将其用于计算.
void sub(float* v1, float* v2, float* v3, int size)
{
__m128 p_v1;
__m128 p_v2;
__m128 res;
for(int i = 0; i < size/4; ++i)
{
p_v1 = _mm_loadu_ps(v1);
p_v2 = _mm_loadu_ps(v2);
res = _mm_sub_ps(p_v1,p_v2);
_mm_store_ps(v3,res); …Run Code Online (Sandbox Code Playgroud) 我在VisualStudio2010中创建小型Windows Forms编程,仅用于爱好.在发布它们之后,我使用.exe文件在其他PC上运行它们,而无需进行任何安装.这些PC运行Windows操作系统(7,vista,XP).我编写代码的PC有Win XP,并且编程随时都能正常工作.
现在我在另一台运行Win 8.1的PC上编写了另一个prog,每当我尝试在其他平台上运行已发布的.exe时,我都会收到以下错误,如上所述.
Problem signature: Problem Event Name: CLR20r3 Problem Signature 01: dmg_ors.exe Problem Signature 02: 1.0.0.0 Problem Signature 03: 52f4bad1 Problem Signature 04: DMG_ORS Problem Signature 05: 1.0.0.0 Problem Signature 06: 52f4bad1 Problem Signature 07: 3 Problem Signature 08: c Problem Signature 09: System.IO.FileNotFoundException OS Version: 6.1.7601.2.1.0.256.48 Locale ID: 1033 Additional Information 1: 82e2 Additional Information 2: 82e23b36efee975bd0e9417ff09fe7bb Additional Information 3: a1d6 Additional Information 4: a1d6e932d2c942475edff9f8fe05b46c Read our privacy statement online: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 If the online privacy statement …
我已经对使用读了一些相互矛盾的意见assert在setUpPython的单元测试的方法.如果测试依赖的前提条件失败,我无法看到测试失败的危害.
例如:
import unittest
class MyProcessor():
"""
This is the class under test
"""
def __init__(self):
pass
def ProcessData(self, content):
return ['some','processed','data','from','content'] # Imagine this could actually pass
class Test_test2(unittest.TestCase):
def LoadContentFromTestFile(self):
return None # Imagine this is actually doing something that could pass.
def setUp(self):
self.content = self.LoadContentFromTestFile()
self.assertIsNotNone(self.content, "Failed to load test data")
self.processor = MyProcessor()
def test_ProcessData(self):
results = self.processor.ProcessData(self.content)
self.assertGreater(results, 0, "No results returned")
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是合理的事情,即确保测试能够运行.当由于设置条件而失败时,我们得到:
F
====================================================================== …Run Code Online (Sandbox Code Playgroud) 如果数据流中有趣的数据,我正在尝试匹配一些块.
应该有一个前导的<四个字母数字字符,两个校验和字符(或者??如果没有指定shecksum)和一个尾随字符>.
如果最后两个字符是字母数字,则以下代码按预期工作.如果他们??失败了.
// Set up a pre-populated data buffer as an example
std::string haystack = "Fli<data??>bble";
// Set up the regex
static const boost::regex e("<\\w{4}.{2}>");
std::string::const_iterator start, end;
start = haystack.begin();
end = haystack.end();
boost::match_flag_type flags = boost::match_default;
// Try and find something of interest in the buffer
boost::match_results<std::string::const_iterator> what;
bool succeeded = regex_search(start, end, what, e, flags); // <-- returns false
Run Code Online (Sandbox Code Playgroud)
我没有在文档中发现任何暗示应该是这种情况的东西(除了NULL和换行符应该匹配AIUI).
那么我错过了什么?
我正在用C++/CLI开发一个应用程序,并且在非托管代码中有一个csv文件编写库,我想从托管部分使用它.所以我的函数看起来像这样:
bool CSVWriter::Write(const char* stringToWrite);
Run Code Online (Sandbox Code Playgroud)
...但我真的很难将我闪亮的System :: String ^转换为兼容的东西.基本上我希望通过做类似的事情来打电话:
if( m_myWriter->Write(String::Format("{0}",someValueIWantToSave)) )
{
// report success
}
Run Code Online (Sandbox Code Playgroud) 这个答案似乎表明它应该工作,所以我的例子为什么会出现编译器错误:
class Class1
{
protected:
long m_memberVar;
};
class SubClass1: public Class1
{
public:
void PrintMember(Class1 memberToPrintFrom)
{
Console::Write("{0}", memberToPrintFrom.m_memberVar); // <-- Compiler error: error C2248: 'BaseClassMemberAccess::Class1::m_memberVar' : cannot access protected member declared in class 'BaseClassMemberAccess::Class1'
}
};
Run Code Online (Sandbox Code Playgroud)
[编辑] - 在Need4Sleep的建议中将子类更改为公共继承,但没有区别.
我正在研究使用Flask应用程序作为嵌入式系统接口的可能性.之前我曾使用过烧瓶(我已经编写了一些非常基本的烧瓶网站来轮询外部系统以响应页面加载以填充图表)但我不确定如何将数据推送到Flask应用程序以及用户的浏览器.
我计划使用ZeroMQ将数据从嵌入式设备上运行的C++应用程序推送到烧瓶应用程序(也在嵌入式设备上运行).
从我读过的内容来看,像flask-socketIO这样的东西可以将Flask的内容传递给用户的浏览器.
我不清楚的一件事是,是否有可能/如何从ZeroMQ接收数据并将其推送到浏览器?
我有一个简单的数据转换工具,它可以产生的一个输出是一个csv文件.
这在英国完美无缺,但当我把它运到德国客户时,我遇到了一些问题.特别地,它们使用' ,'来表示浮点数中的小数点,反之亦然.这意味着当他们在excel中打开他们的数据文件时,至少可以说结果相当混乱:-)
替换正确的字符是微不足道的,但我如何检测是否应用此字符?
编辑:
所以这:
a,b,c
1.1,1.2,1.3
"1.1",1,2,"1,3"
"this,is,multi-
-line",this should be column 2, row 4
a;b;c
"a;b","c"
Run Code Online (Sandbox Code Playgroud)
..在加入英国的Excel时看起来像这样:
+----------------+-----+-----+-----+
| a | b | c | |
+----------------+-----+-----+-----+
| 1.1 | 1.2 | 1.3 | |
+----------------+-----+-----+-----+
| 1.1 | 1 | 2 | 1,3 |
+----------------+-----+-----+-----+
| this,is,multi- | | | |
| -line | 2 | 4 | |
+----------------+-----+-----+-----+
| a;b;c | | | |
+----------------+-----+-----+-----+
| a;b | c | | |
+----------------+-----+-----+-----+ …Run Code Online (Sandbox Code Playgroud)