今天發現了c 符號過載的乙個非常實用的使用例項。

2021-09-30 04:40:25 字數 632 閱讀 3051

在看litesql這個專案的原始碼的時候發現一段非常有趣的**:我的第一反應是:string 竟然還可以這樣用?隨即寫了一段測試**:編譯後卻得到這樣的錯誤:

$ g++ -o tt tt.cc

tt.cc: in function 『int main(int, char**)』:

tt.cc:9: error: no match for 『operator*』 in 『std::basic_string, std::allocator>(((const char*)"#"), ((const std::allocator&)((const std::allocator*)(& std::allocator())))) * 30』

由此看來這並不是stl的標準特性,於是想起了c++的符號過載,馬上使用 grep:

$ grep "operator/*" * -r

...src/library/string.cpp:std::string operator*(int amount, const std::string &s) {

src/library/string.cpp:std::string operator*(const std::string &s, int amount) {

這下都明白了:

今天發現了乙個非常有意思的regex

判斷乙個數是否為質數的方法 code import re def is prime num return not re.match r 1?11 1 1 num code quote 這段 除了漂亮精巧值得欣賞,以及可以用來玩味理解regex以外,還有什麼價值呢?效率?顯然不夠高。實用性?恐怕也沒有...

今天發現了乙個sql的小問題

這裡有三條sql語句,想找到存在tbla中,卻又不在tblb中的記錄數 select count from tbla select count from tbla where pid in select pid from tblb select count from tbla where pid n...

發現了乙個jython的bug

最近想用jython寫乙個simulator,用到struct.pack 結果發現了裡面的乙個bug.如下 import struct dataunits struct.pack hhiiibbhq 0x20,0x1c,0xffffffff,0x00000000,0x0233,0x05,0x00,0...