---

Date: 2007-01-08 01:12
Subject: (no subject)
Security: Public
Tags:cpp, cpp-standard, pod-types, tech

Не давно зашел разговор про то, что же считать POD типом. Я даже как то не смог, четко сказать, чего там быть не должно, единственное, о чем вспомнил - отсутствие виртуальных функций.

Вчера полез в стандарт и все что нашел:

9/4
A POD-struct is an aggregate class that has no non-static data members of type non-POD-struct, non-POD-union (or array of such types) or reference, and has no user-defined copy assignment operator and no user-defined destructor. Similarly, a POD-union is an aggregate union that has no non-static data members of type non-POD-struct, non-POD-union (or array of such types) or reference, and has no userdefined copy assignment operator and no user-defined destructor. A POD class is a class that is either a POD-struct or a POD-union.


Вот тут я нашел следующее:
As an example, the C declaration struct Fred x; does not initialize the members of the Fred variable x. To make this same behavior happen in C++, Fred would need to not have any constructors. Similarly to make the C++ version of copying the same as the C version, the C++ Fred must not have overloaded the assignment operator. To make sure the other rules match, the C++ version must not have virtual functions, base classes, non-static members that are private or protected, or a destructor. It can, however, have static data members, static member functions, and non-static non-virtual member functions.


Так все таки можно ли в POD-типе иметь конструктор или нет?

6 Comments | Post A Comment | Add to Memories | Tell a Friend | Link



Date: 2006-06-14 10:33
Subject: (no subject)
Security: Public
Tags:cpp, cpp-standard, links

Кстати, да. Тут лежит версия стандарта от 2003 года. И из нее можно копировать ;))

5 Comments | Post A Comment | Add to Memories | Tell a Friend | Link



my journal
June 2008
links 2