Результаты поиска по запросу "metaprogramming"

2 ответа

Да ты прав. Я не проверял поведение короткого замыкания.

аюсь прочитать заголовки повышения, чтобы выяснить, как им удалось реализовать or_<...>а также and_<...>метафункции так, чтобы: 1) Они могут иметь произвольное количество аргументов (хорошо, скажем, до 5 аргументов) 2) Они имеют поведение ...

1 ответ

Да, как я уже сказал, этот код предназначен скорее для иллюстрации, чем для чего-либо еще. Нет причин (технических или иных) предпочитать это решение другим.

ли способ, которым я могу создать функцию, которая принимаетint параметр шаблона, и дают ли этой функции ошибку времени компиляции, если значение, переданное функции меньше 10? Следующий код не работает, но он показывает, чего я хочу ...

5 ответов

Вы не можете объединить два или более строковых литералов, ожидающих получить один строковый литерал (если вы не хотите использовать макросы). Но в зависимости от поставленной задачи вы можете вернуть функцию-шаблон, например, std :: string, которая представляет собой конкатенацию строковых литералов. Последнее тривиально.

аюсь определить некоторый шаблон variadic как это: typedef const char CCTYPE[]; template<CCTYPE X, CCTYPE... P> struct StringConcat { ... };чтобы я мог написать что-то вроде: char foo[] = "foo"; char bar[] = "bar"; std::cout << ...

ТОП публикаций

5 ответов

Обратите внимание, что, поскольку различные метаклассы в Python обычно сложно объединить, это может быть полезно, если разрешить комбинирование созданного пользователем метакласса с библиотечным или stdlib-классом, при этом этот класс не должен быть явно объявлен как родительский для первого:

авно открыл метаклассы в Python. По сути, метакласс в python - это класс, который создает класс. Есть много полезных причин, по которым вы хотели бы сделать это - любой тип инициализации класса, например. Регистрация классов на фабриках, ...

0 ответов

lvalue ссылки

я есть следующая функция шаблона со специализацией: // Pass the argument through ... template<typename T, typename U=T> U convert(T&& t) { return std::forward<T>(t); } // ... but convert std::strings const char* convert(std::string s) { return ...

1 ответ

Спасатель. Спасибо!

ел бы сделать немного магии в момент, когда экземпляр класса и методы добавлены в некоторый класс. Поэтому я попробовал следующее: module Magic def self.included(base) base.extend ClassMethods end module ClassMethods def method_added(name) puts ...

1 ответ

 делают это неправильно

аких обстоятельствах это возможно, а когда это невозможно, присваивать инстанции__class__ атрибут в Python? Сообщения об ошибках, такие какTypeError: __class__ assignment: only for heap types на самом деле не делай это для меня.

1 ответ

 лямбда все еще возвращается

для примера скажем, у меня есть 3 простыхstructс, второй из которых не содержитbar метод: struct one { void foo(const int); void bar(); }; struct two { void foo(const int); }; struct three { void foo(const int); void bar(); };Тогда у ...

4 ответа

Метапрограммирование - это не то, что вам обычно нужно каждый день, но когда вам это нужно, оно действительно попадает в точку!

отрим этот класс: class foo(object): passСтроковое представление по умолчанию выглядит примерно так: >>> str(foo) "<class '__main__.foo'>"Как я могу сделать это отображение пользовательской строки?

1 ответ

этот код мог видеть исходное значение

дующем примере вновь созданный подкласс оказывается метаклассом__module__ а не модуль родительских классов. Я видел это только при использованииABCMeta так что это может быть что-то конкретное для этого модуля, кто-нибудь знает, что ...