2010-05-23 9 views
3

Итак, я знаю, что C++ строго типизирован, и было просто интересно, есть ли какая-либо библиотека (или любая вещь для этого факта), которая позволит вам создать переменную, которая не имеет начального определенного типа, такого как var в Python.Есть ли эквивалент типа var в C++?

+1

Я думаю, что этот вид функции должен поддерживаться самим языком, а не библиотекой. – dreamlax

+5

C++ 0x вводит авто-тип, который аналогичен, но неподдельно не похож на Python, который использует позднюю привязку. Для C++ ближайшим вы получите шаблоны. –

+4

['auto'] (http://www2.research.att.com/~bs/C++0xFAQ.html#auto) определенно не похож, он выводит только тип для вас - все еще статически типизированный. –

ответ

1

Две основные вещи приходят на ум:

  1. BOOST_AUTO
  2. C++0x type inference
+0

+1 для Boost, хотя я до сих пор считаю это уродливым. –

+1

Тип вывода строго типизирован и, следовательно, не все равно, как тип var. – fredoverflow

+0

Yep 'auto' больше похож на' var' в C#, я думаю. –

0

В новом C++ 11 есть ключевое слово auto, которое больше не относится к автоматической продолжительности, а скорее относится к типу вывода. Таким образом, вы можете сделать это:

auto index = 1; // index is inferred to be int 
auto c = 'a' // c is inferred to be a char 
Смежные вопросы