regex_match geeksforgeeks ejemplos c++ c++11 boost boost-any stdany

geeksforgeeks - stl c++



¿El estándar C++ 11 proporciona algo como boost:: any? (4)

Creo que la posición predeterminada era que una biblioteca NO se incluiría en el nuevo estándar a menos que se presentara para ser incluida y luego pasara al comité.

No estoy seguro si boost :: any alguna vez fue enviado. Probablemente no. Sin embargo, todavía puedes usar boost :: any.

Mi conjetura es que con C ++ 11 las bibliotecas se reescribirán, algunas se considerarán redundantes y otras se cambiarán para usar semánticas de movimiento, listas de inicialización y automáticas, por lo que se escribirán en estilo C ++ 11 con características de C ++ 11.

Lo más probable es que todas las bibliotecas nuevas estén en C ++ 11, pero los paquetes de refuerzo existentes se mantendrán disponibles durante algún tiempo, ya que muchos no habrán cambiado a los compiladores de C ++ 11 todavía. También supongo que solo las características de C ++ 11 que implementan todos los compiladores principales entrarán en el paquete al principio.

Esta es probablemente una pregunta más para los programadores que stackoverflow, e incluso mejor para comp.std.c ++. Moderada y para aumentar las listas de correo.

por ejemplo boost::function se mueve casi por completo a std::function , lo mismo boost::shared_ptr con boost::shared_ptr

Pero no puedo encontrar std::any ? ¿Fue renombrado o no fue colocado en un nuevo estándar por alguna razón?


Debido a que se hizo la pregunta, avanzamos hacia std :: experimental :: any como una característica optional eliminada del estándar C ++ 14.

Luego se implemented en GCC 5.1, al menos.

Desde entonces, la característica se estandarizó en C ++ 17, resultando en std::any . Vea también la std::variant C ++ 17 para una unión segura para el tipo que tiene una alternativa limitada de tipo conocido, o está vacía (gracias a remy-lebeau por la punta).


No todas las bibliotecas de boost se integran en el estándar (e incluso aquellas que lo hacen pueden tener componentes eliminados). En general, el comité es bastante conservador cuando se trata de agregar a la biblioteca estándar (ya que es casi imposible que se elimine algo más adelante si la inclusión fue un error (.eg porque hay una mejor alternativa)).

boost::function and boost::shared_ptr donde casi todo está incluido para la inclusión, ya que ya formaban parte de tr1 . boost::any en la otra mano no hizo el corte. Sin embargo, podría incluirse en la biblioteca estándar más adelante (p. Ej., En el próximo informe técnico, consulte here ). Si bien es bueno tener boost::any , no lo calificaría tan importante como p.ej. shared_ptr .

Concluyendo: boost::any no es parte de C ++ 11, ya que el comité no vio ninguna necesidad urgente de incluirlo


Std :: any fue aceptado recientemente en el estándar c ++ 17:

std::any