我做了一个模板字符串操作类,它可以操作std :: string和MFC CString。 在Debug版本上可以正常工作。 它确实适用于发行版。 通过调查,我发现至少一个有用的功能得到了优化。 checkChars已优化,应该在拆分中调用。 (没有调用checkChars。)
static bool checkChars(const TCHARTYPE& c, const TCHARTYPE* chrs)
{
for ( ;*chrs ;chrs++)
{
if (c == *chrs)
{
return true;
}
}
return false;
}
void split(const TSTRING& s, vector<TSTRING>& v, const TCHARTYPE* separator, bool bKeepEmptyParts = false)
{
...
//here at() is called, but checkChars isn't
if (checkChars(at(s, i), separator))
...
}
VS优化是
最大速度(/ O2)
。我发现使用
自定义
可以阻止优化我有用的功能。 但是我想知道为什么,而且我不想更改项目设置,我可以修改我的代码以使其工作吗?
答案 0 :(得分:1)
is there any way to disable compiler optimisation for a specific line of code?
http://msdn.microsoft.com/en-us/library/chh3fb0k.aspx
#pragma optimize( "", off )
.
.
.
#pragma optimize( "", on )