LINUX.ORG.RU

Семантически и синтаксически корректное изложение C++

 , ,


0

3

Так случилось, что последние несколько дней пришлось посмотреть различные видео с лекциями по C++ (все лекторы с нехилыми регалиями и чью компетенцию не ставлю под сомнение), почитать статьи по теме. А сегодня ещё почитал треды, где обсуждается новый стандарт.

В связи с этим возник простой запрос. Хотелось бы узнать о существовании русскоязычного автора/лектора, который бы:

  • (самое главное!) осознавал и проговаривал отличие C++ от STL (и стандартов);
  • при объяснении директивы include не употреблял словосочетание "подключение библиотеки";
  • не называл операцию «=», как и арифметические операции, "операторами";

P.S.

блог/сайт (анонимный или со многими авторами) с аналогичным подходом также сойдет

UPD.

убрал в 3 пункте слово «прочие» перед «арифметические операции» - классификация операции присваивания (пусть и ошибочная) не имеет отношения к теме.



Последнее исправление: Edward_I (всего исправлений: 2)

Хотелось бы узнать о существовании русскоязычного автора/лектора, который бы:
- при объяснении директивы include не употреблял словосочетание «подключение библиотеки»;
- не называл операцию «=», как и прочие арифметические операции, «операторами»;

но оно же так и есть зачем называть вещи чужими именами

DllMain
()

(самое главное!) осознавал и проговаривал отличие C++ от STL (и стандартов);

Зачем? Это никому не нужное балабольство.

не называл операцию «=», как и прочие арифметические операции, «операторами»;

Схренали, когда это операторы?

slovazap ★★★★★
()
Ответ на: комментарий от DllMain

но оно же так и есть зачем называть вещи чужими именами

В случае с include конечно же нет, если только это не header-only библиотека.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Это ты просто компиляторов нормальных не видел(хотя может в гцц тоже прагма линкер завезли)

DllMain
()

отличие C++ от STL

STD vs STL или о чём?

RazrFalcon ★★★★★
()
Ответ на: комментарий от unC0Rr

Это синдром утенка от древнего перевода K&R, где statement - оператор, а operator - операция.

Begemoth ★★★★★
()

Ещё захоти, чтобы он не путал rvalue и временные объекты и не говорил, что «std::move делает объект временным» и т.п., тогда скорее всего никого не найдёшь.

не называл операцию «=», как и прочие арифметические операции, «операторами»;

???

utf8nowhere ★★★
()
Последнее исправление: utf8nowhere (всего исправлений: 1)
Ответ на: комментарий от slovazap

А ты линковщик сюда случайно не приплел? Потому что линковщику насрать на то какой у тебя там язык или языки. А на уровне языка подключения либ (в том виде, в котором вы их себе представляете) нет.

#pragma lib("libname");

является не стандартным расширением MSVC.

SR_team ★★★★★
()
Последнее исправление: SR_team (всего исправлений: 1)
Ответ на: комментарий от Edward_I

std — часть языка, по стандарту. Впрочем можно использовать core c++ без стандартной библиотеки.

filosofia
()
Ответ на: комментарий от unC0Rr

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

«Операцией» - изначально. «Арифметической» - это условно (не строго в мат.смысле), но всё же корректно. Впрочем, не настаиваю, слово "прочие" в тексте можно опустить. Результатом операции присвоения, т.е. результатом вычисления выражения, является некое значение, которое может быть использовано в арифметическом выражении. Тут по аналогии - если что-то вычисляется в результате операции и эта операция определена над переменными числовых типов, то это можно условно рассматривать, как арифметическую операцию.

Главное в моем критерии - это не тип операции, а её смешение с операторами.

Edward_I
() автор топика
Ответ на: комментарий от filosofia

В терминах c++, = — это оператор. man ‘operator=(T const&);’.

Что такое в терминах C++ я не знаю. А в терминах английского языка, «operator» должно переводится на русский как «операция».

Edward_I
() автор топика
Ответ на: комментарий от DllMain

Аргументируй

Что именно? Что директива макропроцессора о включении хедера никаким образом не означает «подключение библиотеки»? Или что арифметические операции, операция присваивания является операцией над данными и не является оператором C++?

По определению не означает и не является. Это вы должны мне доказывать обратное. Как вообще можно такие слова употреблять.

Edward_I
() автор топика
Ответ на: комментарий от ncuxer

Про бесплатность ТС ничего не говорил.

P.S.: А где там платить то? Поискал, информации о цене не нашел. Кажется, платного там только сертификат в рамочку, а ТСу нужны знания.

TheKnight ★★★
()
Ответ на: комментарий от Edward_I

Что такое в терминах C++ я не знаю. А в терминах английского языка, «operator» должно переводится на русский как «операция».

1С Бухгалтерия.

filosofia
()
Ответ на: комментарий от ncuxer

Интересно девки пляшут :) Оно там хитро спрятано. Не знал.

TheKnight ★★★
()
Ответ на: комментарий от Edward_I

Смотря что считать STL.

Но в целом никто не запрещает написать свою реализацию STL, с thread-safe строками и copy-on-write словарями. Возможно, коллеги из Google, Yandex и Mail.ru расскажут больше.

P.S.:Емнип, в геймдеве и embedded так любят делать. Я не про мои примеры, а про самописные STL.

P.P.S.: Про Copy-on-write словари и thread-safe строки я целиком и полностью выдумал, не стоит думать что такое есть, равно как и что такого нет в вышеупомянутых компаниях.

TheKnight ★★★
()
Последнее исправление: TheKnight (всего исправлений: 1)
Ответ на: комментарий от annulen

Нет никакого смешения. Операция и оператор - разные вещи, особенно в контексте с++.

Это не мне нужно объяснять. Тут вот выше сомневаются в конкретных примерах.

Топик читали? Я потому и спрашиваю - есть ли те, кто эти вещи отличает (на примере присваивания).

Edward_I
() автор топика
Ответ на: комментарий от utf8nowhere

тогда скорее всего никого не найдёшь

Грустно это всё.

И это же не rocket science. Просто здравый смысл и минимальная терминологическая корректность.

Edward_I
() автор топика
Ответ на: комментарий от Edward_I

Топик читали?

Да, когда увидел что «operator должно переводится на русский как операция», появилось желание использовать огнемет

annulen ★★★★★
()
Ответ на: комментарий от Edward_I
  1. На каком ЯП написана STL ?

На С++. А какие еще варианты?

  1. Можно ли на C++ написать программу без std::что-то там и без "using namespace std ?

Да.

eao197 ★★★★★
()
Ответ на: комментарий от annulen

появилось желание использовать огнемет

В данном контексте, при описании возможностей ЯП по вычислительной работе с данными, так и должно переводиться.

Edward_I
() автор топика
Ответ на: комментарий от slovazap

(самое главное!) осознавал и проговаривал отличие C++ от STL (и стандартов);

Зачем? Это никому не нужное балабольство.

Затем, чтобы послушать курс "язык C++" или "программирование на C++", а не "АиСД/ООП с применением STL". С возможностью какой-либо библиотеки (пусть она будет трижды стандартизирована) программист может потом разобраться самостоятельно, если посчитает это необходимым.

Edward_I
() автор топика
Ответ на: комментарий от Edward_I

Правильно. Из этого выводим отличие C++ от STL.

Из этого делаем Edward_I вполне определенный диагноз и отправляем в игнор-лист.

eao197 ★★★★★
()
  • не называл операцию «=», как и прочие арифметические операции, «операторами»;
#include <iostream>

struct S {};

S &operator+(S &s, int) {
  std::cout << "Олололо! Я математическая операция!!!11" << std::endl;
  return s;
}

int main() {
  S s1;
  S s2 = s1 + 42;
}
$ clang++ -o test test.cpp 
$ ./test 
Олололо! Я математическая операция!!!11
DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от eao197

)))

«Трава», «диагноз». Очень аргументированно)

Ладно бы ещё попытаться свести вопрос к терминологии, типа старый/новый ЯП, core/батарейки, «как посмотреть» и т.д. А так да. «Содержательный» комментарий)

Edward_I
() автор топика
Ответ на: комментарий от DELIRIUM
std::cout << "Олололо! Я математическая операция!!!11" << std::endl;


Тред не читали? А по-существу? Опустите в топике слово «прочие» перед «арифметические операции».

Edward_I
() автор топика
Ответ на: комментарий от eternal_sorrow

Ты сказал?

Написал. Есть и другие люди, кто считает (и переводит) также. По-смыслу, в данном контексте, нужно говорить об операции.

Edward_I
() автор топика
Ответ на: комментарий от Edward_I

Это примерно как вывести отличие тебя от твоего члена.

STL — это часть языка C++, написанная на подмножестве C++, не включающем STL.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Edward_I

Правильно. Из этого выводим отличие C++ от STL.

Не забудь ещё вывести отличие С++ от классов. Они ведь тоже могут быть написаны на С++ и можно написать программу без них. И от шаблонов, структур, сложения, вычитания.

Это всё несомненно важные отличия, главное о них рассказывать, чтобы все понимали.

Ivan_qrt ★★★★★
()

Если таковой найдётся, может где-то там же будет русскоязычный автор/лектор по управлению организацией, который бы:

  • осознавал и проговаривал отличие пролетария от капиталиста;
  • при объяснении лицензирования не употреблял слова «продажа» и «покупка»;
  • на называл приказчиков, как и прочих управленцев, «менеджерами».
monk ★★★★★
()

не называл операцию «=», как и арифметические операции, «операторами»;

поскромнее в хотелках надо быть :)

p.s.

operator=

operator+

bonta ★★★★★
()
Ответ на: комментарий от Edward_I

По определению не означает и не является

Приведи это определение

Это вы должны мне доказывать обратное

хахаха лол

DllMain
()
Ответ на: комментарий от Edward_I

А я смотрю, ты разбираешься в теме. Помоги перевести фразу This is the GNU Statement Expression extension: ({int X=4; X;}).?

Отсюда

fluorite ★★★★★
()

ТС, а что ты скажешь по поводу if ((x = somefunc()) == y)

Harald ★★★★★
()
Ответ на: комментарий от hateyoufeel

Это примерно как вывести отличие тебя от твоего члена.

Не знаю как вы, а я отделяю человека от его органов.

STL — это часть языка C++, написанная на подмножестве C++, не включающем STL.

Когда писалась STL подмножества не было. А волюнтаристские приписки библиотек написанных на ЯП к самому ЯП - это не является корректным отражением реальности, как мне кажется.

Edward_I
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.