Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> адрес метода в mpl тип 
V
    Опции темы
boostcoder
Дата 12.1.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



всем привет.
код:
Код

#include <iostream>

#include <boost/mpl/at.hpp>
#include <boost/mpl/vector.hpp>

#include <boost/bind.hpp>
#include <boost/function.hpp>

struct test {
   void m1() { std::cout << "test::m1()" << std::endl; }
   void m2() { std::cout << "test::m2()" << std::endl; }
};

typedef boost::mpl::vector<
   test, // class type
   void(), // signature
   &test::m2 // method name <<<<<<<<<<<<<<<<<<<<<<<<<<
> meta;

int main() {
   boost::mpl::at_c<meta, 0>::type obj;
   obj.m1();
   
   boost::function<
      boost::mpl::at_c<meta, 1>::type // get signature
   > f = boost::bind(boost::mpl::at_c<meta, 2>::type, &obj);
}


http://liveworkspace.org/code/ec58c0ac901a...0cfb731946a6372

в общем, идея в том, чтоб первым аргументом в boost::bind() подставлять методы которые хранятся в mpl последовательности.
но что-то компилятор не позволяет в mpl последовательность пихать имена методов. и, я подозреваю, что он прав.

к примеру, если этот код изменить так, то все ок.
Код

#include <iostream>

#include <boost/mpl/at.hpp>
#include <boost/mpl/vector.hpp>

#include <boost/bind.hpp>
#include <boost/function.hpp>

struct test {
   void m1() { std::cout << "test::m1()" << std::endl; }
   void m2() { std::cout << "test::m2()" << std::endl; }
};

typedef boost::mpl::vector<
   test, // class type
   void() // signature
> meta;

int main() {
   boost::mpl::at_c<meta, 0>::type obj;
   obj.m1();
   
   boost::function<
      boost::mpl::at_c<meta, 1>::type // get signature
   > f;
}


http://liveworkspace.org/code/9bc14fc4f533...abbca9544b68b8c

спасибо.

Это сообщение отредактировал(а) boostcoder - 19.1.2011, 17:27
PM WWW   Вверх
mes
Дата 12.1.2011, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата

 &test::m2 // method name <<<<<<<<<<<<<<<<<<<<<<<<<<

где ж это имя ? это адрес..



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.1.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  12.1.2011,  22:38 Найти цитируемый пост)
где ж это имя ?

ну да, хранится адрес, а записываю имя smile 
Вы поняли что я имел ввиду smile 

как такое можно проделать?

Добавлено через 2 минуты и 22 секунды
Цитата(mes @  12.1.2011,  22:38 Найти цитируемый пост)
это адрес..

идея!
ща..

Добавлено через 13 минут и 39 секунд
нет. не правильная идея :(

есть какие-то варианты?
PM WWW   Вверх
mes
Дата 12.1.2011, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  12.1.2011,  21:40 Найти цитируемый пост)
ну да, хранится адрес, а записываю имя  
Вы поняли что я имел ввиду  

но Вы меня по-мойму нет smile
список типов, а пытаетесь сохранить в нем значение smile

Добавлено @ 23:08
Цитата(boostcoder @  12.1.2011,  21:40 Найти цитируемый пост)
идея!

добавить wrapper mpl::int_ ? насколько я знаю, не пойдет ибо адрес метода не конвертится в инт..

Цитата(boostcoder @  12.1.2011,  21:40 Найти цитируемый пост)
есть какие-то варианты? 

сейчас посмотрю, что пытаетесь этим сделать..

Добавлено через 6 минут и 38 секунд
Цитата(boostcoder @  12.1.2011,  21:16 Найти цитируемый пост)
в общем, идея в том, чтоб первым аргументом в boost::bind() подставлять методы которые хранятся в mpl последовательности.

a плейсхолдеры кто в таком случае подставлять будет?

Это сообщение отредактировал(а) mes - 12.1.2011, 23:12


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.1.2011, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  12.1.2011,  23:07 Найти цитируемый пост)
но Вы меня по-мойму нет 
список типов, а пытаетесь сохранить в нем значение

да-да. допер)

&test::m1 - это адрес.
его тип - void(test::*)(). правильно?

но тогда, по идее, нужен fusion::vector?

Добавлено через 1 минуту и 53 секунды
Цитата(mes @  12.1.2011,  23:07 Найти цитируемый пост)
a плейсхолдеры кто в таком случае подставлять будет?

дааа... плейсхолдеры.. :(
PM WWW   Вверх
mes
Дата 12.1.2011, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  12.1.2011,  22:14 Найти цитируемый пост)
его тип - void(test::*)(). правильно?

если строго, то нет..  не его тип smile



Это сообщение отредактировал(а) mes - 12.1.2011, 23:19


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.1.2011, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  12.1.2011,  23:19 Найти цитируемый пост)
если строго, то нет..  не его тип

это как? не понял...
PM WWW   Вверх
mes
Дата 12.1.2011, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  12.1.2011,  22:14 Найти цитируемый пост)
но тогда, по идее, нужен fusion::vector?

тогда нужно привести адрес к целочисленному типу.. а это не позволительно.. 

теоретически нужен wrapper для преобразования адреса в тип, наподобие вышеупомянутого mpl::int_

Добавлено через 4 минуты и 34 секунды
Цитата(boostcoder @  12.1.2011,  22:22 Найти цитируемый пост)
это как? не понял... 

если "его" - это адрес, то правильно..
я почему то подумал, что речь о методе.. 




--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.1.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  12.1.2011,  23:23 Найти цитируемый пост)
теоретически нужен wrapper для преобразования адреса в тип, наподобие вышеупомянутого mpl::int_

т.е. нужен шаблон типа: method_address< ??? >::type ?
а какой в этом случае должен быть тип параметра шаблона?

Это сообщение отредактировал(а) boostcoder - 12.1.2011, 23:38
PM WWW   Вверх
mes
Дата 12.1.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250





--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.1.2011, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



вроде понял. попробую реализовать.
спасибо smile 

зы
тему пока не закрываю.
PM WWW   Вверх
boostcoder
Дата 13.1.2011, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, здравствуйте.
скажите, я правильно понимаю, что адрес метода(или его смещение) известно в компайл-тайм?
PM WWW   Вверх
mes
Дата 13.1.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  13.1.2011,  10:48 Найти цитируемый пост)
скажите, я правильно понимаю, что адрес метода(или его смещение) известно в компайл-тайм? 

ммм... так же как и у функции.. с теми же ограничениями.. 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 13.1.2011, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  13.1.2011,  14:35 Найти цитируемый пост)
так же как и у функции.. с теми же ограничениями.. 

осталось выяснить совсем чуток: как, и с какими smile 

Это сообщение отредактировал(а) boostcoder - 13.1.2011, 16:18
PM WWW   Вверх
mes
Дата 13.1.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



из того, что я знаю:
 значение адреса  функции не является const_expr
 адрес можно использовать как шаблон параметра.. 




--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



подниму тему.
и немного перефразирую: как из адреса метода можно извлечь тип - указатель на метод?
нужно для этого:
Код

#include <iostream>

struct test {
   void m1()    { std::cout << "void test::m1();" << std::endl; }
   void m2(int) { std::cout << "void test::m2(int);" << std::endl; }
   int  m3(int) { std::cout << "int  test::m3(int);" << std::endl; }
};

template<
   typename Method // how to determine the signature?
>
struct method {
};

int main() {
   typedef typename method<&test::m1>::type m1;
   m1 = &test::m1;
}

http://liveworkspace.org/code/c38a753fbe63...2be749fded033d7

Цитата(mes @  13.1.2011,  17:09 Найти цитируемый пост)
адрес можно использовать как шаблон параметра.. 

или "как параметр шаблона" ?

в любом случае, это возможно, если имеется тип-указатель на метод.
вопрос именно в том, как определить сигнатуру из адреса?
получить из сигнатуры тип - не проблема.

спасибо.

Добавлено через 4 минуты и 32 секунды
красивого способа наверняка нет. придется лепить метакод + mpl::if_
PM WWW   Вверх
mes
Дата 19.1.2011, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  15:47 Найти цитируемый пост)
или "как параметр шаблона" ?

ага сорри.. опечатка..  smile 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



по идее, параметр "Method" шаблона "method", должен быть шаблонном создающим тип.

как-то так:
Код

template<...>
struct method_signature {
   typedef ... type;
};

template<
   typename method_signature< ??? >::type
>
struct method {
};

на этом мои мысли заканчиваются..
PM WWW   Вверх
mes
Дата 19.1.2011, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  16:00 Найти цитируемый пост)
как-то так:

не пойму чего Вы хотите с этим сделать...

вот немного:
http://liveworkspace.org/code/0f76d30d4c20...76b61098e42bd19



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  19.1.2011,  22:05 Найти цитируемый пост)
не пойму чего Вы хотите с этим сделать...

хочу одним выстрелом убить двух зайцев.
первый - по адресу метода определить сигнатуру, сами знаете для чего ;)
второй - сохранить переданный адрес.

PM WWW   Вверх
mes
Дата 19.1.2011, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  21:09 Найти цитируемый пост)
первый - по адресу метода определить сигнатуру, сами знаете для чего 

Вы должны ж его ассоциировать с имппульсом ? а значит сигнатуру метода можно составить по аргументам импульса.. 





--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, в данный момент, я пытаюсь избавить юзера от деклараций импульсов.
сейчас, регистрация такая:
Код


struct test {
   void m1(int) { std::cout << "void test::m1();" << std::endl; }
};

...

test t;

dispacher disp;
disp.on<void(int)>(&t, "test.m1") = &test::m1;


хочу такую:
Код

disp.on<&test::m1>(&t, "test.m1");


т.е. чтоб юзер не заботился о вписывании сигнатуры.

согласен что это не жизненно необходимо.. но все же.

Это сообщение отредактировал(а) boostcoder - 19.1.2011, 22:33
PM WWW   Вверх
mes
Дата 19.1.2011, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  21:33 Найти цитируемый пост)
т.е. чтоб юзер не заботился о вписывании сигнатуры.

т.е. Вам нужна шаблонная функция принимающая одним из параметров метод ?



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  19.1.2011,  22:52 Найти цитируемый пост)
т.е. Вам нужна шаблонная функция принимающая одним из параметров метод ?

да.
но чтоб она принимала метод, какой-то шаблон должен определить сигнатуру метода.

PM WWW   Вверх
mes
Дата 19.1.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  21:54 Найти цитируемый пост)
да.

http://liveworkspace.org/code/af6e13278621...bb155fa6c53590d




--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 19.1.2011, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  19.1.2011,  22:59 Найти цитируемый пост)
http://liveworkspace.org/code/af6e13278621...bb155fa6c53590d

я и не знал что так можно smile 
я полагал, что если уж использовать адрес метода в качестве параметра шаблона, то должна быть известна сигнатура... эх.. smile 

спасибо Вам огромное smile 
вопрос закрыт.

Это сообщение отредактировал(а) boostcoder - 19.1.2011, 23:25
PM WWW   Вверх
boostcoder
Дата 20.1.2011, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, а как такой прием вообще называется? где о нем можно почитать? smile 
я сейчас полистал свои книжки, и сходу ничего подобного не нашел. в принципе это не новость для меня, т.к. если бы об этом писали в книжках, то я наверняка запомнил бы.

Добавлено через 2 минуты и 44 секунды
в принципе с помощью этого трюка, получилось привести регистрацию к такому виду:
Код

type1 t;
registry reg("type1");
reg.reg(&t, &type1::m1, "m1");
reg.reg(&t, &type1::m2, "m2");


что меня сильно радует smile 
PM WWW   Вверх
mes
Дата 20.1.2011, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  20.1.2011,  01:06 Найти цитируемый пост)
, а как такой прием вообще называется? где о нем можно почитать?

как называется не знаю..a почитать, наверно, только в бусте smile хорoших книжек по шаблонам не встречал.. :( . 


Цитата(boostcoder @  20.1.2011,  01:06 Найти цитируемый пост)
 получилось привести регистрацию к такому виду:

еще было б хорошо &t не регистрировать в каждом методе.. 


Это сообщение отредактировал(а) mes - 20.1.2011, 15:25


--------------------
PM MAIL WWW   Вверх
mes
Дата 22.1.2011, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  19.1.2011,  21:33 Найти цитируемый пост)
я пытаюсь избавить юзера от деклараций импульсов.

с одной стороны идея хорошая, связывать при регистрации id и тип..
но с другой стороны лишаемся отсутствия статического контроля..


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.1.2011, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  20.1.2011,  09:36 Найти цитируемый пост)
еще было б хорошо &t не регистрировать в каждом методе..

сделал так:
Код

      distributor disp;
      registry<type1> registry = disp.get_registry(&t, "type1");
      registry
         .on("m1", &type1::m1)
         .on("m2", &type1::m2);

лучше придумать не удается..

Цитата(mes @  22.1.2011,  14:09 Найти цитируемый пост)
с одной стороны идея хорошая, связывать при регистрации id и тип..
но с другой стороны лишаемся отсутствия статического контроля..

да. это так.
есть предложения?
PM WWW   Вверх
mes
Дата 22.1.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



вот что набросалось :
Код


namespace cts {
    dy::method<void()> user("user");
    dy::method<void()> quit("quit"); 
}

struct auth_impl
{
    void on_user () {}
    void on_quit () {}
};

dy::def_class<auth_impl> _auth("auth"); 

_auth
  .def_fn (cts::user, &auth_impl::on_user)
  .def_fn (cts::quit, &auth_impl::on_quit)
;  

dy::object<T> _object (_class, this);



--------------------
PM MAIL WWW   Вверх
mes
Дата 22.1.2011, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



на этой основе пришла в голову абстракция импульс -> волна -> канал..
надо будет подумать.. 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 12.3.2011, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



получается, что все же невозможно в mpl тип сохранить адрес метода... жаль :(
PM WWW   Вверх
mes
Дата 12.3.2011, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  12.3.2011,  08:23 Найти цитируемый пост)
получается, что все же невозможно в mpl тип сохранить адрес метода...

почему нельзя ?  нельзя делать в компиль-тайме операции связанные непосредственно со значением адреса.. можно, например, разгрузить через тип, к которому впоследствии можно применить операцию вызова, и этот тип запихивать в мпл вектор.. 

http://liveworkspace.org/code/c8f262908709...d63ed974fb8e675

но только стоит ли овчинка выделки ?


--------------------
PM MAIL WWW   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1125 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.