Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 00:30   #1
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию g++ pimpl + auto_ptr

добрый день.
имеется код

a.h
Код:
class A_impl;

class A {
public:
	A();

private:
	std::auto_ptr<A_impl> m_p;
};
a.cpp
Код:
#include "header.h"

using namespace std;

class A_impl {
public:
	A_impl()
	{
		cout << "created" << endl;
	}

	~A_impl()
	{
		cout << "destroyed" << endl;
	}
};

A::A() : m_p(new A_impl)
{

}
main.cpp
Код:
#include "a.h"

int main()
{
	A a;
	return 0;
}
в нем есть ошибка (auto_ptr не может удалить объект неполного типа, если деструктор класса А не описать в месте определения типа, в данном случае в a.cpp).
VS срет праведными варнингами, g++ (4.4.4, 4.5.2) почему то молчит.
собирать пытался так:
Код:
g++ -Wall -Wextra --pedantic a.cpp main.cpp
ни единого варнинга. можно ли заставить? спасибо.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 19.03.2011, 11:02   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

ну я не особо надеялся, что тут кто то ответит.
ключ - -Wsystem-headers, ибо по умолчанию 4 гцц не показываеть варнинги в системных заголовках.

соцопрос.
кто нить ВООБЩЕ понял, почему тут ошибка?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц