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

Синтаксис объявления freind, и компиляторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Клонирование объекта шаблонного класса http://www.cyberforum.ru/cpp/thread585792.html
Задача ниже представленного механизма - запоминать функции/методы со всеми аргументами, и производить их отложенный запуск по требованию В ниже представленном коде нужно организовать возможность...
C++ Программа управления проектором Nec моделей VT60, VT70, VT80, VT90, VT700, LT170 по порту Rs232 Помогите написать программку на С++ или ассемблере, которая посылала бы простейшие команды на проектор, уже неделю пытаюсь разобраться, никак толком не выйдет(((. есть мануалка с командами http://www.cyberforum.ru/cpp/thread582387.html
C++ Переполнение буфера: что тут происходит?
Добрый вечер; у меня есть уязвимая программа, которая в буфер длиной 30 копирует строку, переданную как аргумент этой программе. Делал по этой статье. Задача - осуществить вызов командной строки. В...
C++ inline assembler VS чтение по указателю
Доброе время суток. Задача состоит в чтении 1 байта по адресу указателя. Проблема с пониманием, что не так с типами операндов. char readFromPointer(char* pointer) { char result; __asm mov...
C++ Внутренняя организация базы данных http://www.cyberforum.ru/cpp/thread578836.html
Нужно написать небольшую консольную бд на с++, хотел бы посмотреть реальные примеры. Подкиньте парочку посмотреть пожалуйста :) В инете конечно полно примеров БД на visual c++ (mfc например), но там...
C++ Как добавить смещение в программу в формате exe хотелось узнать возможно добавить смещение в программу, тоесть к примеру есть код в программе от 0х1 до 0х100 можно ли как нибудь создать адресс к примеру 0х125 и вписать туда какое то значение???... подробнее

Показать сообщение отдельно
Bers
Заблокирован

Синтаксис объявления freind, и компиляторы - C++

25.05.2012, 22:11. Просмотров 726. Ответов 3
Метки (Все метки)

Одному так подавай, другому - так подавай. А как же стандарт?
Неужели нет единого регламентированного синтаксиса объявления класса-френда, который одинаково понимают все компиляторы с++?

Собственно, требуется следующее: что бы гцц, мингв, и студийный компиляторы скушали одно и тоже блюдо:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
 
template<class T>
class Prow
{
public:
    typedef T Result;
};
 
 
template<class T>
class PProw
{
public:
    typedef Prow<T> Result;
};
 
template<class T>
class CCrol
{
    typedef typename PProw<T>::Result Result;
 
    //гцц/мингв шуршит, студия ругается:
    //main.cpp:36: ошибка: C2242: имя typedef не может следовать за классом, структурой или объединением
    friend class PProw<T>::Result;
 
    //студийный шуршит, гцц/мингв ругается:
    //main.cpp:38: ошибка: a class-key must be used when declaring a friend
    //main.cpp:38: ошибка: friend declaration does not name a class or function
    friend Result;
};
 
int main()
{
    cout << "Hello World!" << endl;
    return 0;
}
Есть ли способ сделать единую синтаксическую запись: объявить френда, который является typedef в инстансе шаблонного класса. Да так, что бы её без изменений скушали и гцц/мингв, и студия?

Уж очень мне не хочется уродовать код препроцессором.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru