diff --git a/include/tensorwrapper/buffer/contiguous.hpp b/include/tensorwrapper/buffer/contiguous.hpp index 84423565..9a944b7c 100644 --- a/include/tensorwrapper/buffer/contiguous.hpp +++ b/include/tensorwrapper/buffer/contiguous.hpp @@ -17,6 +17,7 @@ #pragma once #include #include +#include namespace tensorwrapper::buffer { @@ -137,4 +138,10 @@ class Contiguous : public Replicated { virtual const_reference get_elem_(index_vector index) const = 0; }; +#define DECLARE_CONTIG_BUFFER(TYPE) extern template class Contiguous + +TW_APPLY_FLOATING_POINT_TYPES(DECLARE_CONTIG_BUFFER); + +#undef DECLARE_CONTIG_BUFFER + } // namespace tensorwrapper::buffer \ No newline at end of file diff --git a/src/tensorwrapper/buffer/contiguoues.cpp b/src/tensorwrapper/buffer/contiguoues.cpp new file mode 100644 index 00000000..e2f80006 --- /dev/null +++ b/src/tensorwrapper/buffer/contiguoues.cpp @@ -0,0 +1,26 @@ +/* + * Copyright 2025 NWChemEx-Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include + +namespace tensorwrapper::buffer { + +#define DEFINE_CONTIG_BUFFER(TYPE) template class Contiguous + +TW_APPLY_FLOATING_POINT_TYPES(DEFINE_CONTIG_BUFFER); + +#undef DEFINE_CONTIG_BUFFER + +} // namespace tensorwrapper::buffer \ No newline at end of file