- 主题:大伙来说说自从c++11以来,哪些特性是刚需
我最近用了两次 tuple,都是过两天就改成 struct 了。
tuple 太不清楚了,还是 named struct 更适合阅读。
【 在 libgcc (巭孬嫑夯昆勥茓) 的大作中提到: 】
: literal绝对算不上刚需
: tuple你们真的有用到吗。。。
: 我反倒觉得变长模板挺有用的
: ...................
--
FROM 121.205.116.*
写 for (int i: vector_of_int) {} 不是更简单。
我还是喜欢把类型写出来。程序员一天打不了多少字,一天写的代码可能还不如随便灌的一篇水贴字数多。没必要为了省几个字母增加记忆负担。
【 在 hyperLee (老李) 的大作中提到: 】
: 但是有了auto, 你绝对不想再去写: for (std::vector<int>::interator it = ....)
--
FROM 121.205.116.*
赶快换 Qt 省事。。hoho
QJsonDocument doc = QJsonDocument::parse(...);
for (const QJsonValue &v: doc.array()) {
...
}
如果真的要写这种代码,我可能会 typedef,然后认真地写上类型。
清晰明了可阅读性好比运行效率要重要得多。因为人类思维太不可靠了。代码不清晰容易犯错。
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 你举的这个例子,int 比 auto 还少一个字,写全当然没问题
: 平常根本不是这样,拿常用的 nlohmann json 库举个例子
: nlohmann::json j = nlohmann::json::parse(R"([1,2,3])");
: ...................
--
修改:hgoldfish FROM 121.205.116.*
FROM 121.205.116.*
你这个例子举得有点奇怪啊。。不要把序列化和反序列化和 http 库混在一起啊。。
如果要做反序列化,那也是提供一个这种的:
struct HttpResponse {
int statusCode = 0;
std::string body;
template<typename T> T value() const;
};
using WebUser = Model<BaseUser, HasPassword, HasCertificate>;
const HttpResponse &r = http.get(url);
return r.value<WebUser>();
如果是我,我还是宁可用 using, typedef 事先定义好一个更具阅读性的类型。
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 1. 请用 using 替代 typedef , typedef 不可用于模板别名
: 2. 一样举个例子,http 请求结果定义模板 struct,
: template <typename T>
: ...................
--
FROM 60.188.58.*
哈。。我那个没风格,直接抄的 python-requests 这个库,连异常名字与报错信息我都抄过来了。
你这种序列化与网络库耦合在一起,很难维护与扩展啊。比如我现在都是使用 msgpack 再加上 zstd 进行序列化。你那个库会不会很不好扩展。
【 在 hanjiamajia (hanjiamajia) 的大作中提到: 】
: 所以我之前说你的 http 库不modern,感觉是 05 年左右的风格,这也是一个问题
: const HttpResponse &r = api1.get(url1);
: const HttpResponse &r = api2.get(url2);
: ...................
--
FROM 112.47.122.*
你学的是凡尔赛 C++ :-)
【 在 qliang27 (大象无形) 的大作中提到: 】
: C++11的很多特性,我至今都没有用到过;觉得自己写20年的C++程序,还做不到手敲200行免调试无bug的C++代码的水平,而且自己写C++代码的水平远没有跟上自己做程序化交易财富增值的速度,觉得自己就是一个靠随机性致富的傻瓜。
--
FROM 112.47.122.*