第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于C++源代碼中取消名字空間(namespace)而保留原有功能的問(wèn)題,該怎么解決?

關(guān)于C++源代碼中取消名字空間(namespace)而保留原有功能的問(wèn)題,該怎么解決?

藍(lán)山帝景 2021-12-02 11:07:29
我有一些C++代碼庫(kù)的源代碼,里面有很多源文件,聲明了很多名字空間,實(shí)現(xiàn)的是比較簡(jiǎn)單的功能,我想把其中所有的變量聲明、類(lèi)、結(jié)構(gòu)和函數(shù)都簡(jiǎn)單放到一個(gè)頭文件(.h)和一個(gè)源文件(.cpp)中以便調(diào)用,取消其中所有的名字空間(namespace)。請(qǐng)問(wèn)用什么思路以及軟件(代碼分析、代碼重構(gòu)等軟件),通過(guò)什么方法和步驟可以實(shí)現(xiàn)這一目的?同時(shí)需保證編譯不會(huì)報(bào)錯(cuò)。要是想內(nèi)聯(lián)GRETA正則表達(dá)式模板類(lèi)庫(kù),就難嘍~
查看完整描述

2 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

參考一下:
就是把命名空間聲明與宏定義組合起來(lái)用
namespace nsdebug //名字空間nsdebug是在別的文件里定義的
{
int GetStringWidth(char* s);
int GetCellValue(int x,int y);
}

#define GetStringWidth nsdebug::GetStringWidth
#define GetCellValue nsdebug::GetCellValue
把這些個(gè)名字空間都加近來(lái),再一一定義一個(gè)宏,做成一個(gè)新的頭文件。這樣的話(huà)不必修改原來(lái)代碼的任何內(nèi)容。

查看完整回答
反對(duì) 回復(fù) 2021-12-07
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

我也曾遇到過(guò)這中問(wèn)題,曾經(jīng)也找到了解決方案,但是覺(jué)得不完美后來(lái)就不用了,不過(guò)可以給你參考一下:
就是把命名空間聲明與宏定義組合起來(lái)用
namespace nsdebug //名字空間nsdebug是在別的文件里定義的
{
int GetStringWidth(char* s);
int GetCellValue(int x,int y);
}

#define GetStringWidth nsdebug::GetStringWidth
#define GetCellValue nsdebug::GetCellValue
把這些個(gè)名字空間都加近來(lái),再一一定義一個(gè)宏,做成一個(gè)新的頭文件。這樣的話(huà)不必修改原來(lái)代碼的任何內(nèi)容。
不過(guò)后來(lái)我覺(jué)得用宏還是不穩(wěn)心,東西多了次早會(huì)遇到宏陷阱,后來(lái)就廢棄了這種方法。



查看完整回答
反對(duì) 回復(fù) 2021-12-07
  • 2 回答
  • 0 關(guān)注
  • 896 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)