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

Выбор шаблонного варианта для аргумента-массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка "Недопустимый else без парного if" http://www.cyberforum.ru/cpp/thread1273030.html
#include <iostream> #include <stdio.h> using namespace std; // ВЫВОД МАТРИЦЫ НА ЭКРАН void print(int **Q, int x, int y) { int i, j; for (i = 0; i<x; i++)
C++ Unexpected() не вызывается Всем привет! Читаю бессмертный труд Страуструпа Язык программирования С++издания 2011 года (п.14.6 о спецификации исключений): Если во время своего выполнения она (функция со спецификацией исключений) попробует произвести действия, нарушающие объявленную гарантию, такая попытка приведет к вызову стандартной функции std::unexpected (). По умолчанию, функция std::unexpected() вызывает... http://www.cyberforum.ru/cpp/thread1273018.html
Разделить функцию на две C++
Выполнил контрольную. Все работает как надо. Но потом заметил, что пропустил в условии "минимум 2 функции". Помогите без потерь переместить кусок кода из 1 функции в другую. Желательно тот кусок, который "//вычисляю строку по убыванию и записываю ее номер". #include <stdio.h> int dop(int,int,int,int); #define nn 20 int main() { int mas,l,h,i,j,k,s;
C++ Найти среднее арифметическое массива
Для B найти среднее арифметическое подсказка: S2(вещественное)=sum(целое)/n 1) сделать sum вещ. 2) s2=1.+sum/n 3)s2=float(sum)/n
C++ Перевод из 6-ричной системы в десятичную http://www.cyberforum.ru/cpp/thread1272994.html
На вход программе подается строка символов, оканчивающаяся точкой, и состоящая из ненулевого количества неотрицательных целых чисел, записанных в 6-ричной системе счисления. Каждые 2 соседних числа разделены непустой последовательность пробелов и/или :. Каждое число состоит не более, чем из 5-ти разрядов, ведущие нули и знак + не используется. Общая длина строки, включая точку, не должна...
C++ Создание шахматного поля Добрый вечер. Я пытаюсь написать простую игру шахматы в ООП, с графикой. Начала с создание доски и описания классов: поле(field) и клетки черные и белые(cell). Я не очень понимаю как использовать графику. Хочу создать поле как массив клеток 8х8. Я попыталась описать классы, вот что получилось. Помогите, пожалуйста, дописать, чтобы строились клетки. Я понимаю, что это делается как-то через функции... подробнее

Показать сообщение отдельно
DrOffset
6862 / 4073 / 928
Регистрация: 30.01.2014
Сообщений: 6,870
12.10.2014, 10:54     Выбор шаблонного варианта для аргумента-массива
Цитата Сообщение от IGPIGP Посмотреть сообщение
почему они не дерутся, в то время когда одновременно определённые T* и T (&t)[N] не переносят вызов по имени массива?
В принципе ответ на этот вопрос есть в моих предыдущих постах.
Вариант T & слишком общий, вместо T здесь может быть что угодно, не только массив.
Вариант с T (&t)[N] - такой же как как вариант с T * они одно значно квалифицируют сущность аргумента. Логика на пальцах:
Заменив T на тип (простая замена T = int), мы можем сразу сказать какой у нас аргумент.
В варианте с T & недостаточно заменить T = int, нужно еще вывести N. Это сложнее и компилятор отбрасывает эту перегрузку.
Чтобы понять этот механизм посмотри вот сюда. Представь, что эти шаги выполняются при построении AST компилятором. Чем больше нужно прыгать (там в примере 7 раз), тем сложнее вывод. Таким образом компиляторо способен (и делает) проводить разрешение перегрузки только между наиболее специализированными шабонами, наибольшая специализация определяется из сложности вывода типа, чем больше информации указано в помощь выводу, тем проще. Поэтому, кстати, нужно брать ссылку в скобочки в определении ссылки на массив, для того, чтобы парсер смотрел ее сразу за декларатором аргумента.

Добавлено через 8 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
Ссылка на массив имеет отдельный синтаксис и typedef ничего не объясняет.
Синтаксис определения типа в С++ один:
Цитата Сообщение от DrOffset Посмотреть сообщение
prefix Name suffix, где префикс и суффикс — какие-то строки, вместе образующие правильное выражение.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru