新闻报道等这一指示上述号码可能出现的编程错误.
一名男子在美国突然出现在当地的加油站购买一包香烟 - 但却发现他的信用卡收费为23,148,855,308,184,500美元.
这是23亿美元(14亿英镑) - 是美国国债的很多倍.*
在十六进制中它是$ 523DC2E199EBB4,一见钟情似乎并不十分有趣.
任何人都有任何关于编程错误会导致这种情况的想法吗?
为什么C++ STL不提供任何"树"容器,而最好使用什么?
我想将对象的层次结构存储为树,而不是使用树作为性能增强...
我需要一个简单的浮点舍入函数,因此:
double round(double);
round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)
我能找到ceil()和floor()在math.h中-但不是round().
它是以另一个名称存在于标准C++库中,还是缺少?
作为开发人员,在注册表中存储配置/选项的工具是我生命中的祸根.我无法轻易跟踪这些选项的变化,无法轻松地将它们从机器移植到机器,这一切都让我真正渴望.INI文件的美好时光......
在编写我自己的应用程序时,我应该选择放入注册表而不是旧式配置文件,为什么?
当我发现boost::lexical_cast自己想到"为什么我不早点知道这件事!" - 我讨厌写代码
stringstream ss;
ss << anIntVal;
mystring = ss.str();
Run Code Online (Sandbox Code Playgroud)
现在我写
mystring = boost::lexical_cast<string>(anIntVal);
Run Code Online (Sandbox Code Playgroud)
昨天,在stackoverflow上,我遇到了boost split(另一个将节省我编写代码的宝石).
string stringtobesplit = "AA/BB-CC")
vector<string> tokens;
boost::split(tokens, stringtobesplit, boost::is_any_of("/-"));
// tokens now holds 3 items: AA BB CC
Run Code Online (Sandbox Code Playgroud)
我要开始寻找通过Boost文档寻找其他的功能,我就可以经常使用,但我觉得,这将是很容易错过的事情.
您最常使用哪些增强功能/不想拥有?
我在一些库头文件中有一堆枚举类型,我正在使用,我想有一种方法将枚举值转换为用户字符串 - 反之亦然.
RTTI不会为我做这件事,因为'用户字符串'需要比枚举更具可读性.
一个强力解决方案将是一堆像这样的功能,但我觉得这有点像C样.
enum MyEnum {VAL1, VAL2,VAL3};
String getStringFromEnum(MyEnum e)
{
switch e
{
case VAL1: return "Value 1";
case VAL2: return "Value 2";
case VAL1: return "Value 3";
default: throw Exception("Bad MyEnum");
}
}
Run Code Online (Sandbox Code Playgroud)
我有一种直觉,认为使用模板有一个优雅的解决方案,但我还不能完全理解它.
更新:感谢您的建议 - 我应该明确说明枚举是在第三方库头中定义的,所以我不想更改它们的定义.
我现在的直觉是避免使用模板并执行以下操作:
char * MyGetValue(int v, char *tmp); // implementation is trivial
#define ENUM_MAP(type, strings) char * getStringValue(const type &T) \
{ \
return MyGetValue((int)T, strings); \
}
; enum eee {AA,BB,CC}; - exists in library header file
; …Run Code Online (Sandbox Code Playgroud) 当我得到一个vanilla Windows系统时,我会改变一些东西以使其更适合开发人员.
其中一些我记得每一次,其他的东西,我只做了什么时候.
例子:
我似乎还记得杰夫关于这个主题的博客文章,但无法找到它!
你还做了什么,你有没有自动化这个过程的工具?
Windows ini文件中是否允许注释?(...假设您正在使用GetPrivateProfileString api函数来读取它们...)
[Section]
Name=Value ; comment
; full line comment
Run Code Online (Sandbox Code Playgroud)
并且,在任何地方都有适当的.INI文件格式规范吗?
谢谢你的回复 - 但也许我不够清楚.它只是我感兴趣的Windows API调用所读取的格式.我知道其他实现允许注释,但它特别是我需要了解的MS Windows规范和实现.
我的开发系统(Codegear C++ Builder)的一个变幻莫测是,一些自动生成的头文件坚持要...
using namespace xyzzy
Run Code Online (Sandbox Code Playgroud)
...中的语句,当我最不想要或期望它时,它会对我的代码产生影响.
有没有办法可以以某种方式取消/覆盖以前的"使用"语句来避免这种情况.
也许...
unusing namespace xyzzy;
Run Code Online (Sandbox Code Playgroud) 我正在尝试将整个流(多行)读成字符串.
我正在使用这个代码,它有效,但它冒犯了我的风格......当然有一种更简单的方法吗?也许使用stringstreams?
void Obj::loadFromStream(std::istream & stream)
{
std::string s;
std::streampos p = stream.tellg(); // remember where we are
stream.seekg(0, std::ios_base::end); // go to the end
std::streamoff sz = stream.tellg() - p; // work out the size
stream.seekg(p); // restore the position
s.resize(sz); // resize the string
stream.read(&s[0], sz); // and finally, read in the data.
Run Code Online (Sandbox Code Playgroud)
const对字符串的引用也可以,这可能会使事情变得更容易......
const std::string &s(... a miracle occurs here...)
Run Code Online (Sandbox Code Playgroud)