Uso principalmente C++ para hacer informática científica, y últimamente me he restringido a un subconjunto muy similar a C de características C++; es decir, no hay clases/herencia, excepto complejas y STL, plantillas que solo se usan para buscar/reemplazar tipos de sustituciones, y algunas otras cosas que no puedo expresar con palabras en la parte superior de mi cabeza. Me pregunto si existen subconjuntos oficiales o bien documentados del lenguaje C++ que podría ver como referencia (así como también fundamento) cuando voy a elegir y elegir qué funciones usar.Subconjuntos oficiales de lenguaje C++
Respuesta
Hay Embedded C++. Suena en su mayoría similar a lo que estás buscando.
C++ incrustado nunca atrapado; una vez que hayas matado el lenguaje tanto, no tiene ventajas sobre C. –
@Mike, algunos dirían que nunca lo hizo. –
Bueno, los últimos desarrollos (TR1, C++ 0x) en C++ lo hicieron mucho más genérico, lo que le permite realizar programación imperativa, OOP o incluso (limitada) en C++. Bibliotecas como Boost también le permiten hacer una metaprogramación basada en plantillas declarativa.
Creo que Boost es lo primero que se debe probar en C++. Es una biblioteca completa, que también incluye varios módulos que le permiten programar en estilo funcional (Boost.Functional) o realizar metaprogramación declarativa en tiempo de compilación (Boost MPL).
Subconjuntos, no superconjuntos. –
Bueno, depende de lo que usted llame un conjunto; si solo STL, entonces Boost es un superconjunto de hecho. Pero mi punto fue que Boost.Functional y Boost.MPL son subconjuntos de C++ como un lenguaje. –
Originalmente me refería al subconjunto como a un subconjunto de las características del lenguaje. Boost parece requerir un conjunto muy completo de características de C++. –
Los desarrolladores de GCC están a punto de permitir algunas características de C++. Aún no conozco ninguna guía oficial, pero estoy bastante seguro de que definirán algunas. Eche un vistazo a initial report en la lista de correo.
No hace mucho escuché este podcast de SE-Radio - Episode 152: MISRA with Johan Bezem, que presenta MISRA, directrices estándar para C y C++ para garantizar una mejor calidad, intente verlo.
Google publica su guía interna de estilo C++, que a menudo se denomina subconjunto: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml. Ben Maurer, cuya empresa reCAPTCHA fue adquirida por Google, lo describe de la siguiente manera in this post on Quora:
Es, básicamente, se puede pensar en subconjunto C++ de Google como C, más un poco de azúcar:
La posibilidad de agregar métodos para estructurar
Herencia simple básica.
Collection y de cadena clases de manejo de recursos basado
ámbito de aplicación.
También publican una herramienta de pelusa, cpplint.py.
OpenCL ha estado utilizando C para la escritura de granos, pero se han añadido recientemente (o pronto añadirá) C++ fijaciones y quizá Java. OpenCL omite una serie de características de robo de rendimiento de C. Excluidas son cosas como indicadores de función y recursión. Los indicadores inteligentes y el polimorfismo también crean gastos generales.
Restricciones en C: SIMD programming languages
ligeramente fuera de tema: He aquí una buena discusión comparando con OpenCL CUDA C usando OpenCL or CUDA Which way to go?
Mi punto es que OpenCL limita lo que se le permite usar en C y C++. Muchas características se eliminan o no son compatibles, o ofrecen soporte limitado. Aún así, estos subconjuntos de esos idiomas todavía son bastante útiles y le permiten escribir todo tipo de simulaciones y software para su uso en GPGPU, DSP, FPGA y CPU multinúcleo. – Max
- 1. DTD oficiales XHTML 1.1 contra esquemas XHTML 1.1 XML oficiales
- 2. Facebook iconos oficiales
- 3. Métodos oficiales de extensión LINQ
- 4. Enlaces a guías de estilo oficiales
- 5. subconjuntos en Prolog
- 6. conjunto de todos los subconjuntos
- 7. ¿dónde están los foros oficiales de Directx?
- 8. Estándares de codificación para MVC - ¿Son oficiales?
- 9. Iterator en lenguaje C
- 10. ¿Extender el lenguaje C#?
- 11. Lenguaje ensamblador a C
- 12. ¿Lenguaje de reemplazo para C++?
- 13. C# como lenguaje de script
- 14. Implementando extensiones de lenguaje C#
- 15. Lenguaje de scripting para C/C++?
- 16. C# declaraciones Linq o un foreach() para totalizar subconjuntos?
- 17. Algoritmo para encontrar subconjuntos comunes
- 18. Seleccione varios subconjuntos tomando diferentes intervalos de fila y función appy para todos los subconjuntos
- 19. Llamar C++ (C) desde el lenguaje D
- 20. MySQL encontrar el modo de múltiples subconjuntos
- 21. Operadores de lenguaje incrustado de dominio C++
- 22. de trabajo de tenedor en lenguaje C
- 23. C# lenguaje de secuencias de comandos
- 24. C++ como lenguaje de alto nivel?
- 25. ¿C# es un lenguaje de alto nivel?
- 26. Asignación de memoria a char * Lenguaje C
- 27. UML para el lenguaje de programación C
- 28. ¿Hay un lenguaje de estilo C++ sin adornos de C?
- 29. C# a C#, características de lenguaje de conveniencia
- 30. ¿Cómo encontrar todos los subconjuntos posibles de una matriz determinada?
¿Cuál es tu razón para definir un subconjunto de C++? ¿Por qué no utilizar las funciones que lo ayudan y dejar las funciones que no lo hacen?Es potencialmente mucho trabajo definir un subconjunto consistente de características; ¿Cuál es la ganancia? –
No mucho, solo tenía curiosidad por saber si este tipo de cosas ha sido bien definida alguna vez. Me gusta mantener las cosas fácilmente conectables con C y Fortran, y quería las opiniones de otras personas sobre algunas de las características del idioma. –