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

Friend declaration construction - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какой паттерн подойдет, чтобы избежать длинных ветвлений? http://www.cyberforum.ru/cpp/thread1780896.html
здравствуйте, есть код схематично такой: class CTest_base { public: CTest_base() : vec() {} virtual ~CTest_base() noexcept {} //something else protected: std::vector<int> vec; };
C++ Что такое фреймворк? Доброго времени суток. Объясните пожалуйста на счет фреймворков. Несколько минут погуглив я примерно понял что это такое, но все же остались сомнения. В универе нам сказали писать программы в QT. При изучении заметил, что большинство библиотек начинались с буквы "Q" : QString, QWidgets, QObject, QMainWindow .... Правильно ли я понимаю, что QT это и есть один из фреймворков, которые позволяют... http://www.cyberforum.ru/cpp/thread1780854.html
C++ Скорость или размер. Динамика
Есть ряд вопросов.. 1) Что быстрее считает процессор (соответственно с разрядностью). К примеру динамически создаётся массив. Из этого массива надо вычислить к примеру c=a+b. Если c = m и a = m, то есть ли разница в скорости обработки (подачи аргумента в функцию/арифметическую операцию?) если сравнивать b = m или b = m. 2) Какова скорость обработки указателей, есть ли какие то зависимости?...
C++ Существует ли какие-нибудь мета редакторы(авто дописывание кода)?
Всем доброго времени суток! Я решил оптимизировать свою работу и придумал следующую идею на основе авто кода в C++ XE3. Если в среде написать switch и следать пробел, то программа сама допишет то, что нужно программисту. Пример: я писал switch(Enum_Value), где enum Enum_Value{Value1,Value2,Value3} После того, как я нажимал пробел или enter, программа сама дописывала switch(Enum_Value){...
C++ Таблица символов для компилятора http://www.cyberforum.ru/cpp/thread1778725.html
Делаю простой компилятор и что-то зависла на вопросе о том, как хорошо реализовать таблицу символов. Реализовать в виде класса, где в качестве поля используется, скажем, вектор, в который добавляются символы. При этом, чтобы такая таблица была одна, и другие классы, представляющие структуру языка (Variable, Constant) могли к ней обращаться. Думала о реализации Одиночки, но не очень хорошо...
C++ Хэш код для нормализованного вектора Мне нужно генерировать 64-разрядный хэш для трехмерных нормализованных векторов (double). Хэши должны быть равны если сгенерированы из одного или равных (поэлементно) векторов. У кого какие мысли? Может есть стандартный алгоритм? Да и ещё - после генерации 64-разрядного хэш-кода я увязываю его с 64-разрядным "ключевым сидом" методом XOR и далее сливаю в 32-битное значение применяя XOR к... подробнее

Показать сообщение отдельно
ASCII
90 / 62 / 10
Регистрация: 15.12.2013
Сообщений: 399
Завершенные тесты: 2
16.07.2016, 17:06  [ТС]     Friend declaration construction
Nosey,
Цитата Сообщение от Nosey Посмотреть сообщение
— if the name of the friend is a qualified or unqualified template-id, the friend declaration refers to a
specialization of a function template, otherwise
— if the name of the friend is a qualified-id and a matching non-template function is found in the specified
class or namespace, the friend declaration refers to that function, otherwise,
— if the name of the friend is a qualified-id and a matching function template is found in the speci-
fied class or namespace, the friend declaration refers to the deduced specialization of that function
template (14.8.2.6), otherwise,
— the name shall be an unqualified-id that declares (or redeclares) an ordinary (non-template) function.
1) Если имя друга квалифицированный или не квалифицированный template-id ( name_of_function<type1, type2> ), то объявление друга ссылается на специализацию шаблона функции

Тут вроде все понятно, тут говорится про template-id, то есть с указанием угловых скобок

2) Если имя друга квалифицированный идентификатор и соответствует не шаблонной функции в указанном классе или пространстве
имен (как тут правильней перевести?)
, объявление друга ссылается на функцию (обычную)

3) Если имя друга квалифицированный идентификатор и соответствует найденной шаблонной функции в указанном классе или
пространстве имен, объявление друга ссылается на выведенную специализацию шаблона того шаблона функции

4) в противном случае имя должно быть неквалифицированным идентификатором, которое объявляет обычно не шаблонную функцию.

Что это все значит??? Перевести это одно, а вот правильно понять - другое...

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