 
  
   
  
  int n = 5;
const std::function& refernce = std::bind([](const int &n) {return n*n; }, n);
const int& x1 = refernce();  // out: x = 25 
  
  QComboBox::showPopup()
QComboBox::hidePopup() 
  
  QTreeWidgetItem* top_level = new QTreeWidgetItem(m_three);
QTreeWidgetItem* child_item = new QTreeWidgetItem(top_level);QStandardItemModel model(rows, columns);
QStandardItem *item = new QStandardItem("top");
QStandardItem *child = new QStandardItem("child");
model.setItem(row, column, item); 
  
  финт ушамив топку!
bool GetData(char* data, int* size);strlen();...считать сначала все символы без сохранения..Не нужно.
 
  
  struct Item {
	Item(): next(NULL), c('\0') {
	}
	char c;
	Item *next;
};
struct List {
	List(const char* in_str) : item(NULL){
		unsigned size = strlen(in_str);
		item = new Item[size];
		for (unsigned i(0); i < size; ++i) {
			item[i].c = in_str[i];
			
			if (i) {
				item[i-1].next = &item[i];
			}
		}
	}
	~List() {
		delete[] item;
	}
	void remove(char in_) {
		Item* it = item;
		while (it) {
			if (it->c == in_) {
				*it = *it->next;
			}
			if (it->next) {
				if (it->c != in_) {
					it += (it->next - it);
				}
			} else {
				if (it->c == in_) {
					it->c = '\0';
				}
				break;
			}
		}
	}
	const char* takeString() {
		const unsigned size = 255;
		char str[size];
		Item* it = item;
		char* ptrstr = (char*)&str;
		memset(&str, '\0', size);
		while (it) {
			*ptrstr = it->c;
			if (!it->next) {
				break;
			}
					
			if (it->next) {
				it += (it->next - it);
				++ptrstr;
			} else {
				break;
			}
		}
		return str;
	}
	Item* item;
};
int main()
{
	List list("    bla1         bla2  bla3    ");
	list.remove(' ');
	printf("\n begin[%s%s\n", list.takeString(), "]end");
	return 0;
} 
  
  std::vector<std::thread> thread_pool;
void foo(int i) {
	// do...
}
int main() {
	thread_pool.push_back(std::thread(foo, 5));
	return 0;
}