2010-10-22 8 views
3

Мне было интересно, есть ли какой-либо эквивалент или способ подделать анонимные типы C# в C++. Я использую gcc 4.6, поэтому можно использовать любые части C++ 0x, которые он поддерживает.Анонимные типы в C++

+1

Наличие типа без имени - это не ваша конечная цель. Какова ваша фактическая проблема? В чем проблема с C# вы используете анонимные типы для решения? –

+0

@Rob: Анонимные типы используются в C#, чтобы вы могли извлекать несколько конкретных фрагментов информации из запросов LINQ. C++ не имеет ничего похожего на запросы LINQ, поэтому я не уверен, какую проблему вы бы использовали в C++. –

ответ

5

Если вы ищете контейнер, в котором может храниться «сумка» разных типов, самым близким аналогом будет std::tuple.

+0

+1 для другого элегантного решения. –

2

Вы можете подделать его с помощью std::map<std::string, boost::any>, но это действительно не то же самое. Невозможно получить что-то по-настоящему, как анонимные типы C# 3 + в C++.

Анонимные типы действительно полезны для LINQ в любом случае, а C++ тоже не поддерживает ничего подобного, поэтому маловероятно, что такое было бы полезно в любом случае.

Смежные вопросы