Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Shadows_in_Rain
0 / 0 / 0
Регистрация: 24.08.2011
Сообщений: 7
#1

Ссылки VS портабельность. - C++

04.03.2012, 18:00. Просмотров 267. Ответов 0
Метки нет (Все метки)

Предыстория
под катом.
Я пишу хост для плагинов. Когда плагин загружен, он получает указатель на таблицу функций. Иногда мне нужно построить "текучий интерфейс", типа такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef struct{} *ht_MenuNode;
struct iMenuNode
{
    struct iEditor
    {
        typedef iEditor *t_loopback;
 
        t_loopback (*SetCaption)  (const char *);
        t_loopback (*AddChild)    (ht_MenuNode Child);
        // etc ...
 
        ht_MenuNode (*GetHandle)();
    };
 
    iEditor * (*New)  ();
    iEditor * (*Edit) (ht_MenuNode);
    // ...
};
По привычке я использую указатели, но в этом случае мне хотелось бы использовать ссылки, ибо
1. Функции этого интерфейса никогда не вернут невалидный указатель на iEditor.
2. По очевидным причинам сохранять указатель на iEditor недопустимо.
3. Нет необходимости поддерживать совместимость с Си.
4. Я не прочь сэкономить немного времени при наборе длинных текстов.

C++
1
2
iEditor & (*New)  ();
iEditor & (*Edit) (ht_MenuNode);
Но:
1. Под одной и той же платформой плагины могут быть скомпилированы разными компиляторами.
2. Я не видел аналогичных интерфейсов, где бы использовались ссылки.
Поэтому меня мучают сомнения.


Собственно вопрос.
Передача-по-ссылке и возврат-по-ссылке — это портабельные приёмы?
Прописано ли это как-либо в стандарте?

До этого я задавал вопрос на стакЪоверфлов, но ответов вообще не получил, только смутные комментарии.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 18:00     Ссылки VS портабельность.
Посмотрите здесь:

Ссылки C++
Ссылки C++
Ссылки C++
C++ ссылки
C++ ссылки
C++ Ссылки и указатели
Ссылки в С++ C++
Возврат ссылки C++
Указатели и ссылки C++
C++ Ссылки
Rvalue ссылки C++
Зачем нужны rvalue ссылки, если есть универсальные ссылки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru