Сообщение Re[6]: Про идентичность const от 24.01.2025 8:36
Изменено 24.01.2025 8:39 Shmj
Re[6]: Про идентичность const
Здравствуйте, rg45, Вы писали:
R>Вот ты непрошибаемый. Тебе не приходило в голову, что, если б не твои операции взятия адресов, то компилятор мог бы вообще не создавать никаких объектов? Вот тебе пример, обрати внимание на созданный машинный код:
R>https://godbolt.org/z/nrjM1rhMa
Ну вот этого я и ждал, лучше опозориться и узнать что-то полезное, чем с гордостью сохранять невежество.
А вот тут: https://www.programiz.com/online-compiler/6eYq7jWJZ85iG
По идее же нет смысла создавать новый объект? А он вроде как создается: https://godbolt.org/z/9GaGa7eKn
R>Вот ты непрошибаемый. Тебе не приходило в голову, что, если б не твои операции взятия адресов, то компилятор мог бы вообще не создавать никаких объектов? Вот тебе пример, обрати внимание на созданный машинный код:
R>https://godbolt.org/z/nrjM1rhMa
Ну вот этого я и ждал, лучше опозориться и узнать что-то полезное, чем с гордостью сохранять невежество.
А вот тут: https://www.programiz.com/online-compiler/6eYq7jWJZ85iG
#include <iostream>
class MyClass {
public:
int value;
constexpr MyClass(int v) : value(v) {}
};
int main() {
const MyClass* obj1 = new MyClass(5);
const MyClass* obj2 = new MyClass(5);
std::cout << "Address of obj1: " <<static_cast<const void*>(obj1) << std::endl;
std::cout << "Address of obj2: " << static_cast<const void*>(obj2) << std::endl;
delete obj1;
delete obj2;
return 0;
}
По идее же нет смысла создавать новый объект? А он вроде как создается: https://godbolt.org/z/9GaGa7eKn
Re[6]: Про идентичность const
Здравствуйте, rg45, Вы писали:
R>Вот ты непрошибаемый. Тебе не приходило в голову, что, если б не твои операции взятия адресов, то компилятор мог бы вообще не создавать никаких объектов? Вот тебе пример, обрати внимание на созданный машинный код:
R>https://godbolt.org/z/nrjM1rhMa
Ну вот этого я и ждал, лучше опозориться и узнать что-то полезное, чем с гордостью сохранять невежество.
А вот тут: https://www.programiz.com/online-compiler/6eYq7jWJZ85iG
По идее же нет смысла создавать новый объект? А он вроде как создается: https://godbolt.org/z/9GaGa7eKn
P.S.
Добавил const — для поля — ничего не изменилось.
R>Вот ты непрошибаемый. Тебе не приходило в голову, что, если б не твои операции взятия адресов, то компилятор мог бы вообще не создавать никаких объектов? Вот тебе пример, обрати внимание на созданный машинный код:
R>https://godbolt.org/z/nrjM1rhMa
Ну вот этого я и ждал, лучше опозориться и узнать что-то полезное, чем с гордостью сохранять невежество.
А вот тут: https://www.programiz.com/online-compiler/6eYq7jWJZ85iG
#include <iostream>
class MyClass {
public:
const int value;
constexpr MyClass(int v) : value(v) {}
};
int main() {
const MyClass* obj1 = new MyClass(5);
const MyClass* obj2 = new MyClass(5);
std::cout << "Address of obj1: " <<static_cast<const void*>(obj1) << std::endl;
std::cout << "Address of obj2: " << static_cast<const void*>(obj2) << std::endl;
delete obj1;
delete obj2;
return 0;
}
По идее же нет смысла создавать новый объект? А он вроде как создается: https://godbolt.org/z/9GaGa7eKn
P.S.
Добавил const — для поля — ничего не изменилось.