2012-11-13 5 views
5

W funkcji Boost są dostępne wygodne funkcje umożliwiające napełnienie kontenera pojedynczą linią. Na przykład list_of pozwala na przykład wypełnić taką listę.Czy Qt ma coś równego modułowi Boost's assign?

#include <boost/assign/list_of.hpp> // for 'list_of()' 
#include <list> 
std::list<int> primes = boost::assign::list_of(2)(3)(5)(7)(11); 

Na moim projekcie używam Qt i nie mogę użyć Boost. Czy istnieje równie wygodny sposób na wypełnienie pojemników Qt w punkcie budowy?

+0

Dlaczego nie można użyć bodźcem? –

+0

Myślę, że doszło do starcia z inną biblioteką, której używaliśmy. Pod koniec dnia jest to część dużej bazy kodu i nie jest warte mojej chwili, aby poprosić o wprowadzenie nowej biblioteki do naszego procesu budowania tylko dla tej wygody! (Wszystko, na czym mógłbym polegać, jest w dużej mierze objęte Qt.) –

Odpowiedz

12

Można użyć qlist :: operator < <

QList<int> primes = QList<int>() << 2 << 3 << 5 << 7 << 11; 
6

Od wersji 4.8 Qt obsługuje standardową inicjalizację C++ 11 dla większości kontenerów.

http://doc.qt.digia.com/4.8-snapshot/qt4-8-intro.html

+0

Celem Boost.Assign jest dostarczenie składni inicjalizacji dla kompilatorów przed C++ 11. –

+2

@fish And? Pytanie nie pyta o Boost, to pytanie, czy pojemniki Qt mogą być wypełnione w podobny sposób. Od 4,8 mogą, jeśli używasz kompilatora C++ 11. –

+0

Pytanie brzmi, czy istnieje odpowiednik biblioteki dla Qt, który byłby biblioteką lub składnią, która nie wymaga kompilatora C++ 11. –

Powiązane problemy