Daniil
~~~
template <class T>
class A
{
protected:
int field;
};
template <>
class A<int>
{
public:
void f() {}
};
template <class T>
class B : public A<T>
{
int foo() { return A<T>::field; }
};
int main() { }
~~~
ГуНиСе️
Daniil
выше интересный пример
ГуНиСе️
мне кажется, это ошибка
Anonymous
потому что приняли
Daniil
где ошибка?
Daniil
Проблема в том, что шаблоны это препроцессорная магия
ГуНиСе️
где ошибка?
не связываются имена из базовых классов, зависящих от шаблонных парметров
Daniil
она немного тупая и сложная
Daniil
в ней нужна конкретика
Daniil
ГуНиСе️
и что?
ГуНиСе️
это не значит, что так и должно быть
ГуНиСе️
криво как-то
Daniil
если по станларту, значит так должно быть
ГуНиСе️
не могу согласиться
Daniil
вы блин хотите писать на норм языке или на крестах?
ГуНиСе️
:(
Aidar
шаблоны это ваще не препроцессор
Aidar
это шаблонизатор
Aidar
я не вижу обоснования этой фигни просто
Alexander
/stat@combot
Daniil
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf
310 страница и дальше :D
Daniil
шаблоны это ваще не препроцессор
the standard defines 9 phases in the translation. The first four correspond to preprocessing, the next three are the compilation, the next one is the instantiation of templates (producing instantiation units) and the last one is the linking.
In practice the eighth phase (the instantiation of templates) is often done during the compilation process but some compilers delay it to the linking phase and some spread it in the two.
Daniil
http://en.cppreference.com/w/cpp/language/translation_phases
Daniil
Прост сорян) я хз что такое шаблонизатор :D
Daniil
в плюсах его не видел
Aidar
ну не препроцессинг же точно
Aidar
ну типа это часть компилятора которая пилит инстансы шаблонов
Daniil
я утрирую для ва
Daniil
вас*
Daniil
то вы стандарт не хотите воспринимать
Daniil
то буквоедством заниматетесь
Daniil
лучше читани http://en.cppreference.com/w/cpp/language/translation_phases
Aidar
так то cppreference.com не стандарт
.
Здравствуйте
.
здес кто то работает с firemonkey
🦥Alex Fails
.
.
multi device программы на C++ Buildere
🦥Alex Fails
FireMonkey — Википедия
ru.wikipedia.org
FireMonkey (FMX) — GUI-фреймворк, использующий возможности графического процессора. Является кроссплатформенным: поддерживаются Windows, Mac OS, Apple iOS и Android.
.
Vladislav
Daniil
выше читай)
Denis
Vladislav
выше читай)
ок, короче споры о терминологии опять)
Denis
Daniil
Daniil
решил писать теперь строго по стандарту чтоб наверняка
🦥Alex Fails
В тему зпт
🦥Alex Fails
запятая работает как запятая
🦥Alex Fails
и от одного инта контруируется Iter
Artem
Да это-то ясно
🦥Alex Fails
Да я чото после 12 ч работы не варю уже 🙈
Artem
Вопрос, можно ли внутри скобок как-то сделать так, чтобы она сработала. Скорее всего из-за приоритета операций нет
🦥Alex Fails
эх. Аксиомы нужны😭
🦥Alex Fails
Чтоб если внутри operator [] для объекта срабатывал operator ,
🦥Alex Fails
Был пропосал на аксиомы для операторов, но его не пропкстили в драфт
🦥Alex Fails
What are “axioms”? | Axioms: Semantics Aspects of C++ Concepts
www.open-std.org
This paper claries the semantics of “axioms” in the C++ concept proposal and provides standard wording, following the C++ commit-tee vote and resolution at the Spring 2009 meeting at Summit, NJ.
Artem
А я конечно знатно обосрался со своим супер решением, хорошо, что заметили.
🦥Alex Fails
Artem
Протестировал только положительный кейс, все как по книжке
🦥Alex Fails
axiom fuckedBraces(T arr, size_t x, size_t y) {
arr[x, y] <=> arr(x, y);
}
🦥Alex Fails
Если оператор скобок перегружен на два индекса
Artem
На самом деле почти любая перегрузка операторов это зло
Stanislav
Artem
Скорость восприятия кода падает
Artem
Когда знакомые тебе вещи могут означать любое дерьмо (а могут и не означать)
Artem
Доказательства формального я тебе конечно не выдам, с трудом себе его представляю
Anonymous
никто раскладку дворака не пробовал?
Dumitru
ГуНиСе️
это не ссылка?
ГуНиСе️
сам не далее чем сегодня недоумевал по такому поводу
Artem
Зависит от какой-нибудь .so, которой нет?
Artem
глянь ldd
니키타
арча❤️
Artem
покажи uname -a
니키타
Тоже интересно стало