Непонятки с шаблоном
От: Инженер  
Дата: 21.10.04 06:38
Оценка:
Столкнулся вот с таким примером:

#include <list>
#include <string>
std::list<std::string> g_RegEntries;

struct RegistratorClass
{
    template <class T>
    RegistratorClass(const T& stuff)
    {
        abrakadabra;
        g_RegEntries.push_back("Some entry");
    }
};

struct MyClass
{
    MyClass()
    {
        // some necessary initialization
    }
};

RegistratorClass reg_entry(MyClass());

using namespace std;

int main(int argc, char *argv[])
{
    std::list<std::string>::iterator It = g_RegEntries.begin();
    if( It == g_RegEntries.end() )
        printf("Wow! Why empty?");
    else
        printf(It->c_str());
    system("PAUSE");    
    
    return 0;
}


Что интересно код компилируется и выполняется.
Результат: "Wow! Why empty?"
Вопрос: Why empty?!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.