Witam, mam problem z obsługą kontenerów vector, najpier przedstawię kod modułu:
Plik ConsoleFrame.h:
//---------------------------------------------------------------------------
#ifndef ConsoleFrameH
#define ConsoleFrameH
//---------------------------------------------------------------------------
#include <vector>
using std::vector;
class ConsoleFrame{
private:
//---------- DEFINICJA TYPOW ZMIENNYCH PRYWATNYCH-------------------
struct FT{
unsigned char left_top, top, right_top,
left_center, center, right_center,
left_bottom, bottom, right_bottom;
};
vector<FT> FrameType;
public:
ConsoleFrame();
~ConsoleFrame();
};
#end
Plik ConsoleFrame.cpp:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "ConsoleFrame.h"
//---------------------------------------------------------------------------
ConsoleFrame::ConsoleFrame(){
FrameType.push_back();
}
ConsoleFrame::~ConsoleFrame(){
}
#pragma package(smart_init)
Przy kompilacji w turbo c++,Visual c++,Dev-cpp wywala mi taki błąd:
[C++ Error] ConsoleFrame.cpp(9): E2193 Too few parameters in call to 'std::vector<ConsoleFrame::FT,std::allocator<ConsoleFrame::FT> >::push_back(const ConsoleFrame::FT &)'
Problem w tym że gdy tak obsługuje vector w programie głownym jest wszystko w porządku, a co najciekawsze w Borland C++ Builder 6 Personal już napisałem 80% poterzebnej mi klasy i działa jak trzeba ale w żadnym innym kompilatorze nie chce. To znaczy że w Borland C++ Builder 6 Personal odbiegaja od standardu? Niech mi ktoś wytłumaczy dlaczego tak się dzieję, jak zaimplementować to poprawnie i jak działa poprawy kod. Z góry dziękuję za odpowiedź.