මම අන් අය සමඟ එකඟ වෙමි - එය ඉල්ලා සිටින්නේ නාම ගැටුම්, අවිනිශ්චිතතාවයන් සහ පසුව කාරණය නම් එය අඩු පැහැදිලිය. භාවිතය මට දැකිය හැකි අතර using
, මගේ පෞද්ගලික මනාපය එය සීමා කිරීමයි. තවත් සමහරු පෙන්වා දුන් දේ මම තරයේ සලකා බලමි.
ඔබට තරමක් පොදු නමක් විය හැකි ශ්රිත නාමයක් සොයා ගැනීමට අවශ්ය නම්, නමුත් ඔබට එය සොයා ගැනීමට අවශ්ය වන්නේ std
නාම අවකාශයේ පමණි (හෝ ආපසු හැරවීම - ඔබට අවශ්ය වන්නේ නාම අවකාශයේ , නාම අවකාශයේ , නැති සියලුම ඇමතුම් වෙනස් කිරීමටය , ...), එසේ නම් ඔබ මෙය කිරීමට යෝජනා කරන්නේ කෙසේද?std
X
ඔබට එය කිරීමට වැඩසටහනක් ලිවිය හැකිය, නමුත් ඔබේ ව්යාපෘතිය නඩත්තු කිරීම සඳහා වැඩසටහනක් ලිවීමට වඩා ඔබේ ව්යාපෘතියේ වැඩ කිරීම සඳහා කාලය ගත කිරීම වඩා හොඳ නොවේද?
පුද්ගලිකව, මට ඇත්ත වශයෙන්ම std::
උපසර්ගය කමක් නැත . පෙනුමට එය නොලැබීමට වඩා මම කැමතියි. එය පැහැදිලිව පෙනෙන නිසා සහ "මෙය මගේ කේතය නොවේ ... මම සම්මත පුස්තකාලය භාවිතා කරමි" හෝ එය වෙනත් දෙයක් නම් මට කියන්නේ දැයි මම නොදනිමි. මෙය මෑතකදී මම C ++ වලට සම්බන්ධ වීම අමුතු දෙයක් විය හැකිය (භාවිතා කර ඇති අතර තවමත් C සහ වෙනත් භාෂාවන් වැඩි කාලයක් භාවිතා කරයි. C යනු එකලස් කිරීමට ඉහළින්ම මගේ ප්රියතම භාෂාවයි).
ඉහත කාරණය හා අනෙක් අය පෙන්වා දෙන දෙයට එය තරමක් සම්බන්ධ වුවත් තවත් එක් දෙයක් තිබේ. මෙය නරක පුරුද්දක් විය හැකි නමුත්, සමහර විට මම std::name
සම්මත පුස්තකාල අනුවාදය සහ වැඩසටහන් විශේෂිත ක්රියාත්මක කිරීම සඳහා නම වෙන් කරමි. ඔව්, ඇත්ත වශයෙන්ම මෙය ඔබට දෂ්ට කළ හැකි අතර ඔබව තදින් දෂ්ට කළ හැකිය, නමුත් මේ සියල්ල මුල සිටම මා මෙම ව්යාපෘතිය මුල සිටම ආරම්භ කළ අතර ඒ සඳහා ඇති එකම ක්රමලේඛකයා මමය. උදාහරණය: මම එය අධික ලෙස පටවා std::string
අමතන්නෙමි string
. මට ප්රයෝජනවත් එකතු කිරීම් තිබේ. මගේ සී සහ යුනික්ස් (+ ලිනක්ස්) කුඩා අකුරු සඳහා ඇති නැඹුරුව නිසා මම එය අර්ධ වශයෙන් කළෙමි.
ඊට අමතරව, ඔබට නාම අවකාශ අන්වර්ථයන් තිබිය හැකිය. යොමු නොකල හැකි ප්රයෝජනවත් තැනක් සඳහා උදාහරණයක් මෙහි දැක්වේ. මම C ++ 11 ප්රමිතිය සහ විශේෂයෙන් libstdc ++ සමඟ භාවිතා කරමි. හොඳයි, එයට සම්පූර්ණ std::regex
සහාය නැත. නිසැකවම, එය සම්පාදනය කරයි, නමුත් එය ක්රමලේඛකයාගේ අවසානයෙහි දෝෂයක් ලෙස එය ව්යතිරේකයක් විසි කරයි. නමුත් එය ක්රියාත්මක කිරීමේ lack නතාවයයි.
ඉතින් මෙන්න මම එය විසඳූ ආකාරය. Boost’s regex ස්ථාපනය කර එය සම්බන්ධ කරන්න. ඉන්පසු, මම පහත සඳහන් දේ කරන්නේ libstdc ++ එය මුළුමනින්ම ක්රියාත්මක කර ඇති විට, මට අවශ්ය වන්නේ මෙම කොටස ඉවත් කිරීම පමණක් වන අතර කේතය එලෙසම පවතී:
namespace std
{
using boost::regex;
using boost::regex_error;
using boost::regex_replace;
using boost::regex_search;
using boost::regex_match;
using boost::smatch;
namespace regex_constants = boost::regex_constants;
}
එය නරක අදහසක් ද නැද්ද යන්න ගැන මම තර්ක නොකරමි. කෙසේ වෙතත් එය මගේ ව්යාපෘතිය සඳහා එය පිරිසිදුව තබා ගන්නා බවත්, ඒ සමඟම එය නිශ්චිත බවත් මම තර්ක කරමි : ඇත්ත, මට බූස්ට් භාවිතා කළ යුතුය, නමුත් මම එය භාවිතා කරන්නේ libstdc ++ අවසානයේ එය ලැබෙනු ඇත. ඔව්, ඔබේම ව්යාපෘතියක් ආරම්භ කිරීම සහ ආරම්භයේදීම (...) ආරම්භ කිරීම නඩත්තු කිරීම, සංවර්ධනය කිරීම සහ ව්යාපෘතියට සම්බන්ධ සෑම දෙයක්ම සඳහා උපකාර කිරීම සමඟ බොහෝ දුරක් යයි!
යමක් පැහැදිලි කර ගැනීම සඳහා: එස්.ටී.එල්. හි හිතාමතාම හා වඩාත් නිශ්චිතවම වෙනුවට පන්තියක නමක් භාවිතා කිරීම හොඳ අදහසක් යැයි මම නොසිතමි . 'ස්ට්රිං' අදහසට මා අකමැති වූ නිසා, මට නම්, ව්යතිරේකය (මෙහි පළමු, ඉහළ හෝ දෙවන නොසලකා හරින්න, ඔබට අවශ්ය නම් ද pun ුවම් කරන්න).
එය එසේ වුවත්, මම තවමත් C කෙරෙහි ඉතා පක්ෂග්රාහී වන අතර C ++ ට පක්ෂග්රාහීව සිටිමි. අමතර තොරතුරු, මා වැඩ කරන බොහෝ දේ සී වලට වඩා ගැළපේ (නමුත් එය හොඳ ව්යායාමයක් සහ මා බවට පත් කර ගැනීමට හොඳ ක්රමයක් විය. වෙනත් භාෂාවක් ඉගෙන ගන්න සහ ආ. වස්තුව / පන්ති / යනාදිය කෙරෙහි අඩු පක්ෂග්රාහී නොවීමට උත්සාහ කරන්න. අඩු සංවෘත මනසක් ඇති, අඩු අහංකාර සහ වැඩි පිළිගැනීමක් ලෙස.). එහෙත් වේ ප්රයෝජනවත් සමහර දැනටමත් යෝජනා දේ: නියත වශයෙන්ම මා ලැයිස්තුව (? එය තරමක් Generic බලපත්රය යටතේ අවසර ලබා ඇත, එය නොවේ) ආකාරයක (එකම දෙයක්) මට කරන්න නම් නම ගැටුමක් ඇති වන බව දෙක නම් කිරීමට භාවිතා කරන්නේ, සහ using namespace std;
, එසේ ඒ සඳහා මම වඩාත් කැමති නිශ්චිත, පාලනයෙන් සහ එය සම්මත භාවිතයක් වීමට අදහස් කරන්නේ නම් මට එය නියම කළ යුතු බව දැන සිටීම. සරලව කිවහොත්: උපකල්පනය කිරීමට අවසර නැත.
බූස්ට්ගේ රීජෙක්ස් කොටස බවට පත් කිරීම සඳහා std
. අනාගත ඒකාබද්ධතාවය සඳහා මම එය කරන අතර - නැවතත්, මෙය සම්පූර්ණයෙන්ම පක්ෂග්රාහී බව මම පිළිගනිමි - එය තරම් කැත යැයි මම නොසිතමි boost::regex:: ...
. ඇත්ත වශයෙන්ම, එය මට තවත් දෙයක්. C ++ හි බොහෝ දේ ඇත, මට තවමත් පෙනුම සහ ක්රමවේදයන් සම්පූර්ණයෙන් පිළිගැනීමට නොමැත (තවත් උදාහරණයක්: විචල්ය සැකිලි එදිරිව var තර්ක [මම පිළිගත්තද විචල්ය ආකෘති ඉතා ප්රයෝජනවත් බව!]). මා පිළිගන්නා අය පවා එය දුෂ්කර වූ අතර මට තවමත් ඔවුන් සමඟ ගැටළු තිබේ.