BitTorrent සේවාදායක සම්ප්‍රේෂණය C සිට C++ දක්වා මාරු වේ

සම්ප්‍රේෂණ BitTorrent සේවාලාභියාගේ පදනම වන libtransmission පුස්තකාලය C++ වෙත පරිවර්තනය කර ඇත. සම්ප්‍රේෂණය තවමත් C භාෂාවෙන් ලියා ඇති පරිශීලක අතුරුමුහුණත් (GTK අතුරුමුහුණත, ඩීමන්, CLI) ක්‍රියාත්මක කිරීම සමඟ බැඳීම් ඇත, නමුත් එකලස් කිරීම සඳහා දැන් C++ සම්පාදකයක් අවශ්‍ය වේ. මීට පෙර, Qt-පාදක අතුරුමුහුණත පමණක් C++ වලින් ලියා ඇත (macOS සඳහා සේවාදායකයා Objective-C හි විය, වෙබ් අතුරු මුහුණත JavaScript හි වූ අතර අනෙක් සියල්ල C හි විය).

Qt මත පදනම් වූ සම්ප්‍රේෂණ අතුරුමුහුණතේ ව්‍යාපෘති ප්‍රධානියා සහ කර්තෘ චාල්ස් කර් විසින් වරාය සිදු කරන ලදී. සම්පූර්ණ ව්‍යාපෘතියම C++ වෙත මාරු කිරීමට ප්‍රධාන හේතුව වන්නේ ලිබ්ට්‍රාන්ස්මිෂන් හි වෙනස්කම් සිදු කරන විට, සාමාන්‍ය C++ පුස්තකාලයේ සමාන ගැටළු සඳහා සූදානම් කළ විසඳුම් තිබුණද, ඔබට නිරන්තරයෙන් රෝදය ප්‍රතිනිර්මාණය කිරීමට සිදුවන බව හැඟීමයි (උදාහරණයක් ලෙස, එය අවශ්‍ය විය. std: :partial_sort() සහ std::vector() ඉදිරියේ ඔබේම ක්‍රියාකාරකම් tr_quickfindFirstK() සහ tr_ptrArray() නිර්මාණය කිරීමට මෙන්ම C++ සඳහා වඩාත් උසස් ආකාරයේ පරීක්ෂා කිරීමේ පහසුකම් සැපයීම.

සංවර්ධකයින් විසින් C++ හි සම්පූර්ණ ලිබ්ට්‍රාන්ස්මිෂන් නැවත ලිවීමේ ඉලක්කය නොසලකන නමුත් C++ සම්පාදකය භාවිතයෙන් ව්‍යාපෘතිය සම්පාදනය කිරීමේ සංක්‍රාන්තියෙන් පටන් ගෙන ක්‍රමයෙන් C++ වෙත සංක්‍රමණය ක්‍රියාත්මක කිරීමට අදහස් කරන බව සටහන් වේ. එහි වර්තමාන ස්වරූපයෙන්, C compiler එක තවදුරටත් එකලස් කිරීම සඳහා භාවිතා කළ නොහැක, මන්ද සමහර C++-විශේෂිත නිර්මිතයන් කේතයට එකතු කර ඇත, එනම් "auto" මූල පදය සහ "static_cast" ක්‍රියාකරු භාවිතා කරන ආකාරයේ පරිවර්තන. පැරණි C ශ්‍රිත සඳහා සහය ගැළපීම සඳහා පවතිනු ඇත, නමුත් සංවර්ධකයින් දැන් qsort() වෙනුවට std::sort() සහ tr_ptrArray වෙනුවට std:: vector භාවිතා කිරීමට උනන්දු කර ඇත. tr_strdup() වෙනුවට constexpr සහ tr_ptrArray වෙනුවට std:: vector.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න