C++ ലെ നെയിംസ്പേസ് ഉപയോഗത്തിലേക്കുള്ള ആമുഖം
C++ പ്രോഗ്രാമിംഗ് ലോകത്ത്, "using namespace std;" പലപ്പോഴും ചർച്ച ചെയ്യപ്പെടുന്നു. പല ഡെവലപ്പർമാരും ഇത് ഒഴിവാക്കാനും പകരം std::cout, std::cin എന്നിവയുടെ വ്യക്തമായ ഉപയോഗം തിരഞ്ഞെടുക്കാനും നിർദ്ദേശിക്കുന്നു. ഈ സമ്പ്രദായം അതിൻ്റെ അപകടസാധ്യതകളെയും പ്രത്യാഘാതങ്ങളെയും കുറിച്ച് നിരവധി ചോദ്യങ്ങൾ ഉയർത്തുന്നു.
പ്രത്യേകമായി, ആശങ്കകൾ നെയിം വൈരുദ്ധ്യങ്ങളുടെ സാധ്യതയെയും എസ്ടിഡി നെയിംസ്പെയ്സിൻ്റെ വിവേചനരഹിതമായ ഉപയോഗവുമായി ബന്ധപ്പെട്ട ഏതെങ്കിലും പ്രകടന പോരായ്മകളെയും ചുറ്റിപ്പറ്റിയാണ്. ഈ ലേഖനത്തിൽ, "നെയിംസ്പേസ് എസ്ടിഡി ഉപയോഗിക്കുന്നത്" എന്തുകൊണ്ടെന്ന് നമ്മൾ പരിശോധിക്കും. പ്രശ്നമായി കണക്കാക്കുകയും C++-ൽ നെയിംസ്പേസ് മാനേജ്മെൻ്റിനുള്ള മികച്ച സമ്പ്രദായങ്ങൾ പര്യവേക്ഷണം ചെയ്യുകയും ചെയ്യുന്നു.
കമാൻഡ് | വിവരണം |
---|---|
std::cout | കൺസോളിലേക്ക് ടെക്സ്റ്റ് പ്രിൻ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് സ്ട്രീം. |
std::cin | കൺസോളിൽ നിന്നുള്ള ഇൻപുട്ട് വായിക്കാൻ ഉപയോഗിക്കുന്ന സ്റ്റാൻഡേർഡ് ഇൻപുട്ട് സ്ട്രീം. |
std::endl | മാനിപ്പുലേറ്റർ ഒരു പുതിയ ലൈൻ പ്രതീകം തിരുകുകയും സ്ട്രീം ഫ്ലഷ് ചെയ്യുകയും ചെയ്യുന്നു. |
std::vector | വലുപ്പത്തിൽ മാറ്റം വരുത്താൻ കഴിയുന്ന ഒരു ശ്രേണിയെ പ്രതിനിധീകരിക്കുന്ന സീക്വൻസ് കണ്ടെയ്നർ. |
std::sort | ഒരു ശ്രേണിയിൽ ഘടകങ്ങൾ അടുക്കുന്നതിനുള്ള പ്രവർത്തനം. |
const auto& | വായന-മാത്രം റഫറൻസിനായി സ്വയമേവയുള്ള തരം കിഴിവ്. |
using namespace | ഒരു നെയിംസ്പെയ്സിൽ നിന്നുള്ള എല്ലാ പേരുകളും നിലവിലെ പരിധിയിലേക്ക് കൊണ്ടുവരുന്നതിനുള്ള പ്രഖ്യാപനം. |
C++ ലെ നെയിംസ്പേസ് മാനേജ്മെൻ്റിൻ്റെ വിശദമായ വിശദീകരണം
ആദ്യ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നതിനുള്ള ഒരു അടിസ്ഥാന ഉദാഹരണം കാണിക്കുന്നു ഒപ്പം ജോലി ചെയ്യാതെ . ഈ സമീപനം പേരിടൽ വൈരുദ്ധ്യങ്ങളെ വ്യക്തമായി പരാമർശിക്കുന്നതിലൂടെ ഒഴിവാക്കുന്നു std ഓരോ തവണയും ഒരു സാധാരണ ലൈബ്രറി ഫംഗ്ഷൻ അല്ലെങ്കിൽ ഒബ്ജക്റ്റ് ഉപയോഗിക്കുമ്പോൾ namespace. ഉദാഹരണത്തിന്, കൺസോളിലേക്ക് പ്രിൻ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു, കൂടാതെ ഇൻപുട്ട് വായിക്കാൻ. വ്യക്തമായ നെയിംസ്പെയ്സ് പ്രിഫിക്സുകൾ ഉപയോഗിക്കുന്നതിലൂടെ, കോഡ് വ്യക്തത നിലനിർത്തുകയും ഏത് ഫംഗ്ഷനുകളോ ഒബ്ജക്റ്റുകളോ പരാമർശിക്കപ്പെടുന്നു എന്നതിനെക്കുറിച്ച് അവ്യക്തതയില്ലെന്ന് ഉറപ്പാക്കുകയും ചെയ്യുന്നു, പ്രത്യേകിച്ചും ഒന്നിലധികം നെയിംസ്പെയ്സുകൾ ഉപയോഗിച്ചേക്കാവുന്ന വലിയ പ്രോജക്ടുകളിൽ.
രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് വലിയ പ്രോജക്റ്റുകളിലെ ഒരു പൊതു പ്രശ്നത്തെ അഭിസംബോധന ചെയ്യുന്നു: നെയിംസ്പേസ് മലിനീകരണം. ഈ സ്ക്രിപ്റ്റിൽ ഫംഗ്ഷനുകൾ ഉൾപ്പെടുന്നു ഒപ്പം സോർട്ടിംഗ് എ കാണിക്കുന്നു ഉപയോഗിക്കുന്നത് . ഉപയോഗിക്കാത്തതിനാൽ , മറ്റ് ലൈബ്രറികളിൽ നിന്നുള്ള സമാനമായ പേരിലുള്ള ഫംഗ്ഷനുകളുമായോ ഒബ്ജക്റ്റുകളുമായോ ഉണ്ടാകാനിടയുള്ള വൈരുദ്ധ്യങ്ങൾ ഞങ്ങൾ തടയുന്നു. കൂടാതെ, ദി const auto& ടൈപ്പ് സുരക്ഷയും വായനാക്ഷമതയും ഉറപ്പാക്കുന്ന, ഓട്ടോമാറ്റിക് ടൈപ്പ് ഡിഡക്ഷനായി കീവേഡ് ഉപയോഗിക്കുന്നു. ഈ സമീപനം മെയിൻ്റനബിലിറ്റി വർദ്ധിപ്പിക്കുകയും നെയിംസ്പേസ്-നിർദ്ദിഷ്ട ഫംഗ്ഷനുകൾ ആകസ്മികമായി അസാധുവാക്കുകയോ ആശയക്കുഴപ്പത്തിലാക്കുകയോ ചെയ്യുന്നതിലൂടെ ഉണ്ടാകുന്ന പിശകുകളുടെ അപകടസാധ്യത കുറയ്ക്കുന്നു.
മൂന്നാമത്തെ സ്ക്രിപ്റ്റ് പ്രാദേശികവൽക്കരിച്ചുകൊണ്ട് ഒരു വിട്ടുവീഴ്ച നൽകുന്നു ഒരു ഫംഗ്ഷൻ പരിധിക്കുള്ളിൽ. ഈ രീതി ഫംഗ്ഷനിൽ കൂടുതൽ സംക്ഷിപ്തമായ കോഡ് അനുവദിക്കുമ്പോൾ തന്നെ നെയിംസ്പേസ് വൈരുദ്ധ്യങ്ങളുടെ അപകടസാധ്യത കുറയ്ക്കുന്നു. ഉദാഹരണത്തിന്, ൽ പ്രവർത്തനം, യുടെ ലളിതമായ ഉപയോഗത്തിന് അനുവദിച്ചുകൊണ്ട് പ്രഖ്യാപിച്ചു cout, , ഒപ്പം ഇല്ലാതെ ഉപസർഗ്ഗം. ഈ പ്രാദേശികവൽക്കരിച്ച സമീപനം അതിൻ്റെ വ്യാപ്തി പരിമിതപ്പെടുത്തുന്നു std ഫംഗ്ഷനിലേക്കുള്ള നെയിംസ്പെയ്സ്, പ്രോഗ്രാമിൻ്റെ മറ്റ് ഭാഗങ്ങളെ ബാധിക്കുന്നതിൽ നിന്ന് അതിൻ്റെ ഉപയോഗം തടയുന്നു. ഈ സാങ്കേതികത കോഡ് ബ്രെവിറ്റിയും സുരക്ഷയും തമ്മിലുള്ള സന്തുലിതാവസ്ഥ കൈവരിക്കുന്നു, ഇത് C++ ലെ നെയിംസ്പേസ് ഉപയോഗം നിയന്ത്രിക്കുന്നതിനുള്ള ഒരു പ്രായോഗിക പരിഹാരമാക്കി മാറ്റുന്നു.
മൊത്തത്തിൽ, ഈ സ്ക്രിപ്റ്റുകൾ C++ പ്രോഗ്രാമിംഗിലെ നെയിംസ്പേസ് മാനേജ്മെൻ്റിനുള്ള മികച്ച രീതികൾ ചിത്രീകരിക്കുന്നു. ആഗോള ഉപയോഗം ഒഴിവാക്കിക്കൊണ്ട് , ഡവലപ്പർമാർക്ക് പേരിടൽ വൈരുദ്ധ്യങ്ങൾ തടയാനും കോഡ് വ്യക്തതയും പരിപാലനവും വർദ്ധിപ്പിക്കാനും കഴിയും. വ്യക്തമായ നെയിംസ്പേസ് ഉപയോഗവും ഫംഗ്ഷനുകൾക്കുള്ളിലെ പ്രാദേശികവൽക്കരിച്ച നെയിംസ്പേസ് പ്രഖ്യാപനങ്ങളും കരുത്തുറ്റതും പിശകുകളില്ലാത്തതുമായ കോഡ് എഴുതുന്നതിനുള്ള ഫലപ്രദമായ തന്ത്രങ്ങളാണ്. ഉയർന്ന നിലവാരമുള്ള C++ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിന് ഈ രീതികൾ മനസ്സിലാക്കുകയും നടപ്പിലാക്കുകയും ചെയ്യേണ്ടത് അത്യാവശ്യമാണ്.
"ഉപയോഗിക്കുന്ന നെയിംസ്പേസ് std;" ഉപയോഗിക്കുന്നതിന് പകരമായി C++ ൽ
C++: വ്യക്തമായി std:: പ്രിഫിക്സ് ഉപയോഗിക്കുന്നു
#include <iostream>
int main() {
std::cout << "Hello, world!" << std::endl;
std::string name;
std::cout << "Enter your name: ";
std::cin >> name;
std::cout << "Hello, " << name << std::endl;
return 0;
}
വലിയ പ്രോജക്റ്റുകളിലെ പേരിലെ വൈരുദ്ധ്യങ്ങൾ ഒഴിവാക്കുന്നു
C++: ആഗോള നെയിംസ്പേസ് മലിനീകരണം ഒഴിവാക്കുന്നു
#include <iostream>
#include <vector>
#include <algorithm>
void printVector(const std::vector<int>& vec) {
for(const auto& val : vec) {
std::cout << val << " ";
}
std::cout << std::endl;
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::sort(numbers.begin(), numbers.end());
printVector(numbers);
return 0;
}
"നാംസ്പേസ് എസ്ടിഡി ഉപയോഗിക്കുന്നു" എന്നതിൻ്റെ വ്യാപ്തി കുറയ്ക്കുന്നു;
C++: "നെയിംസ്പേസ് std ഉപയോഗിച്ച്" പ്രാദേശികവൽക്കരിക്കുന്നു; പ്രവർത്തന പരിധിയിലേക്ക്
#include <iostream>
#include <vector>
void processInput() {
using namespace std;
vector<int> data;
int temp;
cout << "Enter numbers (0 to stop): ";
while (cin >> temp && temp != 0) {
data.push_back(temp);
}
cout << "You entered: ";
for (const auto& num : data) {
cout << num << " ";
}
cout << endl;
}
int main() {
processInput();
return 0;
}
"നെയിംസ്പേസ് std ഉപയോഗിക്കുന്നതിൻ്റെ" അപകടസാധ്യതകൾ മനസ്സിലാക്കുന്നു;
ഉപയോഗിക്കുന്നതിനുള്ള പ്രധാന പ്രശ്നങ്ങളിലൊന്ന് പേര് കൂട്ടിമുട്ടാനുള്ള സാധ്യതയാണ്. C++ സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ നിരവധി പൊതു ഐഡൻ്റിഫയറുകൾ ഉൾപ്പെടുന്നു, അവ ഉപയോക്തൃ കോഡിലോ മറ്റ് ലൈബ്രറികളിലോ ഉപയോഗിച്ചേക്കാം. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു ഫംഗ്ഷൻ അല്ലെങ്കിൽ വേരിയബിൾ എന്ന് നിർവചിക്കുകയാണെങ്കിൽ നിങ്ങളുടെ കോഡിലും ഉപയോഗിക്കാനും , നിങ്ങൾ അവിചാരിതമായി കൂട്ടിയിടിച്ചേക്കാം std::count. ഇത് ആശയക്കുഴപ്പമുണ്ടാക്കുന്ന പിശകുകളിലേക്കും രോഗനിർണയം നടത്താൻ ബുദ്ധിമുട്ടുള്ള ബഗുകളിലേക്കും നയിച്ചേക്കാം.
പരിഗണിക്കേണ്ട മറ്റൊരു വശം കോഡ് റീഡബിലിറ്റിയും പരിപാലനവുമാണ്. വ്യക്തമായി ഉപയോഗിക്കുന്നു പ്രിഫിക്സുകൾ ഫംഗ്ഷനുകളുടെയും ഒബ്ജക്റ്റുകളുടെയും ഉത്ഭവം വ്യക്തമാക്കാൻ സഹായിക്കുന്നു. വലിയ കോഡ്ബേസുകളിലോ ഓവർലാപ്പുചെയ്യുന്ന പേരുകളുള്ള ഒന്നിലധികം ലൈബ്രറികളിൽ പ്രവർത്തിക്കുമ്പോഴോ ഇത് പ്രത്യേകിച്ചും പ്രയോജനകരമാണ്. ഒരു ഫംഗ്ഷൻ അല്ലെങ്കിൽ ഒബ്ജക്റ്റ് സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ നിന്നാണ് വരുന്നതെന്ന് വ്യക്തമായി സൂചിപ്പിക്കുന്നതിലൂടെ, ഭാവിയിൽ അതിൽ പ്രവർത്തിച്ചേക്കാവുന്ന മറ്റ് ഡെവലപ്പർമാർക്ക് നിങ്ങളുടെ കോഡ് മനസ്സിലാക്കാനും പരിപാലിക്കാനും എളുപ്പമാക്കാം.
- എന്തുകൊണ്ടാണ് "നെയിംസ്പേസ് എസ്ടിഡി ഉപയോഗിക്കുന്നത്;" മോശം പ്രയോഗം പരിഗണിക്കുമോ?
- ഇത് നെയിം കൂട്ടിയിടികളുടെ അപകടസാധ്യത വർദ്ധിപ്പിക്കുകയും ഫംഗ്ഷനുകളും ഒബ്ജക്റ്റുകളും എവിടെ നിന്ന് ഉത്ഭവിക്കുന്നുവെന്നും മറയ്ക്കുന്നതിലൂടെ കോഡ് കുറച്ച് വായിക്കാൻ കഴിയും.
- "namespace std;" ഉപയോഗിക്കുന്നതിനുള്ള ഇതരമാർഗങ്ങൾ എന്തൊക്കെയാണ്?
- വ്യക്തമായി ഉപയോഗിക്കുക സ്റ്റാൻഡേർഡ് ലൈബ്രറി ഫംഗ്ഷനുകൾക്കും ഒബ്ജക്റ്റുകൾക്കും മുമ്പ്, അല്ലെങ്കിൽ പ്രാദേശികവൽക്കരിക്കുക ഒരു ഫംഗ്ഷൻ പോലെ പരിമിതമായ പരിധിക്കുള്ളിൽ.
- "നെയിംസ്പേസ് എസ്ടിഡി ഉപയോഗിക്കുന്നത്;" പ്രകടനത്തെ സ്വാധീനിക്കുമോ?
- നേരിട്ടുള്ള പ്രകടന പ്രത്യാഘാതങ്ങൾ ഒന്നുമില്ല, പക്ഷേ അത് പരിപാലിക്കാൻ ബുദ്ധിമുട്ടുള്ള കോഡിലേക്ക് നയിച്ചേക്കാം, ഇത് ബഗുകളും കാര്യക്ഷമതയില്ലായ്മയും വഴി പ്രകടനത്തെ പരോക്ഷമായി ബാധിക്കും.
- "namespace std;" ഉപയോഗിക്കുന്നത് എപ്പോഴെങ്കിലും ശരിയാണോ?
- ചെറുതും ലളിതവുമായ പ്രോഗ്രാമുകളിലോ അല്ലെങ്കിൽ പേരുകളുടെ കൂട്ടിയിടി ആശങ്കപ്പെടാത്ത വളരെ പരിമിതമായ പരിധിക്കുള്ളിലോ ഇത് സ്വീകാര്യമായിരിക്കും.
- നെയിം കൂട്ടിയിടികൾ എൻ്റെ പ്രോഗ്രാമിനെ എങ്ങനെ ബാധിക്കും?
- അവ അവ്യക്തമായ ഫംഗ്ഷൻ കോളുകൾ, അപ്രതീക്ഷിത പെരുമാറ്റം, ഡീബഗ് ചെയ്യാൻ ബുദ്ധിമുട്ടുള്ള കംപൈലേഷൻ പിശകുകൾ എന്നിവയ്ക്ക് കാരണമാകും.
- "നെയിംസ്പേസ് std ഉപയോഗിച്ച്;" കഴിയും ഹെഡർ ഫയലുകളിൽ ഉപയോഗിക്കണോ?
- ഇല്ല, ഹെഡർ ഫയലുകളിൽ ഇത് ഒഴിവാക്കണം, കാരണം ആ ഹെഡ്ഡർ ഉൾപ്പെടുന്ന എല്ലാ ഫയലുകളെയും ഇത് ബാധിക്കും, കൂട്ടിയിടി സാധ്യത വർദ്ധിപ്പിക്കും.
- വ്യക്തമായ നെയിംസ്പേസ് ഉപയോഗം എങ്ങനെയാണ് കോഡ് റീഡബിലിറ്റി മെച്ചപ്പെടുത്തുന്നത്?
- ഫംഗ്ഷനുകളുടെയും ഒബ്ജക്റ്റുകളുടെയും ഉത്ഭവം ഇത് വ്യക്തമായി സൂചിപ്പിക്കുന്നു, ഇത് കോഡ് മനസ്സിലാക്കുന്നത് എളുപ്പമാക്കുകയും ആശയക്കുഴപ്പം കുറയ്ക്കുകയും ചെയ്യുന്നു.
- C++ ലെ നെയിംസ്പേസ് എന്താണ്?
- നെയിംസ്പേസ് എന്നത് ഒരു ഡിക്ലറേറ്റീവ് റീജിയണാണ്, അത് അതിനുള്ളിലെ ഐഡൻ്റിഫയറുകൾക്ക് ഒരു സ്കോപ്പ് നൽകുന്നു, ഇത് നെയിം കൂട്ടിയിടികൾ ഒഴിവാക്കാൻ സഹായിക്കുന്നു.
- കോഡ് പരിപാലനം പ്രധാനമായിരിക്കുന്നത് എന്തുകൊണ്ട്?
- വ്യക്തവും മനസ്സിലാക്കാവുന്നതുമായ കോഡ് നിലനിർത്തുന്നത്, കാലക്രമേണ വ്യത്യസ്ത ഡെവലപ്പർമാർക്ക് അത് കാര്യക്ഷമമായി അപ്ഡേറ്റ് ചെയ്യാനും ഡീബഗ് ചെയ്യാനും കഴിയുമെന്ന് ഉറപ്പാക്കാൻ സഹായിക്കുന്നു.
C++-ൽ ഫലപ്രദമായ നെയിംസ്പേസ് മാനേജ്മെൻ്റ്
ഉപയോഗിക്കുന്നതിൽ ഒരു പ്രധാന പ്രശ്നം പേര് കൂട്ടിമുട്ടാനുള്ള സാധ്യതയാണ്. C++ സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ നിരവധി പൊതു ഐഡൻ്റിഫയറുകൾ ഉൾപ്പെടുന്നു, അവ ഉപയോക്തൃ കോഡിലോ മറ്റ് ലൈബ്രറികളിലോ ഉപയോഗിച്ചേക്കാം. ഉദാഹരണത്തിന്, നിങ്ങൾ ഒരു ഫംഗ്ഷൻ അല്ലെങ്കിൽ വേരിയബിൾ എന്ന് നിർവചിക്കുകയാണെങ്കിൽ നിങ്ങളുടെ കോഡിലും ഉപയോഗിക്കാനും , നിങ്ങൾ അവിചാരിതമായി കൂട്ടിയിടിച്ചേക്കാം std::count. ഇത് ആശയക്കുഴപ്പമുണ്ടാക്കുന്ന പിശകുകളിലേക്കും രോഗനിർണയം നടത്താൻ ബുദ്ധിമുട്ടുള്ള ബഗുകളിലേക്കും നയിച്ചേക്കാം.
പരിഗണിക്കേണ്ട മറ്റൊരു വശം കോഡ് റീഡബിലിറ്റിയും പരിപാലനവുമാണ്. വ്യക്തമായി ഉപയോഗിക്കുന്നു പ്രിഫിക്സുകൾ ഫംഗ്ഷനുകളുടെയും ഒബ്ജക്റ്റുകളുടെയും ഉത്ഭവം വ്യക്തമാക്കാൻ സഹായിക്കുന്നു. വലിയ കോഡ്ബേസുകളിലോ ഓവർലാപ്പുചെയ്യുന്ന പേരുകളുള്ള ഒന്നിലധികം ലൈബ്രറികളിൽ പ്രവർത്തിക്കുമ്പോഴോ ഇത് പ്രത്യേകിച്ചും പ്രയോജനകരമാണ്. ഒരു ഫംഗ്ഷൻ അല്ലെങ്കിൽ ഒബ്ജക്റ്റ് സ്റ്റാൻഡേർഡ് ലൈബ്രറിയിൽ നിന്നാണ് വരുന്നതെന്ന് വ്യക്തമായി സൂചിപ്പിക്കുന്നതിലൂടെ, ഭാവിയിൽ അതിൽ പ്രവർത്തിച്ചേക്കാവുന്ന മറ്റ് ഡെവലപ്പർമാർക്ക് നിങ്ങളുടെ കോഡ് മനസ്സിലാക്കാനും പരിപാലിക്കാനും എളുപ്പമാക്കാം.
ഉപസംഹാരമായി, ഒഴിവാക്കുന്നു C++-ൽ നെയിം കൂട്ടിയിടികൾ തടയുന്നതിനും കോഡ് റീഡബിലിറ്റി മെച്ചപ്പെടുത്തുന്നതിനും അത്യാവശ്യമാണ്. വ്യക്തമായി ഉപയോഗിക്കുന്നതിലൂടെ ഫംഗ്ഷനുകൾക്കുള്ളിൽ നെയിംസ്പേസ് ഡിക്ലറേഷനുകൾ പ്രിഫിക്സുകളും പ്രാദേശികവൽക്കരിക്കുന്നതും, ഡെവലപ്പർമാർക്ക് കൂടുതൽ വ്യക്തവും പരിപാലിക്കാവുന്നതുമായ കോഡ് എഴുതാൻ കഴിയും. ഒന്നിലധികം ലൈബ്രറികൾ ഉപയോഗിക്കുന്ന വലിയ പ്രോജക്ടുകളിൽ ഈ രീതികൾ വളരെ പ്രധാനമാണ്, കോഡ് ശക്തവും മനസ്സിലാക്കാൻ എളുപ്പവുമാണെന്ന് ഉറപ്പാക്കുന്നു.