>>196119988 (OP)После case не должно идти значение которое должно принимать М чтоб войти в этот блок? Соответсвенно там должно быть некое число, так как M - intТо естьswitch(M){ case 0: ....
>>196119988 (OP)долбоеб, переключи языкна английский и загугли ошибку на английском, там будет объяснено
>>196120893использовать пространствоимен стд;числ главная(числ аргк, знак аргс){ стдвыход << "привет мир" << КОНЕЦС; возврат 0;}
>>196120782Какой идиот будет писать свою очередную библиотеку календаря? ммм ебать там у вас задания уровня турбо-паскаль
>>196122127Ну давай нахуй, ввеоди все месяцы и количество дней в каждом, для кажого года, хули, тыж погроммист, сам можешь, илитка
>>196122189>>196121897вы что пишете идиоты?Этому кретину нужно написать программы выводящую предощущаю введённой датеЭто же детский сад
>>196122480Я ебал ваш календарь, не в каждом же месяце 30 дней, я что Енштейн чтоль знать скольок там дней будет и когда
>>196122572Решил что-нибудь на С++ написисать, пускай даже такой детский садУже 3 года не трогалДа и всё равно бахнется на кейсе, когда вводится первый месяц (в 52 строке)Но пускай уже сам разбирается
>>196119988 (OP)В крестах нельзя переменную в свич кейс юзать, только констекспры такого же типа как и M, да и то дикие ограничения на это any expression of integral or enumeration type, or of a class type contextually implicitly convertible to an integral or enumeration type, or a declaration of a single non-array variable of such type with a brace-or-equals initializer.
>>196122982>нельзя переменную в свич Ну в смысле в свич то можно, в кейс нельзя, в кейс должно быть констекспр того же типа, что и переменная в свич, а она в свою очередь должна быть блаблабла. Короче простой тип, енум, инт, чар там, например std::string уже не заюзаешь.
>>196123147Чё? Я те выжимку из стандарта кидаю, о чём ты?condition - any expression of integral or enumeration type, or of a class type contextually implicitly convertible to an integral or enumeration type, or a declaration of a single non-array variable of such type with a brace-or-equals initializer.statement - any statement (typically a compound statement). case: and default: labels are permitted in statement and break; statement has special meaning.
>>196122753void decDate(int &m, int &d){ if (!--d) { if (!--m) m = MAX_MONTH; d = monthsMaxDays[m-1]; }}
>>196123198>statementБля не то\constant_expression - a constant expression of the same type as the type of condition after conversions and integral promotions
>>196123147Типа того#include <iostream>int main(){ constexpr int i = 5; int n; std::cin >> n; switch(n) { case i: std::cout << "i = 5" << std::endl; break; default: break; }}
>>196120782const int max_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};void prevDate(int& day, int& month){____if (day != 1)____{________--day;____}____else____{________if(month != 1)________{____________--month;________}________else________{____________month = 12;________}________day = max_month[month - 1];____}}
>>196124451Хуяльная совместимость, хуйню несёшь какую-то. Чё те надо? В кейсе можно использовать констант экспрешн, это блядь не обязательно констекспр, это и 5 и 'a' например. Нахуй иди.
>>196124451Constant expressions C++ C++ language Expressions Defines an expression that can be evaluated at compile time.Such expressions can be used as non-type template arguments, array sizes, and in other contexts that require constant expressions, e.g.int n = 1;std::array<int, n> a1; // error: n is not a constant expressionconst int cn = 2;std::array<int, cn> a2; // OK: cn is a constant expression
>>196124612Что бля експр? #include <iostream>template<int N>struct A{ static const int value = N;};int main(){ const int cn = 2; std::cout << A<cn>::value << std::endl;}Вот эта хуита компилируется в С++03. Знаешь почему? Потому что блядь cn это констант експрешн.
>>196124612Что тебе в этой строчке непонятно? Понимаешь, бля, constexpr специфаер и констант экспрешн не одно и то же.> an expression that can be evaluated at compile time.
>>196124612>constexpr - specifies that the value of a variable or function can appear in constant expressionsАй бля, читай корочеhttps://en.cppreference.com/w/cpp/language/constant_expressionhttps://en.cppreference.com/w/cpp/language/constexpr
>>196124851>constexpr специфаер и констант экспрешн не одно и то же.Наконец-то до тебя дошлоЭх... Ещё одного долбаёба вылечил
>>196119988 (OP)По стандарту у кейса не может стоять переменная, темболее у тебя всегда будет срабатывать первый кейс при такой логике.
>>196124983>констекспры>эксп появился позже>компилю в 03 пример с констекспром в шаблоне>рря вот я тебя научил то)))Начались манёвры. Нахуй иди короче.
>>196125016>По стандарту у кейса не может стоять переменная, темболее у тебя всегда будет срабатывать первый кейс при такой логике.
>>196125134Или ты доебался что я заюзал в том примере constexpr? И типа так написать только в 11 можно? Ну так суть же не в самом constexpr, а в том, что там юзать можно только constant expression, ну можно написать const int. Это во-первых, во-вторых бля 19 год на дворе, ты бля пишешь давайте не будет юзать 11 стандарт, он слишком новый(ну не так, ты писал рря обратная совместимость). Ты же дебил.
>>1961251348 лет назад бля 11 год был, понимаешь? Сейчас почти везде уже 14 стоит, если ты не легасиковыряка.
>>196125430Какому уму ты обосрался бля, ты и не знал небось, что констант експрешн это широкое понятие и оно давным-давно в плюсах было.
>>196119988 (OP)Давай для начала разберемся в логике работы твоей конструкции: зачем ты хочешь сравнивать значение переменной с ней же самой? Разве не очевидно, что результат такого сравнения всегда будет равен true? Следовательно, ты как-то неправильно представляешь себе алгоритм выполнения поставленной задачи.По поводу сообщения об ошибке - просто покури семантику работы оператора switch (выражение1) case (значение1) .. case (значениеN). Значение1..значениеN должны быть литералами либо константными выражениями, а не переменными.
>>196126136Я выделил литерал как частный случай констэкспра лишь для того, чтобы ОП-у было понятнее. Судя по его уровню подготовки, воспринимать такие абстракции он пока не в состоянии.
>>196126198Тред выше перечитай и увидишь как я тому анону помог разобратьсяПрям всё по полочкам в его голове разложил
Господа, а кто из вас, учивших кресты по C++03, по максимуму использует все нововведения Стандартов C++11..17 в своей практике?
>>196126509Регулярно, почти что перед каждым проектом, перетряхиваю собственные гайдлайны, зачищая их от депрефицированных конструкций и паттернов. Морально готовлюсь к переходу на грядущий C++20.
>>196126269Да-да, манёврировал, обосравшись, ну да хуй с ним. Вот, например, скажи мне такую хуйню:class A{ public: A(){} A(const A&){std::cout << "copy";} A(A&&){std::cout << "move";}};int main(){ A a(A());}Схуяли ниче не печатает?
>>196126269И обратный вопрос#include <iostream>class A{ public: void f(){std::cout << "print";}};int main(){ A* p = new A; delete p; p = nullptr; p->f();}Схуяли бля печатает?
>>196119988 (OP)Оп, ты дегенерат ебучийТы вообще понимаешь, как работает switch?Ты, сука, объявляешь свич на значение переменной M, а потом пишешь case M, т.е. значение переменной М=значения кейса, ты дифиченто, блять?
>>196120284И зачем ты говно какое-то пишешь? boost::gregorian::days daysObj(1);boost::gregorian::date dateObj { 2018, 5, 10 };dateObj = dateObj - daysObj; // Предыдущая датавсе