ควรกล่าวถึงที่นี่ IMO ว่าในขณะที่คำถามดั้งเดิม (และคำตอบที่ยอดเยี่ยม) มีประโยชน์อย่างแน่นอนหากคุณต้องการเปลี่ยนชื่อฟังก์ชัน (มีเหตุผลที่ดีที่จะทำเช่นนั้น!) หากสิ่งที่คุณต้องการทำคือตัดเนมสเปซที่ลึกออกไป แต่ เก็บชื่อไว้มีusing
คีย์เวิร์ดสำหรับสิ่งนี้:
namespace deep {
namespace naming {
namespace convention {
void myFunction(int a, char b) {}
}
}
}
int main(void){
deep::naming::convention::myFunction(5, 'c');
using deep::naming::convention::myFunction;
myFunction(5, 'c');
}
นอกจากนี้ยังมีข้อดีของการ จำกัด ขอบเขตแม้ว่าคุณจะสามารถใช้งานได้ที่ระดับบนสุดของไฟล์ ฉันมักจะใช้สิ่งนี้เพื่อcout
และendl
ดังนั้นฉันจึงไม่จำเป็นต้องนำทั้งหมดมาstd
ด้วยคลาสสิกusing namespace std;
ที่ด้านบนของไฟล์ แต่ก็มีประโยชน์เช่นกันหากคุณใช้สิ่งที่คล้ายstd::this_thread::sleep_for()
กันมากในไฟล์หรือฟังก์ชันเดียว แต่ไม่ใช่ทุกที่และ ไม่ใช่ฟังก์ชันอื่นใดจากเนมสเปซ เช่นเคยเราไม่แนะนำให้ใช้ในไฟล์. h มิฉะนั้นคุณจะทำให้เนมสเปซทั่วโลกเป็นมลพิษ
นี่ไม่เหมือนกับการ "เปลี่ยนชื่อ" ด้านบน แต่มักเป็นสิ่งที่ต้องการจริงๆ
void (&NewName)(some_vector&, float, float, float, float) = OldName;
ในการเช็คอินครั้งต่อไปของฉัน