Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #1390
Closed
Open
Issue created Jun 02, 2017 by James Willenbring@jmwilleOwner

Create plan to drop Trilinos support for C++98 preventing the usage of C++11

Created by: bartlettroscoe

CC: @trilinos/framework, @trilinos/teuchos, @trilinos/thyra, @trilinos/nox, @maherou

Description:

The requirement to maintain C++98 support for older packages like Teuchos, Thyra, NOX and others that are still being developed and need much more development in the near future, is creating a major capability and productivity impediment for projects like ATDM. (For example, the refactoring of Thyra to improve the design, usage, and performance of RTOps will require C++11.) But we can't use C++11 in these packages because there are still some Trilinos customers that still require that these packages build with GCC 4.4.7 and C++11 turned off. And just the usage of auto alone will significantly improve the development and maintenance of templated code. (And then there is the performance improvements of using move constructors and assignment operators, etc.)

To address this problem we could either, for example:

  1. Require all Trilinos customers to upgrade their compilers to GCC 4.9.3 or newer to allow C++11 to be used in all Trilinos packages from Teuchos on down the dependency chain.

or:

  1. Create a fork of Trilinos for C++98 packages needed by these customers and then allow the main Trilinos 'develop' and 'master' branches require C++11 for all packages from Teuchos on down the dependency chain. (This would require the Trilinos development team to continue to provide patches, releases, and address other issues on this fork, so this fork could not be completely static but it should see very little development.)

But eventually every Trilinos customer will have a C++11 compiler so eventually we will be going with option-1 so going with option-2 in the short-term may not be too bad.

Assignee
Assign to
Time tracking