我在項目的嵌套子文件夾中有不少源文件。我有4個不同的類,我試圖替換,並且想要找到它們被分配的源代碼中的每個地方(堆+堆棧)。正則表達式/ grep/findstr用於定位內存分配C++
不幸的是,由於糟糕的包含結構,Visual Studio的「搜索整個解決方案」功能是不可信的,所以我在源文件中採用了手動搜索。
我相信是足夠了:
"new CLASS1("
與三個令牌那裏堆和 "^CLASS2"
,我想說的類名稱開始在該行的開頭(不計空格之間的空間任意組合)用於堆棧分配。
對於堆棧分配,[^a-zA-Z] CLASS3 [a-zA-Z]+
嘗試過,但我不太流利的正則表達式,所以想通過SO運行這個。對於堆,只是上面的字符串被嘗試過,但我知道一個簡單的額外空間會打破該模式,所以我知道這是不正確的。
任何人都可以想出一個更好的匹配器甚至是一個更好的方法去解決這個問題嗎?
謝謝
AK
第三個沒有意義,並且所有這些都在模板或typedef的存在下失敗。我的解決方案是重命名所有的類,編譯器錯誤會告訴你它在哪裏使用。 –
@MooingDuck是的,不知道爲什麼它不僅僅是CLASS3之前的空間角色,而是想確保我不會隨意猜測。沒有爲這些類聲明的模板或typedefs,也沒有任何繼承類型問題。我的確在考慮重命名這些類,但這些都非常重要,並且可以在任何地方使用。幾乎每一行都不會中斷(即使是非分配行? - 類,結構,聯合期望之前 - >等)? –
是的,但是如果您要替換它們,那麼_first_錯誤將始終是一段代碼你必須改變。(你也許會想找到成員,但你的「堆棧分配」正則表達式可能會選擇這個) –