#include <string>
#include <iostream>
class myClass
{
public:
void method1(int a, int b, std::string str, const char *_function = __builtin_FUNCTION(), const char *_file = __builtin_FILE(), int _line = __builtin_LINE())
{
std::cout << _function << "\n";
std::cout << _file << "\n";
std::cout << _line << "\n";
}
};
class myClass2
{
public:
void method1(int a, int b, std::string str, const char *_function, const char *_file, int _line)
{
std::cout << _function << "\n";
std::cout << _file << "\n";
std::cout << _line << "\n";
}
};
int main()
{
myClass *obj1 = new myClass();
obj1->method1(2, 3, "str");
std::cout << "------------------------------" << std::endl;
myClass2 *obj2 = new myClass2();
obj2->method1(2, 3, "str", __func__, __FILE__, __LINE__);
}