সংকলনের সময় এটি নিশ্চিত করা সম্ভব যে কোনও পদ্ধতিতে ঠিক এক জায়গায় ডাকা হয়েছিল কিনা তা নিয়ে আমি আগ্রহী।
মনে রাখবেন যে ফাংশনটিকে একাধিকবার বলা হয় (যেমন একটি লুপে) - তবে এটি দুটি পৃথক লুপে কল করা উচিত নয়।
এটি দুটি ভাগে বিভক্ত হতে পারে, আমি যে সমাধানগুলির যে কোনও অংশকে কভার করে তা সম্পর্কে আগ্রহী:
(ক) কমপক্ষে একটি জায়গায় কোনও পদ্ধতি বলা হয়েছে তা নিশ্চিত করুন a
একটি পদ্ধতি আহ্বান করা নিশ্চিত করা (খ) সর্বাধিক এক জায়গায় একটি পদ্ধতি আহ্বান করা নিশ্চিত করা
কোডের কাঠামোর উপরে আমার সম্পূর্ণ নিয়ন্ত্রণ রয়েছে এবং একই ধারণা অর্জনকারী বিভিন্ন বুদ্ধিমানদের আমরা স্বাগত জানাই।
// class.h
class MyClass {
public:
void my_method();
}
নিম্নলিখিতগুলি সংকলন করা উচিত নয় (কখনও বলা হয় না)
#include "class.h"
int main() {
MyClass my_class;
}
নিম্নলিখিতগুলি সংকলন করা উচিত নয় (একাধিক স্থানে ডাকা হয়)
#include "class.h"
int main() {
MyClass my_class;
my_class.my_method();
while(true) {
my_class.my_method();
}
}
নিম্নলিখিতগুলি সংকলন করা উচিত (ঠিক এক জায়গায় ডাকা):
#include "class.h"
int main() {
MyClass my_class;
while(true) {
my_class.my_method();
}
}
__COUNTER__ম্যাক্রো ব্যবহার করতে পারেন । কিছু একটা static_assert(__COUNTER__ == 0); my_class.my_method();। তবে কাউন্টার প্রতিটি অনুবাদ ইউনিটে পুনরায় সেট করে যাতে আপনি কেবল এটি পরীক্ষা করে দেখতে পারেন যে ফাংশনটি অনুবাদ ইউনিট প্রতি একবার ডাকা হয় is