utility C2988 unrecognizable template declaration/definition
今天遇到一個 C2988 的問題,錯誤在 utility 這個 VC 的 include 檔,內有一個名為 swap 的 template 出現 unrecognizable template declaration/definition。後來找到的原因在於原本 project 內已有以下定義:
#ifndef swap
#define swap(XXXXXXXXXX)
#endif
重複 define 的結果,造成 utility 裡頭的 template 宣告出問題。
一開始的解法我是在 include 自己的 def 之後,再 #undef swap。但是這樣沒有解決問題,所以後來我直接將自己的 def 整個拿掉,就解掉了。
#ifndef swap
#define swap(XXXXXXXXXX)
#endif
重複 define 的結果,造成 utility 裡頭的 template 宣告出問題。
一開始的解法我是在 include 自己的 def 之後,再 #undef swap。但是這樣沒有解決問題,所以後來我直接將自己的 def 整個拿掉,就解掉了。
留言
張貼留言