We're updating the issue view to help you get more done. 

Namespace error breaks Cygwin build

Description

Building ICU-63.1 on Cygwin fails with the following error:

icu/source/i18n/unicode/numberrangeformatter.h:189:33: error: explicit instantiation of ‘struct std::atomic<icu_63::number::impl::NumberRangeFormatterImpl*>’ in namespace ‘icu_63::number’ (which does not enclose namespace ‘std’) [-fpermissive]
template struct U_I18N_API std::atomic<impl::NumberRangeFormatterImpl*>;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This problem started with the following commit:

commit ba001f46163ded5886972aeb927e35756f00d761
Author: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
Date: Fri Oct 5 10:44:52 2018 -0700

Fix MSVC/clang compiler warning C4251, export explicit template, required for building DLLs on Windows. Also fix a few other warnings as well.

My C++ knowledge isn't good enough to understand what this is all about, but there's an obvious fix, for which I'll submit a PR.

Environment

Status

Assignee

Jeff Genovy

Reporter

Ken Brown

Labels

Components

Fix versions

Priority

major