Можно ли определить, является ли тип неполным без сбоя компиляции?

Я хочу добиться такого поведения, как sizeof (complete_type), вернет реальный sizeof, а sizeof (incomplete_type) - будет просто 0

Мне это нужно, чтобы обеспечить расширенный запуск информация о типе времени для IPC (межпроцессного) взаимодействия со структурой описания для каждого типа:

struct my_type_info
{
    bool   is_pointer;
    size_t size;         //for double* will be 4 on i386. that is sizeof(double*)
    size_t base_size;    //for double* will be 8. that is sizeof(double)
};

Проблема возникает, когда в мою систему входит что-то вроде класса MyOnlyDeclaredClass; Я получил ошибку компиляции, очевидно, по той причине, что я не могу принять ее размер .

boost type_traits http://www.boost.org/doc/libs/1_48_0/libs/type_traits/doc/html/index.html предлагает много классов времени компиляции, но нет 'is_incomplete'

Интересные компиляторы: VS2008, VS2010, clang 3, gcc-4.6, gcc-4.7

-121 --- 17571 84-

Как вырезать / копировать / вставить строку меню с помощью Python / Tkinter Я хотел бы создать пункты меню (в строке меню, а не во всплывающем окне, всплывающем при щелчке правой кнопкой мыши), которые можно вырезать / копировать / вставьте любой выделенный текст. Эквивалентные клавиатурные команды уже работают без моего…

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

Эквивалентные клавиатурные команды уже работают, но я ничего не сделал для их включения .Например, я могу ввести текст в поле ввода, вырезать его с помощью Control-X и вставить обратно (или в другое место) с помощью Control-C.

Сообщения по теме, которые я видел, сводятся к вырезанию / копированию / вставке отдельных виджетов, но это уже работает. Как мне активировать элементы меню?

Спасибо.

РЕДАКТИРОВАТЬ: Для ясности, проблемы следующие:

  • как заставить элементы меню для вырезания / копирования действовать на любой текст, выбранный в любом виджете
  • как заставить элемент меню вставки вставлять текст везде, где находится текстовый курсор

Опять же, ключевые команды для этого (Control-x, Control-c, Control-v) уже работают, и я ничего не сделал. Я умею составлять меню ; вопрос в том, какую команду я должен присоединить к пунктам меню, чтобы добиться желаемого эффекта.

РЕДАКТИРОВАТЬ 2: Хорошо, у меня есть способ, который работает. Поскольку ключевые команды уже работают, мы можем просто их сгенерировать. В моем случае все это записная книжка с именем noteBook, поэтому

lambda: self.noteBook.event_generate ('')

сокращается по желанию. Например:

editmenu.add_command (label = "Cut", accelerator = "Ctrl + X", command = lambda: self.noteBook.event_generate (''))

Используется: https://github.com/lnmaurer/qubit-control-interface/commit/c08c10a7fbc4a637c1e08358fb9a8593dfdf116e

Тем не менее, вероятно, есть более чистый способ сделать это; ответьте, если вы это знаете.

6
задан lnmaurer 9 December 2011 в 21:01
поделиться