[問題] friend a file-scope function
開發平台(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
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
03/13 10:33, 2F
→
03/13 11:00, , 3F
03/13 11:00, 3F
→
03/13 11:01, , 4F
03/13 11:01, 4F
→
03/13 11:06, , 5F
03/13 11:06, 5F
→
03/13 11:08, , 6F
03/13 11:08, 6F