[問題] friend a file-scope function

看板C_and_CPP作者 (Cary Wu)時間10年前 (2014/03/11 05:19), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) xubuntu 12.04, g++-4.8.1 問題(Question): 我想要在 class C friend 一個 file scope 的 function F 目前有以下三種方法 1. 把 C 和 F 都用 unnamed namespace 包起來 優點是比較統一,而且本來需要用 using 的就會包 但是缺點是如果其他人要 friend C 的話也需要在 unnamed namespace裡? 2. static F 曾經被 deprecated 的方法,算是被 template 扶正 XD 但是 F 需要 forward declaration,因為 friend 不能用 static 3. inline F 這個方式最簡單,但是他本身的語義不是為了限制 scope, 只是剛好不管有沒有 inline 都必須要像 inline 一樣的附帶品 也許有時候就是不管怎樣都不想建議 compiler XD? 我目前比較 prefer 第二種,感覺不會造成其他人困擾語義又比較清晰 但是不知道這樣理解有沒有錯誤?還是有其他更方便的方法? PS. 問個跟 C/C++ 無關的問題,雖然好像應該去 editor 版問啦 我用 colorgcc 怎麼在 console 下的 vim 顯示顏色? 在 shell 下 make 沒有問題,但是 vim 下 make 都是沒有顏色的 應該說好像所有指令都沒有顏色? 我以為 vim 也只是先 stop vim 去執行 shell 而已... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.68.54

03/11 10:13, , 1F
我自己 try 了一下顏色正常 ... 你有改 Makefile 嗎
03/11 10:13, 1F
雖然通常都會用自己寫的 Makefle,但是就算是 :make main 也是一樣~ :make http://i.imgur.com/M1I9mpo.png
bash 下 make http://i.imgur.com/Jtwcmdl.png
我是用 apt 直接安裝 colorgcc 並改 .colorgccrc 用 update-alternative 把 gcc, cc, g++, c++ 用 colorgcc 替換的 ※ 編輯: carylorrk 來自: 220.129.68.54 (03/12 11:50)

03/13 10:33, , 2F
看了很久才看懂...第一個friend是動詞 第三個inline是被動
03/13 10:33, 2F

03/13 11:00, , 3F
1->所述優缺點應都不存在 2->http://ppt.cc/7sYG
03/13 11:00, 3F

03/13 11:01, , 4F
三種方式應都不會造成什麼困擾,語意也都不會不清晰
03/13 11:01, 4F

03/13 11:06, , 5F
C不需要包在unname裡,包或不包也都不造成所述缺點
03/13 11:06, 5F

03/13 11:08, , 6F
其他人(如果有)要修改C才能增加friend函式,如此也無所謂困擾
03/13 11:08, 6F
文章代碼(AID): #1J7YnUSg (C_and_CPP)