Re: [討論] 對於同事的coding style感到很感冒
謝謝各位的意見
我會在逐一理解
目前有幾個問題
最近比較被要求寫exceptional 的code
假設我寫
string Foo(string s) noexcept
{
auto a = Get(); // noexcept
string r = s+a;
return r;
}
然後我確認operator+是不是noexcept
結果當然不是
變成我要為了這簡單的+
寫一個try catch...去handle exception
三個抉擇點
1. 不要標註noexcept , 反正壞了上面該處理 無責聲明 (我prefer這)
2. try catch(type1) catch(type2) catch(...) 把所有查的到的exception都handle
要不要分開handle 是by design
3. 就現在這樣寫 反正真的發生bad_alloc 我也無能為力 terminate吧
以上有沒有什麼比較建議的做法可以討用在多數情形
現在變成想提供noexcept 函數 都要查每一行function call是否都是noexcept
反而覺得 預設不該noexcept 才合理 有需求才標註noexcept
==================
一個很無聊的const問題
古早的effective c++推廣 能加const就加
所以這位同事當然遵守
void Foo(const int a)
{
auto const rc = Win32();
auto const hr = COM();
auto const error = 3rdAPI();
...
}
我認同const能確保不被亂改
但我其實是覺得很多餘
local變數改了也不會怎樣(也不該怎樣)
甚至會被改表示你有需求 搞不好還會因此改code拿掉const
問題來了
他今天看到某同事
void Bar(const string s){// read-only }
留言 這是多餘的 要拿掉
對我來說當然不該補const 裡面如果以後有copy需求 就不能move了
但我反倒覺得他兩套標準
這case只有read加上const不正是他遵守的鐵則嗎?
也可以Bar(RVALUE); 為啥這情況他認為"useless"? 雙重標準的感覺
我沒看到他針對函數local non-trivial變數的寫法
也許也是不加const為主 (也是雙標)
這邊的問題就是
盡可能const 這件事如果套用在modern C++ 有沒有什麼common的標準用法呢?
我比較主觀的歸納是
primitive type能const就const
non-trivial type 都不要加(但這太偏頗了)
我自己是習慣都不加
以上
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.134.52 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1589357431.A.89A.html
※ 編輯: lovejomi (123.192.134.52 臺灣), 05/13/2020 16:22:23
→
05/13 17:07,
4年前
, 1F
05/13 17:07, 1F
→
05/13 17:10,
4年前
, 2F
05/13 17:10, 2F
→
05/13 17:14,
4年前
, 3F
05/13 17:14, 3F
→
05/13 17:15,
4年前
, 4F
05/13 17:15, 4F
→
05/13 17:17,
4年前
, 5F
05/13 17:17, 5F
→
05/13 17:21,
4年前
, 6F
05/13 17:21, 6F
→
05/13 17:23,
4年前
, 7F
05/13 17:23, 7F
→
05/13 17:23,
4年前
, 8F
05/13 17:23, 8F
→
05/13 17:24,
4年前
, 9F
05/13 17:24, 9F
→
05/13 17:30,
4年前
, 10F
05/13 17:30, 10F
→
05/13 17:31,
4年前
, 11F
05/13 17:31, 11F
→
05/13 17:57,
4年前
, 12F
05/13 17:57, 12F
→
05/13 17:58,
4年前
, 13F
05/13 17:58, 13F
→
05/13 17:59,
4年前
, 14F
05/13 17:59, 14F
→
05/13 18:00,
4年前
, 15F
05/13 18:00, 15F
→
05/13 18:01,
4年前
, 16F
05/13 18:01, 16F
→
05/13 18:01,
4年前
, 17F
05/13 18:01, 17F
→
05/13 18:02,
4年前
, 18F
05/13 18:02, 18F
→
05/13 18:03,
4年前
, 19F
05/13 18:03, 19F
→
05/13 18:09,
4年前
, 20F
05/13 18:09, 20F
→
05/13 18:09,
4年前
, 21F
05/13 18:09, 21F
→
05/13 18:19,
4年前
, 22F
05/13 18:19, 22F
→
05/13 18:20,
4年前
, 23F
05/13 18:20, 23F
→
05/13 18:20,
4年前
, 24F
05/13 18:20, 24F
→
05/13 18:20,
4年前
, 25F
05/13 18:20, 25F
→
05/13 18:20,
4年前
, 26F
05/13 18:20, 26F
→
05/13 18:20,
4年前
, 27F
05/13 18:20, 27F
→
05/13 18:21,
4年前
, 28F
05/13 18:21, 28F
→
05/13 18:26,
4年前
, 29F
05/13 18:26, 29F
→
05/13 18:26,
4年前
, 30F
05/13 18:26, 30F
→
05/13 18:27,
4年前
, 31F
05/13 18:27, 31F
→
05/13 18:28,
4年前
, 32F
05/13 18:28, 32F
推
05/13 21:29,
4年前
, 33F
05/13 21:29, 33F
→
05/13 21:53,
4年前
, 34F
05/13 21:53, 34F
→
05/13 21:53,
4年前
, 35F
05/13 21:53, 35F
→
05/13 22:01,
4年前
, 36F
05/13 22:01, 36F
→
05/13 22:02,
4年前
, 37F
05/13 22:02, 37F
→
05/13 22:05,
4年前
, 38F
05/13 22:05, 38F
→
05/13 22:06,
4年前
, 39F
05/13 22:06, 39F
→
05/13 22:07,
4年前
, 40F
05/13 22:07, 40F
→
05/13 22:08,
4年前
, 41F
05/13 22:08, 41F
→
05/13 22:10,
4年前
, 42F
05/13 22:10, 42F
→
05/13 22:11,
4年前
, 43F
05/13 22:11, 43F
→
05/13 22:12,
4年前
, 44F
05/13 22:12, 44F
→
05/13 22:13,
4年前
, 45F
05/13 22:13, 45F
推
05/14 09:05,
4年前
, 46F
05/14 09:05, 46F
→
05/14 09:08,
4年前
, 47F
05/14 09:08, 47F
→
05/14 09:10,
4年前
, 48F
05/14 09:10, 48F
→
05/14 22:38,
4年前
, 49F
05/14 22:38, 49F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 3 之 5 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章