mirror of
				https://github.com/fmtlib/fmt.git
				synced 2025-11-03 23:51:41 +01:00 
			
		
		
		
	
		
			
	
	
		
			29 lines
		
	
	
		
			905 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			905 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								//  Direct NVCC command line example:
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  nvcc ./cuda-cpp14.cu -x cu -I"../include" -l"fmtd" -L"../build/Debug" \
							 | 
						||
| 
								 | 
							
								//       -std=c++14 -Xcompiler /std:c++14 -Xcompiler /Zc:__cplusplus
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Ensure that we are using the latest C++ standard for NVCC
							 | 
						||
| 
								 | 
							
								// The version is C++14
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-cplusplus-language-support
							 | 
						||
| 
								 | 
							
								// https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros
							 | 
						||
| 
								 | 
							
								static_assert(__cplusplus >= 201402L, "expect C++ 2014 for nvcc");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <fmt/core.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <cuda.h>
							 | 
						||
| 
								 | 
							
								#include <iostream>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern auto make_message_cpp() -> std::string;
							 | 
						||
| 
								 | 
							
								extern auto make_message_cuda() -> std::string;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main() {
							 | 
						||
| 
								 | 
							
								  std::cout << make_message_cuda() << std::endl;
							 | 
						||
| 
								 | 
							
								  std::cout << make_message_cpp() << std::endl;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								auto make_message_cuda() -> std::string {
							 | 
						||
| 
								 | 
							
								  return fmt::format("nvcc compiler \t: __cplusplus == {}", __cplusplus);
							 | 
						||
| 
								 | 
							
								}
							 |