Size: a a a

2020 August 12

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Чтобы было просто
Отдельный язык? Просто? Ха
источник

VS

Vladimir Suisei in supapro.cxx
Побитый Кирпич
С++ сам может выдавать С++, это же не скриптуха галимая
Что не так со скриптухой в компайлтайме
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Что не так со скриптухой в компайлтайме
То что уже есть С++, зачем другой язык?
источник

LA

Liber Azerate in supapro.cxx
Vladimir Suisei
Что не так со скриптухой в компайлтайме
Шаблоны – это уже язык в языке
источник

VS

Vladimir Suisei in supapro.cxx
Liber Azerate
Шаблоны – это уже язык в языке
Очень сложный
источник

LA

Liber Azerate in supapro.cxx
Vladimir Suisei
Очень сложный
Это C++.
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Очень сложный
Ну дак постепенно добавляются инструменты которые его упрощают
источник

AS

Anatoly Shirokov in supapro.cxx
так, если нытью продолжится, я буду вынужден принять меры
источник

ПК

Побитый Кирпич... in supapro.cxx
Оптимистично в С++26 уже будем кодогенерить С++ на С++
источник

VS

Vladimir Suisei in supapro.cxx
Anatoly Shirokov
так, если нытью продолжится, я буду вынужден принять меры
Я не ною а спрашиваю почему не сделали так как я написал, из интереса
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Я не ною а спрашиваю почему не сделали так как я написал, из интереса
Потому что то как ты написал делают, вот ответ
источник

ПК

Побитый Кирпич... in supapro.cxx
Гугли C++ Metaclass
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
Я не ною а спрашиваю почему не сделали так как я написал, из интереса
ты лучше пример с концептом разбери, который решает то что ты хотел
источник

AS

Anatoly Shirokov in supapro.cxx
правда, это С++20
источник

VS

Vladimir Suisei in supapro.cxx
Anatoly Shirokov
ты лучше пример с концептом разбери, который решает то что ты хотел
Это который
источник

AS

Anatoly Shirokov in supapro.cxx
Anatoly Shirokov
#include <iostream>

template<typename T>
concept Printable = requires(T a) {
 std::cout << a;
};

template<typename T>
struct printable
{
 enum {value = Printable<T>};
};

template<typename T>
constexpr bool printable_v = printable<T>::value;

template<typename T>
void check_printable(T value)
{
 if constexpr (printable_v<T>) {
   std::cout << typeid(T).name() << " is a printable type";
 } else
 {
   std::cout << typeid(T).name() << " is not a printable type";
 }
}
struct foo {};

int main() {
 check_printable(10);
 check_printable(foo());
}
это вот этот
источник

LA

Liber Azerate in supapro.cxx
Liber Azerate
А зачем так сложно?
template <typename T>
auto foo() -> decltype(void(std::declval<std::ostream&>() << std::declval<T>()), smt) {

}

Не подходит?
Или возьми этот. В трейт переделать несложно, C++20 не нужен
источник

ПК

Побитый Кирпич... in supapro.cxx
Anatoly Shirokov
ты лучше пример с концептом разбери, который решает то что ты хотел
Тока там struct и constexpr bool лишние сущности. Концепт сам по себе это как constexpr bool
источник

C

CodeDetector in supapro.cxx
Побитый Кирпич
Тока там struct и constexpr bool лишние сущности. Концепт сам по себе это как constexpr bool
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
источник

AS

Anatoly Shirokov in supapro.cxx
Побитый Кирпич
Тока там struct и constexpr bool лишние сущности. Концепт сам по себе это как constexpr bool
я по традиции type_traits, чтобы xxx и xxx_v версия была, а так справедливое замечание, можно и с концептом:
template<typename T>
void check_printable(T value)
{
 if constexpr (Printable<T>) {
   std::cout << typeid(T).name() << " is a printable type";
 } else
 {
   std::cout << typeid(T).name() << " is not a printable type";
 }
}
источник